SpyBara
Go Premium

Documentation 2026-07-02 23:59 UTC to 2026-07-03 23:00 UTC

52 files changed +1,105 −347. View all changes and history on the product overview
2026
Sat 4 03:01 Fri 3 23:00 Thu 2 23:59 Wed 1 21:01

admin-setup.md +2 −0

Details

90| [Version floor](/es/settings) | Evitar que la actualización automática instale por debajo de un mínimo de toda la organización | `minimumVersion` |90| [Version floor](/es/settings) | Evitar que la actualización automática instale por debajo de un mínimo de toda la organización | `minimumVersion` |

91| [Required version range](/es/settings) | Rechazar iniciar completamente cuando la versión en ejecución está fuera de un rango aprobado por la organización. Más fuerte que `minimumVersion`, que solo bloquea degradaciones | `requiredMinimumVersion`, `requiredMaximumVersion` |91| [Required version range](/es/settings) | Rechazar iniciar completamente cuando la versión en ejecución está fuera de un rango aprobado por la organización. Más fuerte que `minimumVersion`, que solo bloquea degradaciones | `requiredMinimumVersion`, `requiredMaximumVersion` |

92 92 

93Las organizaciones cuyos miembros se autentican a través de claude.ai o la API de Anthropic también pueden gobernar modelos sin implementar configuración: [restricciones de modelo de organización](/es/model-config#organization-model-restrictions) deshabilitan modelos individuales, un [modelo predeterminado de organización](/es/model-config#organization-default-model) establece en qué modelo comienzan las nuevas sesiones, y [límites de esfuerzo de organización](/es/model-config#organization-effort-limits) limitan los niveles de esfuerzo por rol. Los tres controles requieren un plan Claude Enterprise. Las restricciones de modelo y los límites de esfuerzo se aplican del lado del servidor; el modelo predeterminado es un punto de partida que los usuarios pueden cambiar, a menos que la organización lo aplique. La aplicación está disponible para un conjunto limitado de organizaciones; consulte con su equipo de cuenta de Anthropic sobre la disponibilidad. Ninguno de estos controles llega a sesiones en Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o [Claude Platform on AWS](/es/claude-platform-on-aws); en esos proveedores, use `availableModels` arriba para restricciones y la clave `model` en configuración administrada para un predeterminado.

94 

93Las reglas de permisos y el sandboxing cubren diferentes capas. Denegar WebFetch bloquea la herramienta de búsqueda de Claude, pero si Bash está permitido, `curl` y `wget` aún pueden alcanzar cualquier URL. El sandboxing cierra esa brecha con una lista de permitidos de dominio de red aplicada a nivel del SO.95Las reglas de permisos y el sandboxing cubren diferentes capas. Denegar WebFetch bloquea la herramienta de búsqueda de Claude, pero si Bash está permitido, `curl` y `wget` aún pueden alcanzar cualquier URL. El sandboxing cierra esa brecha con una lista de permitidos de dominio de red aplicada a nivel del SO.

94 96 

95Para el modelo de amenaza que estos controles defienden, consulte [Security](/es/security).97Para el modelo de amenaza que estos controles defienden, consulte [Security](/es/security).

advisor.md +4 −3

Details

85El advisor debe ser al menos tan capaz como el modelo principal. Los advisors aceptados para cada modelo principal son:85El advisor debe ser al menos tan capaz como el modelo principal. Los advisors aceptados para cada modelo principal son:

86 86 

87| Modelo principal | Advisors aceptados | Notas |87| Modelo principal | Advisors aceptados | Notas |

88| ----------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |88| ----------------------------------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku puede llamar al advisor pero no puede actuar como uno |89| Haiku 4.5 | Fable, Opus, Sonnet | Haiku puede llamar al advisor pero no puede actuar como uno |

90| Sonnet 4.6 | Fable, Opus, Sonnet | |90| Sonnet 4.6 | Fable, Opus, Sonnet | |

91| Sonnet 5 | Fable, Opus, Sonnet 5 | Un advisor Sonnet 4.6 se rechaza |91| Sonnet 5 | Fable, Opus, Sonnet 5 | Un advisor Sonnet 4.6 se rechaza |

92| Opus 4.6 o posterior | Fable, Opus en o por encima de la versión del modelo principal | Un Opus 4.7 principal con un advisor Opus 4.6 se rechaza. Un Opus 4.6 principal también acepta un advisor Sonnet 5 |92| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 y Opus 4.6 se clasifican como igualmente capaces, por lo que un Opus 4.6 principal acepta un advisor Sonnet 5 |

93| Opus 4.7 o posterior | Fable, Opus 4.7, Opus 4.8 | Opus 4.7 y Opus 4.8 se clasifican como igualmente capaces, por lo que cualquiera acepta al otro como advisor. Un Opus 4.7 principal con un advisor Opus 4.6 o Sonnet 5 se rechaza |

93| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Un advisor Opus o Sonnet se rechaza |94| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Un advisor Opus o Sonnet se rechaza |

94 95 

95Fable 5 requiere Claude Code v2.1.170 o posterior y acceso a Fable 5, ya sea que actúe como modelo principal o como advisor.96Fable 5 requiere Claude Code v2.1.170 o posterior y acceso a Fable 5, ya sea que actúe como modelo principal o como advisor.


174/advisor off175/advisor off

175```176```

176 177 

177Para deshabilitar la herramienta advisor completamente, incluido el comando `/advisor` y la bandera `--advisor`, establezca `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. Vea [Variables de entorno](/es/env-vars).178Para deshabilitar la herramienta advisor completamente, establezca `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. El comando `/advisor` se vuelve no disponible y cualquier `advisorModel` configurado se ignora. La bandera `--advisor` se acepta pero no tiene efecto; los scripts existentes que la pasan continúan funcionando sin errores. Vea [Variables de entorno](/es/env-vars).

178 179 

179<h2 id="compare-with-related-features">180<h2 id="compare-with-related-features">

180 Comparar con características relacionadas181 Comparar con características relacionadas

Details

86<Accordion title="Ejemplo: Verificar tipos de mensajes y manejar resultados">86<Accordion title="Ejemplo: Verificar tipos de mensajes y manejar resultados">

87 <CodeGroup>87 <CodeGroup>

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

89 import asyncio

89 from claude_agent_sdk import query, AssistantMessage, ResultMessage90 from claude_agent_sdk import query, AssistantMessage, ResultMessage

90 91 

92 

93 async def main():

94 try:

91 async for message in query(prompt="Summarize this project"):95 async for message in query(prompt="Summarize this project"):

92 if isinstance(message, AssistantMessage):96 if isinstance(message, AssistantMessage):

93 print(f"Turn completed: {len(message.content)} content blocks")97 print(f"Turn completed: {len(message.content)} content blocks")


96 print(message.result)100 print(message.result)

97 else:101 else:

98 print(f"Stopped: {message.subtype}")102 print(f"Stopped: {message.subtype}")

103 except Exception as error:

104 # A single-shot query() raises after yielding an error result. If the

105 # failure was an error result, the error subtype branches above have

106 # already run; connection or process failures yield no result message.

107 print(f"Session ended with an error: {error}")

108 

109 

110 asyncio.run(main())

99 ```111 ```

100 112 

101 ```typescript TypeScript theme={null}113 ```typescript TypeScript theme={null}

102 import { query } from "@anthropic-ai/claude-agent-sdk";114 import { query } from "@anthropic-ai/claude-agent-sdk";

103 115 

116 try {

104 for await (const message of query({ prompt: "Summarize this project" })) {117 for await (const message of query({ prompt: "Summarize this project" })) {

105 if (message.type === "assistant") {118 if (message.type === "assistant") {

106 console.log(`Turn completed: ${message.message.content.length} content blocks`);119 console.log(`Turn completed: ${message.message.content.length} content blocks`);


113 }126 }

114 }127 }

115 }128 }

129 } catch (error) {

130 // A single-shot query() throws after yielding an error result. If the

131 // failure was an error result, the error subtype branches above have

132 // already run; connection or process failures yield no result message.

133 console.log(`Session ended with an error: ${error}`);

134 }

116 ```135 ```

117 </CodeGroup>136 </CodeGroup>

118</Accordion>137</Accordion>


321 340 

322El campo `result` (la salida de texto final) solo está presente en la variante `success`, así que siempre verifique el subtipo antes de leerlo. Todos los subtipos de resultado llevan `total_cost_usd`, `usage`, `num_turns` e `session_id` para que pueda rastrear el costo y reanudar incluso después de errores. En Python, `total_cost_usd` y `usage` se escriben como opcionales y pueden ser `None` en algunas rutas de error, así que proteja antes de formatearlos. Vea [Rastrear costos y uso](/es/agent-sdk/cost-tracking) para detalles sobre la interpretación de los campos `usage`.341El campo `result` (la salida de texto final) solo está presente en la variante `success`, así que siempre verifique el subtipo antes de leerlo. Todos los subtipos de resultado llevan `total_cost_usd`, `usage`, `num_turns` e `session_id` para que pueda rastrear el costo y reanudar incluso después de errores. En Python, `total_cost_usd` y `usage` se escriben como opcionales y pueden ser `None` en algunas rutas de error, así que proteja antes de formatearlos. Vea [Rastrear costos y uso](/es/agent-sdk/cost-tracking) para detalles sobre la interpretación de los campos `usage`.

323 342 

343<Note>

344 Cuando una consulta termina en un resultado de error:

345 

346 * Una llamada `query()` de un solo disparo produce el mensaje de resultado final y luego genera un error que incluye el texto de fallo, como `Reached maximum number of turns`. La generación es intencional — envuelva el bucle en un bloque try si su código necesita continuar más allá de él. El proceso Claude Code subyacente también sale con un código distinto de cero.

347 * Una sesión de entrada de transmisión permanece activa, y puede seguir enviando mensajes.

348</Note>

349 

324El resultado también incluye un campo `stop_reason` (`string | null` en TypeScript, `str | None` en Python) indicando por qué el modelo dejó de generar en su turno final. Los valores comunes son `end_turn` (modelo terminó normalmente), `max_tokens` (alcanzó el límite de token de salida) y `refusal` (el modelo rechazó la solicitud). En subtipos de resultado de error, `stop_reason` lleva el valor de la última respuesta de asistente antes de que el bucle terminara. Para detectar rechazos, verifique `stop_reason === "refusal"` (TypeScript) o `stop_reason == "refusal"` (Python). Vea [`SDKResultMessage`](/es/agent-sdk/typescript#sdkresultmessage) (TypeScript) o [`ResultMessage`](/es/agent-sdk/python#resultmessage) (Python) para el tipo completo.350El resultado también incluye un campo `stop_reason` (`string | null` en TypeScript, `str | None` en Python) indicando por qué el modelo dejó de generar en su turno final. Los valores comunes son `end_turn` (modelo terminó normalmente), `max_tokens` (alcanzó el límite de token de salida) y `refusal` (el modelo rechazó la solicitud). En subtipos de resultado de error, `stop_reason` lleva el valor de la última respuesta de asistente antes de que el bucle terminara. Para detectar rechazos, verifique `stop_reason === "refusal"` (TypeScript) o `stop_reason == "refusal"` (Python). Vea [`SDKResultMessage`](/es/agent-sdk/typescript#sdkresultmessage) (TypeScript) o [`ResultMessage`](/es/agent-sdk/python#resultmessage) (Python) para el tipo completo.

325 351 

326<h2 id="hooks">352<h2 id="hooks">


348 374 

349Este ejemplo combina los conceptos clave de esta página en un único agente que arregla pruebas fallidas. Configura el agente con herramientas permitidas (aprobadas automáticamente para que el agente se ejecute autónomamente), configuración del proyecto y límites de seguridad en turnos y esfuerzo de razonamiento. A medida que se ejecuta el bucle, captura el ID de sesión para posible reanudación, maneja el resultado final e imprime el costo total.375Este ejemplo combina los conceptos clave de esta página en un único agente que arregla pruebas fallidas. Configura el agente con herramientas permitidas (aprobadas automáticamente para que el agente se ejecute autónomamente), configuración del proyecto y límites de seguridad en turnos y esfuerzo de razonamiento. A medida que se ejecuta el bucle, captura el ID de sesión para posible reanudación, maneja el resultado final e imprime el costo total.

350 376 

377Debido a que una única llamada `query()` genera una excepción después de producir un resultado de error, el bucle se envuelve en un bloque try para que el script se cierre correctamente cuando se alcanza un límite.

378 

351<CodeGroup>379<CodeGroup>

352 ```python Python theme={null}380 ```python Python theme={null}

353 import asyncio381 import asyncio


357 async def run_agent():385 async def run_agent():

358 session_id = None386 session_id = None

359 387 

388 try:

360 async for message in query(389 async for message in query(

361 prompt="Find and fix the bug causing test failures in the auth module",390 prompt="Find and fix the bug causing test failures in the auth module",

362 options=ClaudeAgentOptions(391 options=ClaudeAgentOptions(


389 print(f"Stopped: {message.subtype}")418 print(f"Stopped: {message.subtype}")

390 if message.total_cost_usd is not None:419 if message.total_cost_usd is not None:

391 print(f"Cost: ${message.total_cost_usd:.4f}")420 print(f"Cost: ${message.total_cost_usd:.4f}")

421 except Exception as error:

422 # A single-shot query() raises after yielding an error result. If the

423 # failure was an error result, the error subtype branches above have

424 # already run; connection or process failures yield no result message.

425 print(f"Session ended with an error: {error}")

392 426 

393 427 

394 asyncio.run(run_agent())428 asyncio.run(run_agent())


399 433 

400 let sessionId: string | undefined;434 let sessionId: string | undefined;

401 435 

436 try {

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

403 prompt: "Find and fix the bug causing test failures in the auth module",438 prompt: "Find and fix the bug causing test failures in the auth module",

404 options: {439 options: {


428 console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);463 console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);

429 }464 }

430 }465 }

466 } catch (error) {

467 // A single-shot query() throws after yielding an error result. If the

468 // failure was an error result, the error subtype branches above have

469 // already run; connection or process failures yield no result message.

470 console.log(`Session ended with an error: ${error}`);

471 }

431 ```472 ```

432</CodeGroup>473</CodeGroup>

433 474 

Details

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

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

65 65 

66 try {

66 for await (const message of query({ prompt: "Summarize this project" })) {67 for await (const message of query({ prompt: "Summarize this project" })) {

67 if (message.type === "result") {68 if (message.type === "result") {

68 console.log(`Total cost: $${message.total_cost_usd}`);69 console.log(`Total cost: $${message.total_cost_usd}`);

69 }70 }

70 }71 }

72 } catch (error) {

73 // A single-shot query() throws after yielding an error result. If the

74 // failure was an error result, it still carried total_cost_usd and the

75 // branch above has already run; connection or process failures yield

76 // no result message.

77 console.error(`Session ended with an error: ${error}`);

78 }

71 ```79 ```

72 80 

73 ```python Python theme={null}81 ```python Python theme={null}


76 84 

77 85 

78 async def main():86 async def main():

87 try:

79 async for message in query(prompt="Summarize this project"):88 async for message in query(prompt="Summarize this project"):

80 if isinstance(message, ResultMessage):89 if isinstance(message, ResultMessage):

81 print(f"Total cost: ${message.total_cost_usd or 0}")90 print(f"Total cost: ${message.total_cost_usd or 0}")

91 except Exception as error:

92 # A single-shot query() raises after yielding an error result. If the

93 # failure was an error result, it still carried total_cost_usd and the

94 # branch above has already run; connection or process failures yield

95 # no result message.

96 print(f"Session ended with an error: {error}")

82 97 

83 98 

84 asyncio.run(main())99 asyncio.run(main())


110let totalInputTokens = 0;125let totalInputTokens = 0;

111let totalOutputTokens = 0;126let totalOutputTokens = 0;

112 127 

113for await (const message of query({ prompt: "Summarize this project" })) {128try {

129 for await (const message of query({ prompt: "Summarize this project" })) {

114 if (message.type === "assistant") {130 if (message.type === "assistant") {

115 const msgId = message.message.id;131 const msgId = message.message.id;

116 132 


121 totalOutputTokens += message.message.usage.output_tokens;137 totalOutputTokens += message.message.usage.output_tokens;

122 }138 }

123 }139 }

140 }

141} catch (error) {

142 // A single-shot query() throws after yielding an error result, so the

143 // totals below still reflect the steps that ran before the failure.

144 console.error(`Session ended with an error: ${error}`);

124}145}

125 146 

126console.log(`Steps: ${seenIds.size}`);147console.log(`Steps: ${seenIds.size}`);


139```typescript theme={null}160```typescript theme={null}

140import { query } from "@anthropic-ai/claude-agent-sdk";161import { query } from "@anthropic-ai/claude-agent-sdk";

141 162 

142for await (const message of query({ prompt: "Summarize this project" })) {163try {

164 for await (const message of query({ prompt: "Summarize this project" })) {

143 if (message.type !== "result") continue;165 if (message.type !== "result") continue;

144 166 

145 for (const [modelName, usage] of Object.entries(message.modelUsage)) {167 for (const [modelName, usage] of Object.entries(message.modelUsage)) {


149 console.log(` Cache read: ${usage.cacheReadInputTokens}`);171 console.log(` Cache read: ${usage.cacheReadInputTokens}`);

150 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);172 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);

151 }173 }

174 }

175} catch (error) {

176 // A single-shot query() throws after yielding an error result. If the

177 // failure was an error result, the per-model breakdown above has already

178 // printed; connection or process failures yield no result message.

179 console.error(`Session ended with an error: ${error}`);

152}180}

153```181```

154 182 


173 ];201 ];

174 202 

175 for (const prompt of prompts) {203 for (const prompt of prompts) {

204 try {

176 for await (const message of query({ prompt })) {205 for await (const message of query({ prompt })) {

177 if (message.type === "result") {206 if (message.type === "result") {

178 totalSpend += message.total_cost_usd;207 totalSpend += message.total_cost_usd;

179 console.log(`This call: $${message.total_cost_usd}`);208 console.log(`This call: $${message.total_cost_usd}`);

180 }209 }

181 }210 }

211 } catch (error) {

212 // A single-shot query() throws after yielding an error result. If the

213 // failure was an error result, this call's cost was already counted;

214 // connection or process failures yield no result message. Continue

215 // with the next prompt.

216 console.error(`Call failed: ${error}`);

217 }

182 }218 }

183 219 

184 console.log(`Total spend: $${totalSpend.toFixed(4)}`);220 console.log(`Total spend: $${totalSpend.toFixed(4)}`);


199 ]235 ]

200 236 

201 for prompt in prompts:237 for prompt in prompts:

238 try:

202 async for message in query(prompt=prompt):239 async for message in query(prompt=prompt):

203 if isinstance(message, ResultMessage):240 if isinstance(message, ResultMessage):

204 cost = message.total_cost_usd or 0241 cost = message.total_cost_usd or 0

205 total_spend += cost242 total_spend += cost

206 print(f"This call: ${cost}")243 print(f"This call: ${cost}")

244 except Exception as error:

245 # A single-shot query() raises after yielding an error result. If

246 # the failure was an error result, this call's cost was already

247 # counted; connection or process failures yield no result message.

248 # Continue with the next prompt.

249 print(f"Call failed: {error}")

207 250 

208 print(f"Total spend: ${total_spend:.4f}")251 print(f"Total spend: ${total_spend:.4f}")

209 252 

Details

50 50 

51Para usar el checkpointing de archivos, habilítelo en sus opciones, capture UUIDs de checkpoint del flujo de respuesta, luego llame a `rewindFiles()` (TypeScript) o `rewind_files()` (Python) cuando necesite restaurar.51Para usar el checkpointing de archivos, habilítelo en sus opciones, capture UUIDs de checkpoint del flujo de respuesta, luego llame a `rewindFiles()` (TypeScript) o `rewind_files()` (Python) cuando necesite restaurar.

52 52 

53El siguiente ejemplo muestra el flujo completo: habilitar checkpointing, capturar el UUID de checkpoint y el ID de sesión del flujo de respuesta, luego reanudar la sesión más tarde para revertir archivos. Cada paso se explica en detalle a continuación.53El siguiente ejemplo muestra el flujo completo: habilitar checkpointing, capturar el UUID de checkpoint y el ID de sesión del flujo de respuesta, luego reanudar la sesión más tarde para revertir archivos. Cada paso se explica en detalle a continuación. Los ejemplos en esta sección utilizan el mensaje "Refactor the authentication module". Ejecútelos en un proyecto que contenga un módulo de autenticación, o cambie el mensaje para nombrar archivos que existan en su proyecto, para que pueda ver cambios de archivos y ver cómo la reversión los restaura.

54 54 

55<CodeGroup>55<CodeGroup>

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


197 session_id = None197 session_id = None

198 198 

199 async for message in client.receive_response():199 async for message in client.receive_response():

200 # Update checkpoint on each user message (keeps the latest)200 # Capture the first user message UUID as the checkpoint

201 if isinstance(message, UserMessage) and message.uuid:201 if isinstance(message, UserMessage) and message.uuid and checkpoint_id is None:

202 checkpoint_id = message.uuid202 checkpoint_id = message.uuid

203 # Capture session ID from the result message203 # Capture session ID from the result message

204 if isinstance(message, ResultMessage):204 if isinstance(message, ResultMessage):


210 let sessionId: string | undefined;210 let sessionId: string | undefined;

211 211 

212 for await (const message of response) {212 for await (const message of response) {

213 // Update checkpoint on each user message (keeps the latest)213 // Capture the first user message UUID as the checkpoint

214 if (message.type === "user" && message.uuid) {214 if (message.type === "user" && message.uuid && !checkpointId) {

215 checkpointId = message.uuid;215 checkpointId = message.uuid;

216 }216 }

217 // Capture session ID from any message that has it217 // Capture session ID from any message that has it


250 ```250 ```

251 </CodeGroup>251 </CodeGroup>

252 252 

253 Si captura el ID de sesión y el ID de checkpoint, también puede revertir desde la CLI:253 Si captura el ID de sesión y el ID de checkpoint, también puede revertir desde la CLI. Este comando requiere el ejecutable `claude`, que viene de [instalar Claude Code](/es/setup) y no está instalado por el paquete SDK. El SDK habilita checkpointing para usted, pero cuando ejecuta `claude -p` directamente debe establecer la variable de entorno `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING`:

254 254 

255 ```bash theme={null}255 ```bash theme={null}

256 claude -p --resume <session-id> --rewind-files <checkpoint-uuid>256 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

257 ```257 ```

258 

259 La bandera `--rewind-files` no aparece en la salida de `claude --help`, pero la CLI la acepta como se muestra.

258 </Step>260 </Step>

259</Steps>261</Steps>

260 262 


270 272 

271Este patrón mantiene solo el UUID de checkpoint más reciente, actualizándolo antes de cada turno del agente. Si algo sale mal durante el procesamiento, puede revertir inmediatamente al último estado seguro y salir del bucle.273Este patrón mantiene solo el UUID de checkpoint más reciente, actualizándolo antes de cada turno del agente. Si algo sale mal durante el procesamiento, puede revertir inmediatamente al último estado seguro y salir del bucle.

272 274 

275Antes de ejecutar este ejemplo, reemplace `your_revert_condition` (Python) o `yourRevertCondition` (TypeScript) con su propia verificación, como detección de errores o un fallo de validación; el marcador de posición no está definido en el ejemplo.

276 

273<CodeGroup>277<CodeGroup>

274 ```python Python theme={null}278 ```python Python theme={null}

275 import asyncio279 import asyncio


752 756 

753**Solución**: Asegúrese de que `enable_file_checkpointing=True` (Python) o `enableFileCheckpointing: true` (TypeScript) estuviera establecido en la sesión original, luego use el patrón mostrado en los ejemplos: capture el UUID del primer mensaje de usuario, complete la sesión completamente, luego reanude con un mensaje vacío y llame a `rewindFiles()` una sola vez.757**Solución**: Asegúrese de que `enable_file_checkpointing=True` (Python) o `enableFileCheckpointing: true` (TypeScript) estuviera establecido en la sesión original, luego use el patrón mostrado en los ejemplos: capture el UUID del primer mensaje de usuario, complete la sesión completamente, luego reanude con un mensaje vacío y llame a `rewindFiles()` una sola vez.

754 758 

759<h3 id="file-rewinding-is-not-enabled-error">

760 Error "File rewinding is not enabled"

761</h3>

762 

763Este error ocurre cuando intenta una reversión no interactiva sin checkpointing habilitado: ejecutar `claude -p` simple con `--rewind-files`, o ejecutar una sesión del SDK, incluida una reanudada, cuyas opciones no habilitan checkpointing. El SDK establece la variable de entorno `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING` internamente solo cuando `enable_file_checkpointing` (Python) o `enableFileCheckpointing` (TypeScript) está habilitado en la sesión que realiza la reversión; la CLI simple nunca la establece.

764 

765**Solución**: Para la CLI simple, establezca la variable de entorno al ejecutar el comando:

766 

767```bash theme={null}

768CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

769```

770 

771Para el SDK, establezca `enable_file_checkpointing=True` (Python) o `enableFileCheckpointing: true` (TypeScript) en la sesión reanudada, como lo hacen los ejemplos en esta página.

772 

755<h3 id="processtransport-is-not-ready-for-writing-error">773<h3 id="processtransport-is-not-ready-for-writing-error">

756 Error "ProcessTransport is not ready for writing"774 Error "ProcessTransport is not ready for writing"

757</h3>775</h3>

Details

28 </Step>28 </Step>

29 29 

30 <Step title="Reglas de preguntar">30 <Step title="Reglas de preguntar">

31 Verifique las reglas `ask` de [settings.json](/es/settings#permission-settings). Si una regla de preguntar coincide, la llamada se pasa a su devolución de llamada [`canUseTool`](/es/agent-sdk/user-input) para confirmación, incluso en modo `bypassPermissions`. En modo `dontAsk` una regla de preguntar coincidente se deniega en su lugar, porque ese modo nunca solicita confirmación.31 Verifique las reglas `ask` de [settings.json](/es/settings#permission-settings). Si una regla de preguntar coincide, la llamada se pasa a su devolución de llamada [`canUseTool`](/es/agent-sdk/user-input) para confirmación, incluso en modo `bypassPermissions`.

32 

33 Las herramientas que requieren interacción del usuario se comportan de la misma manera: `AskUserQuestion` y las herramientas MCP cuyo servidor establece [`_meta["anthropic/requiresUserInteraction"]`](/es/mcp#require-approval-for-a-specific-tool) siempre se pasan a la devolución de llamada, incluso cuando una regla de permitir coincide. En modo `dontAsk` ambos casos se deniegan en su lugar, porque ese modo nunca solicita confirmación. {/* min-version: 2.1.199 */}La anotación MCP requiere Claude Code v2.1.199 o posterior.

32 </Step>34 </Step>

33 35 

34 <Step title="Modo de permiso">36 <Step title="Modo de permiso">


46 48 

47<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Diagrama del flujo de evaluación de permisos de seis pasos que coincide con los pasos anteriores: una solicitud de herramienta pasa a través de hooks, reglas de denegar, reglas de preguntar, modo de permiso, reglas de permitir y canUseTool. Los hooks, reglas de denegar y canUseTool pueden enrutar hacia Bloqueado; el modo de permiso de omisión, reglas de permitir y canUseTool pueden enrutar hacia Ejecutar; las reglas de preguntar enrutan a canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />49<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Diagrama del flujo de evaluación de permisos de seis pasos que coincide con los pasos anteriores: una solicitud de herramienta pasa a través de hooks, reglas de denegar, reglas de preguntar, modo de permiso, reglas de permitir y canUseTool. Los hooks, reglas de denegar y canUseTool pueden enrutar hacia Bloqueado; el modo de permiso de omisión, reglas de permitir y canUseTool pueden enrutar hacia Ejecutar; las reglas de preguntar enrutan a canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

48 50 

51A partir de v2.1.198, si pasa una devolución de llamada `canUseTool` que este orden de evaluación nunca puede alcanzar, el SDK de TypeScript emite una advertencia de proceso de Node.js una vez cuando se construye la consulta. El código de la advertencia es `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Dos configuraciones lo desencadenan:

52 

53* `permissionMode: 'bypassPermissions'`, que aprueba automáticamente cada llamada que llega al paso del modo de permiso

54* Cada entrada `allowedTools` simple como `"Read"`, que aprueba automáticamente esa herramienta completa antes de que se consulte la devolución de llamada

55 

56Las entradas con un especificador como `Bash(ls *)` y el modo `acceptEdits` no lo desencadenan, y las reglas de permitir provenientes de archivos de configuración no son visibles para la verificación.

57 

58Escuche con `process.on('warning', ...)` y haga coincidir el código para registrarlo o suprimirlo. Para controlar cada llamada de herramienta independientemente del modo y las reglas, use un [hook `PreToolUse`](/es/agent-sdk/hooks) en su lugar.

59 

49Esta página se enfoca en **reglas de permitir y denegar** y **modos de permiso**. Para los otros pasos:60Esta página se enfoca en **reglas de permitir y denegar** y **modos de permiso**. Para los otros pasos:

50 61 

51* **Hooks:** ejecute código personalizado para permitir, denegar o modificar solicitudes de herramientas. Consulte [Controlar la ejecución con hooks](/es/agent-sdk/hooks).62* **Hooks:** ejecute código personalizado para permitir, denegar o modificar solicitudes de herramientas. Consulte [Controlar la ejecución con hooks](/es/agent-sdk/hooks).


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

68 79 

69<Warning>80<Warning>

70 **Las herramientas pre-aprobadas nunca llegan a `canUseTool`.** Una llamada de herramienta aprobada en cualquier paso anterior, por `acceptEdits` o `bypassPermissions`, o por una regla de permitir, omite su devolución de llamada `canUseTool`, por lo que las comprobaciones de permiso que coloque allí se omiten silenciosamente para esa herramienta. La cobertura depende de la forma de la entrada: un nombre simple como `Read` o `mcp__github__get_issue` pre-aprueba cada llamada a esa herramienta, mientras que una regla delimitada como `Bash(ls *)` pre-aprueba solo las llamadas coincidentes y otras llamadas de `Bash` aún se descartan a la devolución de llamada. Para comprobaciones que deben ejecutarse en cada llamada de herramienta, use un hook [`PreToolUse`](/es/agent-sdk/hooks): los hooks se ejecutan antes de cada otro paso, y una denegación de hook se aplica incluso en modo `bypassPermissions`.81 **Las herramientas pre-aprobadas nunca llegan a `canUseTool`.** Una llamada de herramienta aprobada en cualquier paso anterior, por `acceptEdits` o `bypassPermissions`, o por una regla de permitir, omite su devolución de llamada `canUseTool`, por lo que las comprobaciones de permiso que coloque allí se omiten silenciosamente para esa herramienta. La excepción son las herramientas que requieren interacción del usuario, `AskUserQuestion` y herramientas MCP marcadas con [`_meta["anthropic/requiresUserInteraction"]`](/es/mcp#require-approval-for-a-specific-tool), que llegan a la devolución de llamada incluso cuando una regla de permitir coincide. La cobertura depende de la forma de la entrada: un nombre simple como `Read` o `mcp__github__get_issue` pre-aprueba cada llamada a esa herramienta, mientras que una regla delimitada como `Bash(ls *)` pre-aprueba solo las llamadas coincidentes y otras llamadas de `Bash` aún se descartan a la devolución de llamada. Para comprobaciones que deben ejecutarse en cada llamada de herramienta, use un hook [`PreToolUse`](/es/agent-sdk/hooks): los hooks se ejecutan antes de cada otro paso, y una denegación de hook se aplica incluso en modo `bypassPermissions`.

71</Warning>82</Warning>

72 83 

73Para un agente bloqueado, empareje `allowedTools` con `permissionMode: "dontAsk"`. Las herramientas listadas se aprueban; cualquier otra cosa se deniega directamente en lugar de solicitar:84Para un agente bloqueado, empareje `allowedTools` con `permissionMode: "dontAsk"`. Las herramientas listadas se aprueban; cualquier otra cosa se deniega directamente en lugar de solicitar:

Details

958```958```

959 959 

960* `API_TIMEOUT_MS`: tiempo de espera por solicitud en el cliente de Anthropic, en milisegundos. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.960* `API_TIMEOUT_MS`: tiempo de espera por solicitud en el cliente de Anthropic, en milisegundos. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.

961* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más backoff. Para ejecuciones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG=1` para reintentar errores de capacidad indefinidamente.961* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más backoff. Para ejecuciones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG=1`: reintentos de errores de capacidad indefinidamente, y {/* min-version: 2.1.199 */}a partir de Claude Code v2.1.199 eleva el valor predeterminado para otros errores transitorios a `300` y elimina el límite en esta variable.

962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: perro guardián de estancamiento para subagentes lanzados con `run_in_background`. Predeterminado `600000`. Se reinicia en cada evento de flujo; en caso de estancamiento, aborta el subagente, marca la tarea como fallida y expone el error al padre con cualquier resultado parcial. No se aplica a subagentes síncronos.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: perro guardián de estancamiento para subagentes lanzados con `run_in_background`. Predeterminado `600000`. Se reinicia en cada evento de flujo; en caso de estancamiento, aborta el subagente, marca la tarea como fallida y expone el error al padre con cualquier resultado parcial. No se aplica a subagentes síncronos.

963* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de la respuesta deja de transmitir. El perro guardián está activado de forma predeterminada para todos los proveedores; establezca `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.963* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de la respuesta deja de transmitir. El perro guardián está activado de forma predeterminada para todos los proveedores; establezca `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.

964 964 

Details

7> Define e invoque subagentes para aislar contexto, ejecutar tareas en paralelo y aplicar instrucciones especializadas en sus aplicaciones Claude Agent SDK.7> Define e invoque subagentes para aislar contexto, ejecutar tareas en paralelo y aplicar instrucciones especializadas en sus aplicaciones Claude Agent SDK.

8 8 

9Los subagentes son instancias de agente separadas que su agente principal puede generar para manejar subtareas enfocadas.9Los subagentes son instancias de agente separadas que su agente principal puede generar para manejar subtareas enfocadas.

10Utilice subagentes para aislar contexto para subtareas enfocadas, ejecutar múltiples análisis en paralelo y aplicar instrucciones especializadas sin sobrecargar el prompt del agente principal.10Utilice subagentes para aislar contexto, ejecutar múltiples análisis en paralelo y aplicar instrucciones especializadas sin agregar al prompt del agente principal.

11 11 

12Esta guía explica cómo definir y usar subagentes en el SDK utilizando el parámetro `agents`.12Esta guía explica cómo definir y usar subagentes en el SDK utilizando el parámetro `agents`.

13 13 


17 17 

18Puede crear subagentes de tres formas:18Puede crear subagentes de tres formas:

19 19 

20* **Programáticamente**: use el parámetro `agents` en sus opciones `query()` ([TypeScript](/es/agent-sdk/typescript#agentdefinition), [Python](/es/agent-sdk/python#agentdefinition))20* **Programáticamente**: use el parámetro `agents` en sus opciones `query()`. Consulte las referencias de [TypeScript](/es/agent-sdk/typescript#agentdefinition) y [Python](/es/agent-sdk/python#agentdefinition)

21* **Basado en sistema de archivos**: defina agentes como archivos markdown en directorios `.claude/agents/` (consulte [definición de subagentes como archivos](/es/sub-agents))21* **Basado en sistema de archivos**: defina agentes como archivos markdown en directorios `.claude/agents/`. Consulte [definición de subagentes como archivos](/es/sub-agents)

22* **Propósito general integrado**: Claude puede invocar el subagente integrado `general-purpose` en cualquier momento a través de la herramienta Agent sin que usted defina nada22* **Propósito general integrado**: Claude puede invocar el subagente integrado `general-purpose` en cualquier momento a través de la herramienta Agent sin que usted defina nada

23 23 

24Esta guía se enfoca en el enfoque programático, que se recomienda para aplicaciones SDK.24Esta guía se enfoca en el enfoque programático, que se recomienda para aplicaciones SDK.

25 25 

26Cuando define subagentes, Claude determina si invocarlos en función del campo `description` de cada subagente. Escriba descripciones claras que expliquen cuándo se debe usar el subagente, y Claude delegará automáticamente las tareas apropiadas. También puede solicitar explícitamente un subagente por nombre en su prompt (por ejemplo, "Usa el agente code-reviewer para...").26Cuando define subagentes, Claude determina si invocarlos en función del campo `description` de cada subagente. Escriba descripciones claras que expliquen cuándo se debe usar el subagente, y Claude delegará automáticamente las tareas apropiadas. También puede solicitar explícitamente un subagente por nombre en su prompt, por ejemplo "Usa el agente code-reviewer para...".

27 27 

28<h2 id="benefits-of-using-subagents">28<h2 id="benefits-of-using-subagents">

29 Beneficios de usar subagentes29 Beneficios de usar subagentes


61 61 

62**Ejemplo:** un subagente `doc-reviewer` podría tener acceso solo a las herramientas Read y Grep, asegurando que pueda analizar pero nunca modifique accidentalmente sus archivos de documentación.62**Ejemplo:** un subagente `doc-reviewer` podría tener acceso solo a las herramientas Read y Grep, asegurando que pueda analizar pero nunca modifique accidentalmente sus archivos de documentación.

63 63 

64<h2 id="creating-subagents">64<h2 id="create-subagents">

65 Creación de subagentes65 Creación de subagentes

66</h2>66</h2>

67 67 


69 Definición programática (recomendada)69 Definición programática (recomendada)

70</h3>70</h3>

71 71 

72Defina subagentes directamente en su código utilizando el parámetro `agents`. Este ejemplo crea dos subagentes: un revisor de código con acceso de solo lectura y un ejecutor de pruebas que puede ejecutar comandos. Claude invoca subagentes a través de la herramienta `Agent`, por lo que incluya `Agent` en `allowedTools` para aprobar automáticamente las invocaciones de subagentes sin un aviso de permiso.72Defina subagentes directamente en su código utilizando el parámetro `agents`. Claude invoca subagentes a través de la herramienta `Agent`, por lo que incluya `Agent` en `allowedTools` para aprobar automáticamente las invocaciones de subagentes sin un aviso de permiso.

73 73 

74La mayoría de los ejemplos en esta página imprimen solo el resultado final. Para confirmar que Claude delegó a un subagente en lugar de responder directamente, consulte [Detección de invocación de subagentes](#detecting-subagent-invocation).74La mayoría de los ejemplos en esta página imprimen solo el resultado final. Para confirmar que Claude delegó a un subagente en lugar de responder directamente, consulte [Detección de invocación de subagentes](#detect-subagent-invocation).

75 

76Este ejemplo crea dos subagentes: un revisor de código con acceso de solo lectura y un ejecutor de pruebas que puede ejecutar comandos.

75 77 

76<CodeGroup>78<CodeGroup>

77 ```python Python theme={null}79 ```python Python theme={null}


197 199 

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

199 201 

202Dos comportamientos de subagentes cambiaron en Claude Code v2.1.198:

203 

204* Los subagentes se ejecutan en segundo plano de forma predeterminada. Una llamada a la herramienta Agent que omite la entrada [`run_in_background`](/es/agent-sdk/typescript) inicia un subagente en segundo plano, y Claude establece `run_in_background: false` cuando necesita el resultado antes de continuar. Antes de v2.1.198, omitir `run_in_background` ejecutaba el subagente de forma síncrona. Establezca el campo `background` en `true` para forzar la ejecución en segundo plano para un agente específico independientemente de lo que Claude solicite.

205* Un subagente hereda la configuración de pensamiento extendido de la sesión principal. En versiones anteriores, el pensamiento extendido está deshabilitado dentro de los subagentes independientemente de la configuración de la sesión principal.

206 

200<Note>207<Note>

201 {/* min-version: 2.1.172 */}A partir de Claude Code v2.1.172, los subagentes pueden generar sus propios subagentes. Un subagente cinco niveles por debajo del agente principal no puede generar más subagentes, independientemente de si se ejecuta en primer plano o en segundo plano. Para evitar que un subagente genere otros, omita `Agent` de su matriz `tools` o agréguelo a `disallowedTools`. Consulte [subagentes anidados](/es/sub-agents#spawn-nested-subagents) para conocer las reglas de profundidad completas.208 {/* min-version: 2.1.172 */}A partir de Claude Code v2.1.172, los subagentes pueden generar sus propios subagentes. Un subagente cinco niveles por debajo del agente principal no puede generar más subagentes, independientemente de si se ejecuta en primer plano o en segundo plano. Para evitar que un subagente genere otros, omita `Agent` de su matriz `tools` o agréguelo a `disallowedTools`. Consulte [subagentes anidados](/es/sub-agents#spawn-nested-subagents) para conocer las reglas de profundidad completas.

202</Note>209</Note>


215 Qué heredan los subagentes222 Qué heredan los subagentes

216</h2>223</h2>

217 224 

218La ventana de contexto de un subagente comienza nueva (sin conversación padre) pero no está vacía. El único canal del padre al subagente es la cadena de prompt de la herramienta Agent, así que incluya cualquier ruta de archivo, mensaje de error o decisión que el subagente necesite directamente en ese prompt.225La ventana de contexto de un subagente comienza nueva, sin conversación padre, pero no está vacía. El único canal del padre al subagente es la cadena de prompt de la herramienta Agent, así que incluya cualquier ruta de archivo, mensaje de error o decisión que el subagente necesite directamente en ese prompt.

219 226 

220| El subagente recibe | El subagente no recibe |227| El subagente recibe | El subagente no recibe |

221| :-------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |228| :-------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |


224| Definiciones de herramientas (heredadas del padre, o el subconjunto en `tools`) | El prompt del sistema del padre |231| Definiciones de herramientas (heredadas del padre, o el subconjunto en `tools`) | El prompt del sistema del padre |

225 232 

226<Note>233<Note>

227 El padre recibe el mensaje final del subagente textualmente como el resultado de la herramienta Agent, pero puede resumirlo en su propia respuesta. Para preservar la salida del subagente textualmente en la respuesta visible para el usuario, incluya una instrucción para hacerlo en el prompt u opción `systemPrompt` que pase a la llamada `query()` **principal**.234 El padre recibe el mensaje final del subagente textualmente como el resultado de la herramienta Agent, pero puede resumirlo en su propia respuesta. Para preservar la salida del subagente textualmente en la respuesta visible para el usuario, incluya una instrucción para hacerlo en el prompt u opción `systemPrompt` que pase a la llamada `query()` principal.

228</Note>235</Note>

229 236 

230<h2 id="invoking-subagents">237A partir de Claude Code v2.1.199, un error de API que termina el subagente anticipadamente, como un límite de velocidad, nunca se entrega como su resultado. Si el subagente ya produjo salida, la herramienta Agent devuelve esa salida parcial con una nota de que el subagente no terminó; de lo contrario, el resultado de la herramienta es un mensaje de error, `Agent terminated early due to an API error`, seguido del detalle del error. Consulte [API errors in subagents](/es/sub-agents#api-errors-in-subagents) para el comportamiento en primer plano y en segundo plano.

238 

239<h2 id="invoke-subagents">

231 Invocación de subagentes240 Invocación de subagentes

232</h2>241</h2>

233 242 


329 ```338 ```

330</CodeGroup>339</CodeGroup>

331 340 

332<h2 id="detecting-subagent-invocation">341<h2 id="detect-subagent-invocation">

333 Detección de invocación de subagentes342 Detección de invocación de subagentes

334</h2>343</h2>

335 344 

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

337 346 

338<Note>347<Note>

339 El nombre de la herramienta se cambió de `"Task"` a `"Agent"` en Claude Code v2.1.63. Los lanzamientos actuales del SDK emiten `"Agent"` en bloques `tool_use` pero aún usan `"Task"` en la lista de herramientas `system:init` y en `result.permission_denials[].tool_name`. Verificar ambos valores en `block.name` asegura compatibilidad entre versiones del SDK.348 El nombre de la herramienta se cambió de `"Task"` a `"Agent"` en Claude Code v2.1.63. Los lanzamientos actuales del SDK emiten `"Agent"` en bloques `tool_use` pero aún usan `"Task"` en la lista de herramientas `system:init` y en `result.permission_denials[].tool_name`. Verificar ambos valores en `block.name` asegura compatibilidad entre versiones del SDK.


422 ```431 ```

423</CodeGroup>432</CodeGroup>

424 433 

425<h2 id="resuming-subagents">434<h2 id="resume-subagents">

426 Reanudación de subagentes435 Reanudación de subagentes

427</h2>436</h2>

428 437 

429Los subagentes pueden reanudarse para continuar donde se detuvieron. Los subagentes reanudados retienen su historial de conversación completo, incluidas todas las llamadas a herramientas anteriores, resultados y razonamiento. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo.438Puede reanudar un subagente para continuar donde se detuvo en lugar de comenzar de nuevo. Un subagente reanudado retiene su historial de conversación completo, incluidas todas las llamadas a herramientas anteriores, resultados y razonamiento.

430 439 

431Cuando un subagente se completa, el resultado de la herramienta Agent incluye un bloque de texto que contiene `agentId: <id>`. Los agentes integrados [`Explore` y `Plan`](/es/sub-agents#built-in-subagents) son de una sola ejecución y no devuelven un `agentId`, así que use un agente personalizado o `general-purpose` cuando necesite reanudar. Para reanudar un subagente programáticamente:440Cuando un subagente se completa, el resultado de la herramienta Agent incluye un bloque de texto que contiene `agentId: <id>`. Los agentes integrados [`Explore` y `Plan`](/es/sub-agents#built-in-subagents) son de una sola ejecución y no devuelven un `agentId`, así que use un agente personalizado o `general-purpose` cuando necesite reanudar. Para reanudar un subagente programáticamente:

432 441 


568 577 

569* **Compactación de conversación principal**: Cuando la conversación principal se compacta, las transcripciones de subagentes no se ven afectadas. Se almacenan en archivos separados.578* **Compactación de conversación principal**: Cuando la conversación principal se compacta, las transcripciones de subagentes no se ven afectadas. Se almacenan en archivos separados.

570* **Persistencia de sesión**: Las transcripciones de subagentes persisten dentro de su sesión. Puede reanudar un subagente después de reiniciar Claude Code reanudando la misma sesión.579* **Persistencia de sesión**: Las transcripciones de subagentes persisten dentro de su sesión. Puede reanudar un subagente después de reiniciar Claude Code reanudando la misma sesión.

571* **Limpieza automática**: Las transcripciones se limpian en función de la configuración `cleanupPeriodDays` (predeterminado: 30 días).580* **Limpieza automática**: Las transcripciones se limpian en función de la configuración `cleanupPeriodDays`, que tiene un valor predeterminado de 30 días.

572 581 

573<h2 id="tool-restrictions-1">582<h2 id="tool-restrictions-1">

574 Restricciones de herramientas583 Restricciones de herramientas


662 671 

663Si Claude completa tareas directamente en lugar de delegar a su subagente:672Si Claude completa tareas directamente en lugar de delegar a su subagente:

664 673 

6651. **Verifique que las invocaciones de Agent estén aprobadas**: incluya `Agent` en `allowedTools` para aprobar automáticamente las llamadas de subagentes. Sin esto, las invocaciones de Agent caen en su callback `canUseTool` o, en modo `dontAsk`, se deniegan674* **Verifique que las invocaciones de Agent estén aprobadas**: incluya `Agent` en `allowedTools` para aprobar automáticamente las llamadas de subagentes. Sin esto, las invocaciones de Agent caen en su callback `canUseTool` o, en modo `dontAsk`, se deniegan

6662. **Use prompting explícito**: mencione el subagente por nombre en su prompt (por ejemplo, "Usa el agente code-reviewer para...")675* **Use prompting explícito**: mencione el subagente por nombre en su prompt, por ejemplo "Use el agente code-reviewer para..."

6673. **Escriba una descripción clara**: explique exactamente cuándo se debe usar el subagente para que Claude pueda hacer coincidir las tareas apropiadamente676* **Escriba una descripción clara**: explique exactamente cuándo se debe usar el subagente para que Claude pueda hacer coincidir las tareas apropiadamente

668 677 

669<h3 id="filesystem-based-agents-not-loading">678<h3 id="filesystem-based-agents-not-loading">

670 Agentes basados en sistema de archivos no se cargan679 Agentes basados en sistema de archivos no se cargan

671</h3>680</h3>

672 681 

673Los agentes definidos en `.claude/agents/` se cargan solo al inicio. Si crea un nuevo archivo de agente mientras Claude Code está en ejecución, reinicie la sesión para cargarlo.682Claude Code observa `~/.claude/agents/` y `.claude/agents/` y detecta un archivo de agente nuevo o editado en unos pocos segundos, sin necesidad de reiniciar. Si una definición nunca aparece, trabaje a través de estas causas:

683 

684* **Nuevo directorio `agents`**: el observador cubre solo directorios que existían cuando se inició la sesión, por lo que el primer archivo en un directorio nuevo necesita un reinicio de sesión. Esta es la causa más común.

685* **Frontmatter inválido o un `name` duplicado**: verifique el YAML del archivo y si un agente existente ya usa el `name`.

686* **`--disable-slash-commands`**: las sesiones iniciadas con esta bandera no observan estos directorios y siempre necesitan un reinicio para cargar archivos nuevos.

687* **Un agente programático con el mismo nombre**: los `agents` pasados a `query()` anulan un agente del sistema de archivos con el mismo nombre.

688 

689Para el formato de archivo, consulte [cómo escribir archivos de subagente](/es/sub-agents#write-subagent-files).

674 690 

675<h3 id="windows-long-prompt-failures">691<h3 id="long-prompt-failures-on-windows">

676 Windows: fallos de prompt largo692 Fallos de prompt largo en Windows

677</h3>693</h3>

678 694 

679En Windows, los subagentes con prompts muy largos pueden fallar debido a límites de longitud de línea de comandos (8191 caracteres). Mantenga los prompts concisos o use agentes basados en sistema de archivos para instrucciones complejas.695En Windows, los subagentes con prompts muy largos pueden fallar debido al límite de longitud de línea de comandos de 8191 caracteres. Mantenga los prompts concisos o use agentes basados en sistema de archivos para instrucciones complejas.

680 696 

681<h2 id="related-documentation">697<h2 id="related-documentation">

682 Documentación relacionada698 Documentación relacionada

Details

9El seguimiento de tareas proporciona una forma estructurada de gestionar tareas y mostrar el progreso a los usuarios. El SDK del Agente Claude incluye funcionalidad de tareas integrada que ayuda a organizar flujos de trabajo complejos y mantener a los usuarios informados sobre la progresión de las tareas.9El seguimiento de tareas proporciona una forma estructurada de gestionar tareas y mostrar el progreso a los usuarios. El SDK del Agente Claude incluye funcionalidad de tareas integrada que ayuda a organizar flujos de trabajo complejos y mantener a los usuarios informados sobre la progresión de las tareas.

10 10 

11<Note>11<Note>

12 A partir del TypeScript Agent SDK 0.3.142 y Claude Code v2.1.142, las sesiones utilizan las herramientas Task estructuradas `TaskCreate`, `TaskUpdate`, `TaskGet` y `TaskList` en lugar de `TodoWrite`. Consulte [Migrar a herramientas Task](#migrate-to-task-tools) para ver cómo cambia el código de monitoreo. Los ejemplos en esta página establecen `CLAUDE_CODE_ENABLE_TASKS=0` para seguir mostrando `TodoWrite` para sesiones que aún no han migrado.12 A partir del TypeScript Agent SDK 0.3.142 y Claude Code v2.1.142, las sesiones utilizan las herramientas Task estructuradas `TaskCreate`, `TaskUpdate`, `TaskGet` y `TaskList` en lugar de `TodoWrite`. El SDK de Python obtiene este cambio de la CLI de Claude Code que lanza, no de la versión del paquete de Python: el cambio se aplica una vez que esa CLI — la copia incluida dentro del paquete pip, o una a la que apunte con `cli_path` — sea v2.1.142 o posterior. Consulte [Migrar a herramientas Task](#migrate-to-task-tools) para ver cómo cambia el código de monitoreo. Los ejemplos en esta página establecen `CLAUDE_CODE_ENABLE_TASKS=0` para seguir mostrando `TodoWrite` para sesiones que aún no han migrado.

13</Note>13</Note>

14 14 

15<h3 id="todo-lifecycle">15<h3 id="todo-lifecycle">


27 Cuándo se Utilizan las Tareas27 Cuándo se Utilizan las Tareas

28</h3>28</h3>

29 29 

30El SDK crea automáticamente tareas para:30El SDK crea tareas para la mayoría del trabajo de múltiples pasos, como:

31 31 

32* **Tareas complejas de múltiples pasos** que requieren 3 o más acciones distintas32* **Tareas complejas de múltiples pasos** que requieren 3 o más acciones distintas

33* **Listas de tareas proporcionadas por el usuario** cuando se mencionan múltiples elementos33* **Listas de tareas proporcionadas por el usuario** cuando se mencionan múltiples elementos

34* **Operaciones no triviales** que se benefician del seguimiento del progreso34* **Operaciones no triviales** que se benefician del seguimiento del progreso

35* **Solicitudes explícitas** cuando los usuarios piden organización de tareas35* **Solicitudes explícitas** cuando los usuarios piden organización de tareas

36 36 

37Puede omitir tareas para solicitudes muy cortas o de un solo paso.

38 

37<h2 id="examples">39<h2 id="examples">

38 Ejemplos40 Ejemplos

39</h2>41</h2>

40 42 

43Antes de ejecutar estos ejemplos, instale el Claude Agent SDK siguiendo el [inicio rápido](/es/agent-sdk/quickstart).

44 

45Cada ejemplo se ejecuta hasta que el agente termina y produce su mensaje de resultado final. Si una sesión alcanza primero su límite de turnos, ese mensaje de resultado tiene el subtipo `error_max_turns`. Verifique `subtype` para detectar ese final.

46 

47Estos ejemplos utilizan llamadas `query()` de un solo disparo. Después de producir un resultado `error_max_turns`, `query()` genera un error que incluye `Reached maximum number of turns`. Cada ejemplo envuelve su bucle en un bloque try para salir limpiamente cuando eso sucede.

48 

49Consulte [Manejar el resultado](/es/agent-sdk/agent-loop#handle-the-result) para los subtipos de resultado.

50 

41<h3 id="monitoring-todo-changes">51<h3 id="monitoring-todo-changes">

42 Monitoreo de Cambios en Tareas52 Monitoreo de Cambios en Tareas

43</h3>53</h3>


46 ```typescript TypeScript theme={null}56 ```typescript TypeScript theme={null}

47 import { query } from "@anthropic-ai/claude-agent-sdk";57 import { query } from "@anthropic-ai/claude-agent-sdk";

48 58 

59 try {

49 for await (const message of query({60 for await (const message of query({

50 prompt: "Optimize my React app performance and track progress with todos",61 prompt: "Optimize my React app performance and track progress with todos",

51 // Re-enable TodoWrite, which this example monitors. Without it, the SDK uses62 // Re-enable TodoWrite, which this example monitors. Without it, the SDK uses


68 }79 }

69 }80 }

70 }81 }

82 } catch (error) {

83 // A single-shot query() throws after yielding an error result,

84 // such as when the maxTurns limit is hit.

85 console.log(`Session ended with an error: ${error}`);

86 }

71 ```87 ```

72 88 

73 ```python Python theme={null}89 ```python Python theme={null}

90 import asyncio

91 

74 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock92 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

75 93 

94 

95 async def main():

96 try:

76 async for message in query(97 async for message in query(

77 prompt="Optimize my React app performance and track progress with todos",98 prompt="Optimize my React app performance and track progress with todos",

78 # Re-enable TodoWrite, which this example monitors. Without it, the SDK uses99 # Re-enable TodoWrite, which this example monitors. Without it, the SDK uses


95 else "❌"116 else "❌"

96 )117 )

97 print(f"{i + 1}. {status} {todo['content']}")118 print(f"{i + 1}. {status} {todo['content']}")

119 except Exception as error:

120 # A single-shot query() raises after yielding an error result,

121 # such as when the max_turns limit is hit.

122 print(f"Session ended with an error: {error}")

123 

124 

125 asyncio.run(main())

98 ```126 ```

99</CodeGroup>127</CodeGroup>

100 128 


128 }156 }

129 157 

130 async trackQuery(prompt: string) {158 async trackQuery(prompt: string) {

159 try {

131 for await (const message of query({160 for await (const message of query({

132 prompt,161 prompt,

133 // Re-enable TodoWrite, which this tracker watches for.162 // Re-enable TodoWrite, which this tracker watches for.


142 }171 }

143 }172 }

144 }173 }

174 } catch (error) {

175 // A single-shot query() throws after yielding an error result,

176 // such as when the maxTurns limit is hit.

177 console.log(`Session ended with an error: ${error}`);

178 }

145 }179 }

146 }180 }

147 181 


151 ```185 ```

152 186 

153 ```python Python theme={null}187 ```python Python theme={null}

188 import asyncio

189 

154 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock190 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

155 from typing import List, Dict191 from typing import List, Dict

156 192 


186 print(f"{i + 1}. {icon} {text}")222 print(f"{i + 1}. {icon} {text}")

187 223 

188 async def track_query(self, prompt: str):224 async def track_query(self, prompt: str):

225 try:

189 async for message in query(226 async for message in query(

190 prompt=prompt,227 prompt=prompt,

191 # Re-enable TodoWrite, which this tracker watches for.228 # Re-enable TodoWrite, which this tracker watches for.


196 if isinstance(block, ToolUseBlock) and block.name == "TodoWrite":233 if isinstance(block, ToolUseBlock) and block.name == "TodoWrite":

197 self.todos = block.input["todos"]234 self.todos = block.input["todos"]

198 self.display_progress()235 self.display_progress()

236 except Exception as error:

237 # A single-shot query() raises after yielding an error result,

238 # such as when the max_turns limit is hit.

239 print(f"Session ended with an error: {error}")

199 240 

200 241 

201 # Usage242 # Usage

243 async def main():

202 tracker = TodoTracker()244 tracker = TodoTracker()

203 await tracker.track_query("Build a complete authentication system with todos")245 await tracker.track_query("Build a complete authentication system with todos")

246 

247 

248 asyncio.run(main())

204 ```249 ```

205</CodeGroup>250</CodeGroup>

206 251 


217| Forma del elemento: `{ content, status, activeForm }` | Entrada de `TaskCreate`: `{ subject, description, activeForm?, metadata? }`. Entrada de `TaskUpdate`: `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` es `"pending"`, `"in_progress"` o `"completed"`; establezca `status: "deleted"` para eliminar |262| Forma del elemento: `{ content, status, activeForm }` | Entrada de `TaskCreate`: `{ subject, description, activeForm?, metadata? }`. Entrada de `TaskUpdate`: `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` es `"pending"`, `"in_progress"` o `"completed"`; establezca `status: "deleted"` para eliminar |

218| Renderice `block.input.todos` directamente | Acumule elementos entre llamadas, o lea una instantánea de un resultado de herramienta `TaskList` |263| Renderice `block.input.todos` directamente | Acumule elementos entre llamadas, o lea una instantánea de un resultado de herramienta `TaskList` |

219 264 

220El ID de tarea asignado no está en la entrada de `TaskCreate`. Vuelve en el bloque `tool_result` coincidente como `{ task: { id, subject } }`, así que capturelo del bloque de resultado para codificar su mapa. El siguiente ejemplo muestra el cambio mínimo al bucle [Monitoreo de Cambios en Tareas](#monitoring-todo-changes). Para renderizar una lista completa, observe un resultado de herramienta `TaskList` en la secuencia o acumule resultados de `TaskCreate` e entradas de `TaskUpdate` en un mapa.265El ID de tarea asignado no está en la entrada de `TaskCreate`. Vuelve en el bloque `tool_result` coincidente como `{ task: { id, subject } }`, así que capturelo del bloque de resultado para codificar su mapa. El siguiente ejemplo muestra el cambio mínimo al bucle [Monitoreo de Cambios en Tareas](#monitoring-todo-changes). Lee solo entradas de `tool_use` y omite capturar IDs de bloques `tool_result`. Para renderizar una lista completa, observe un resultado de herramienta `TaskList` en la secuencia o acumule resultados de `TaskCreate` e entradas de `TaskUpdate` en un mapa.

221 266 

222La entrada `tool_use` transmitida es la forma bruta que emitió el modelo. Claude Code repara algunos nombres de clave casi correctos pero incorrectos antes de la ejecución, asignando `id` o `task_id` a `taskId` y `active_form` a `activeForm`, pero esa reparación no se refleja en la secuencia. Lea los campos de entrada de `TaskUpdate` defensivamente, como lo hacen los ejemplos a continuación, en lugar de asumir que el nombre canónico siempre está presente.267La entrada `tool_use` transmitida es la forma bruta que emitió el modelo. Claude Code repara algunos nombres de clave casi correctos pero incorrectos antes de la ejecución, asignando `id` o `task_id` a `taskId` y `active_form` a `activeForm`, pero esa reparación no se refleja en la secuencia. Lea los campos de entrada de `TaskUpdate` defensivamente, como lo hacen los ejemplos a continuación, en lugar de asumir que el nombre canónico siempre está presente.

223 268 


225 ```typescript TypeScript theme={null}270 ```typescript TypeScript theme={null}

226 import { query } from "@anthropic-ai/claude-agent-sdk";271 import { query } from "@anthropic-ai/claude-agent-sdk";

227 272 

273 try {

228 for await (const message of query({274 for await (const message of query({

229 prompt: "Optimize my React app performance",275 prompt: "Optimize my React app performance and track progress with todos",

276 options: { maxTurns: 15 },

230 })) {277 })) {

231 if (message.type !== "assistant") continue;278 if (message.type !== "assistant") continue;

232 for (const block of message.message.content) {279 for (const block of message.message.content) {


246 }293 }

247 }294 }

248 }295 }

296 } catch (error) {

297 // A single-shot query() throws after yielding an error result.

298 console.log(`Session ended with an error: ${error}`);

299 }

249 ```300 ```

250 301 

251 ```python Python theme={null}302 ```python Python theme={null}

252 from claude_agent_sdk import query, AssistantMessage, ToolUseBlock303 import asyncio

253 304 

305 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

306 

307 async def main():

308 try:

254 async for message in query(309 async for message in query(

255 prompt="Optimize my React app performance",310 prompt="Optimize my React app performance and track progress with todos",

311 options=ClaudeAgentOptions(max_turns=15),

256 ):312 ):

257 if not isinstance(message, AssistantMessage):313 if not isinstance(message, AssistantMessage):

258 continue314 continue


269 )325 )

270 if task_id:326 if task_id:

271 print(f" {task_id} -> {block.input['status']}")327 print(f" {task_id} -> {block.input['status']}")

328 except Exception as error:

329 # A single-shot query() raises after yielding an error result.

330 print(f"Session ended with an error: {error}")

331 

332 

333 asyncio.run(main())

272 ```334 ```

273</CodeGroup>335</CodeGroup>

274 336 

Details

551```551```

552 552 

553* `API_TIMEOUT_MS`: tiempo de espera por solicitud en el cliente de Anthropic, en milisegundos. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.553* `API_TIMEOUT_MS`: tiempo de espera por solicitud en el cliente de Anthropic, en milisegundos. Predeterminado `600000`. Se aplica al bucle principal y a todos los subagentes.

554* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más retroceso. Para ejecuciones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG=1` para reintentar capacidades de error indefinidamente.554* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`, limitado a `15`. Cada reintento obtiene su propia ventana `API_TIMEOUT_MS`, por lo que el tiempo de pared en el peor caso es aproximadamente `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` más retroceso. Para ejecuciones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG=1`: reintenta errores de capacidad indefinidamente, y {/* min-version: 2.1.199 */}a partir de Claude Code v2.1.199 eleva el predeterminado para otros errores transitorios a `300` y elimina el límite en esta variable.

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: perro guardián de estancamiento para subagentes lanzados con `run_in_background`. Predeterminado `600000`. Se reinicia en cada evento de transmisión; en caso de estancamiento, aborta el subagente, marca la tarea como fallida y expone el error al padre con cualquier resultado parcial. No se aplica a subagentes síncronos.555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: perro guardián de estancamiento para subagentes lanzados con `run_in_background`. Predeterminado `600000`. Se reinicia en cada evento de transmisión; en caso de estancamiento, aborta el subagente, marca la tarea como fallida y expone el error al padre con cualquier resultado parcial. No se aplica a subagentes síncronos.

556* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de respuesta deja de transmitirse. El perro guardián está activado de forma predeterminada para todos los proveedores; establezca `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.556* `CLAUDE_ENABLE_STREAM_WATCHDOG` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de respuesta deja de transmitirse. El perro guardián está activado de forma predeterminada para todos los proveedores; establezca `CLAUDE_ENABLE_STREAM_WATCHDOG=0` para desactivarlo. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` tiene un valor predeterminado de `300000` y se fija a ese mínimo. La solicitud abortada pasa por la ruta de reintento normal.

557 557 


901 decisionReason?: string;901 decisionReason?: string;

902 toolUseID: string;902 toolUseID: string;

903 agentID?: string;903 agentID?: string;

904 requestId: string;

904 }905 }

905) => Promise<PermissionResult>;906) => Promise<PermissionResult | null>;

906```907```

907 908 

908| Opción | Tipo | Descripción |909| Opción | Tipo | Descripción |


913| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |914| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |

914| `toolUseID` | `string` | Identificador único para esta llamada de herramienta específica dentro del mensaje del asistente |915| `toolUseID` | `string` | Identificador único para esta llamada de herramienta específica dentro del mensaje del asistente |

915| `agentID` | `string` | Si se ejecuta dentro de un sub-agente, el ID del sub-agente |916| `agentID` | `string` | Si se ejecuta dentro de un sub-agente, el ID del sub-agente |

917| `requestId` | `string` | El `request_id` del sobre `control_request`. Una `control_response` que su aplicación envía fuera del SDK, como un POST HTTP firmado, debe repetir este valor para que el proceso de Claude Code pueda coincidir la respuesta con la solicitud |

918 

919La devolución de llamada normalmente resuelve la solicitud devolviendo un [`PermissionResult`](#permissionresult), que el SDK escribe de vuelta sobre su transporte como `control_response`. Devuelva `null` solo cuando su aplicación ya haya enviado `control_response` para esta solicitud sobre su propio canal, repitiendo `requestId`; el SDK luego omite escribir la respuesta a su transporte. Devolver `null` en cualquier otro caso deja la llamada de herramienta bloqueada indefinidamente, porque nunca se envía `control_response` y los mensajes de permiso no tienen tiempo de espera.

920 

921La opción `requestId` y el valor de retorno `null` requieren Claude Code v2.1.199 o posterior.

916 922 

917<h3 id="permissionresult">923<h3 id="permissionresult">

918 `PermissionResult`924 `PermissionResult`


2179};2185};

2180```2186```

2181 2187 

2182Detiene una tarea de fondo en ejecución o shell por ID.2188Detiene una tarea de fondo en ejecución o shell por ID. {/* min-version: 2.1.198 */}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.

2183 2189 

2184<h3 id="notebookedit">2190<h3 id="notebookedit">

2185 NotebookEdit2191 NotebookEdit


3788| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuración de binario ripgrep personalizado para entornos sandbox |3794| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Configuración de binario ripgrep personalizado para entornos sandbox |

3789 3795 

3790<Note>3796<Note>

3791 El sandbox depende de la compatibilidad de la plataforma y, en Linux, de herramientas como `bubblewrap` y `socat`. Cuando `enabled` es `true` y el sandbox no puede iniciarse, `query()` reporta un mensaje `result` con `subtype: "error_during_execution"` y la razón en `errors`, luego se detiene. Observe ese subtipo en lugar de esperar que `query()` lance una excepción antes de ceder mensajes.3797 El sandbox depende de la compatibilidad de la plataforma y, en Linux, de herramientas como `bubblewrap` y `socat`. Cuando `enabled` es `true` y el sandbox no puede iniciarse, `query()` reporta un mensaje `result` con `subtype: "error_during_execution"` y la razón en `errors`. Para una única llamada a `query()`, el SDK lanza después de ceder ese resultado de error, así que envuelva el bucle en un bloque try para continuar más allá. Consulte [Manejar el resultado](/es/agent-sdk/agent-loop#handle-the-result) para el contrato de error.

3792 3798 

3793 Para ejecutar sin sandbox en su lugar, establezca `failIfUnavailable: false`.3799 Para ejecutar sin sandbox en su lugar, establezca `failIfUnavailable: false`.

3794</Note>3800</Note>


3800```typescript theme={null}3806```typescript theme={null}

3801import { query } from "@anthropic-ai/claude-agent-sdk";3807import { query } from "@anthropic-ai/claude-agent-sdk";

3802 3808 

3803for await (const message of query({3809try {

3810 for await (const message of query({

3804 prompt: "Build and test my project",3811 prompt: "Build and test my project",

3805 options: {3812 options: {

3806 sandbox: {3813 sandbox: {


3811 }3818 }

3812 }3819 }

3813 }3820 }

3814})) {3821 })) {

3815 if ("result" in message) console.log(message.result);3822 if ("result" in message) console.log(message.result);

3823 }

3824} catch (error) {

3825 // A single-shot query() throws after yielding an error result,

3826 // such as when the sandbox can't start (failIfUnavailable defaults to true).

3827 console.log(`Session ended with an error: ${error}`);

3816}3828}

3817```3829```

3818 3830 


3929<Warning>3941<Warning>

3930 Los comandos que se ejecutan con `dangerouslyDisableSandbox: true` tienen acceso completo al sistema. Asegúrese de que su controlador `canUseTool` valide estas solicitudes cuidadosamente.3942 Los comandos que se ejecutan con `dangerouslyDisableSandbox: true` tienen acceso completo al sistema. Asegúrese de que su controlador `canUseTool` valide estas solicitudes cuidadosamente.

3931 3943 

3932 Si `permissionMode` se establece en `bypassPermissions` y `allowUnsandboxedCommands` está habilitado, el modelo puede ejecutar autónomamente comandos fuera del sandbox sin solicitudes de aprobación. Esta combinación efectivamente permite que el modelo escape del aislamiento de sandbox silenciosamente.3944 Si `permissionMode` se establece en `bypassPermissions` y `allowUnsandboxedCommands` está habilitado, el modelo puede ejecutar autónomamente comandos fuera del sandbox sin solicitudes de aprobación (una [regla `ask`](/es/agent-sdk/permissions#how-permissions-are-evaluated) explícita aún fuerza una). Esta combinación efectivamente permite que el modelo escape del aislamiento de sandbox silenciosamente.

3933</Warning>3945</Warning>

3934 3946 

3935<h2 id="see-also">3947<h2 id="see-also">

agent-teams.md +12 −3

Details

90* **Intro**: abrir la transcripción del compañero de equipo seleccionado y enviarle un mensaje directamente90* **Intro**: abrir la transcripción del compañero de equipo seleccionado y enviarle un mensaje directamente

91* **Escape**: interrumpir el turno actual del compañero de equipo seleccionado91* **Escape**: interrumpir el turno actual del compañero de equipo seleccionado

92 92 

93{/* min-version: 2.1.181 */}A partir de v2.1.181, la fila de un compañero de equipo inactivo se oculta después de 30 segundos y reaparece en su siguiente turno. El compañero de equipo sigue ejecutándose y es direccionable mientras está oculto.93{/* min-version: 2.1.199 */}A partir de v2.1.199, la fila de un compañero de equipo inactivo permanece en el panel mientras cualquier compañero de equipo o subagente siga trabajando, por lo que puede seleccionarlo para revisar su transcripción o enviarle más trabajo. Una vez que cada agente en el panel está inactivo, las filas inactivas se ocultan después de 30 segundos y reaparecen en el siguiente turno del compañero de equipo; el compañero de equipo sigue ejecutándose y es direccionable mientras está oculto. En v2.1.181 a v2.1.198, una fila inactiva se ocultaba 30 segundos después de que su propio turno terminaba, incluso mientras otros compañeros de equipo seguían trabajando; las filas inactivas no se ocultan en versiones anteriores a v2.1.181.

94 

95Cuando más de tres compañeros de equipo están inactivos a la vez, las filas más allá de las primeras tres se contraen en una sola fila que cuenta los compañeros de equipo contraídos, como `2 idle agents` cuando cinco están inactivos. Selecciónela y presione Intro para expandir las filas contraídas, o presione Esc para contraerlas de nuevo. Los compañeros de equipo que trabajan, los compañeros de equipo que fallaron, y el compañero de equipo que está viendo siempre mantienen sus propias filas.

94 96 

95Si desea que cada compañero de equipo esté en su propio panel dividido, vea [Elegir un modo de visualización](#choose-a-display-mode).97Si desea que cada compañero de equipo esté en su propio panel dividido, vea [Elegir un modo de visualización](#choose-a-display-mode).

96 98 


175* **Modo en proceso**: use las teclas de flecha arriba y abajo en el panel del agente para seleccionar un compañero de equipo, luego presione Intro para ver su sesión y escriba para enviarle un mensaje. Presione `x` en un compañero de equipo seleccionado para detenerlo. Presione Ctrl+T para alternar la lista de tareas.177* **Modo en proceso**: use las teclas de flecha arriba y abajo en el panel del agente para seleccionar un compañero de equipo, luego presione Intro para ver su sesión y escriba para enviarle un mensaje. Presione `x` en un compañero de equipo seleccionado para detenerlo. Presione Ctrl+T para alternar la lista de tareas.

176* **Modo de panel dividido**: haga clic en el panel de un compañero de equipo para interactuar directamente con su sesión. Cada compañero de equipo tiene una vista completa de su propio terminal.178* **Modo de panel dividido**: haga clic en el panel de un compañero de equipo para interactuar directamente con su sesión. Cada compañero de equipo tiene una vista completa de su propio terminal.

177 179 

180Mientras está viendo un compañero de equipo en proceso, el texto sin formato y las [skills](/es/skills) van a ese compañero de equipo, pero los comandos integrados aún se ejecutan en la sesión del líder.

181 

182El modelo y el modo rápido de un compañero de equipo se fijan cuando se genera, por lo que `/model` y `/fast` solo cambian la configuración del líder. {/* min-version: 2.1.199 */}A partir de v2.1.199, escribir cualquiera de estos comandos mientras se ve un compañero de equipo muestra un aviso de que el cambio se aplica al líder; las versiones anteriores lo aplicaban al líder sin indicación. `/effort` aún se aplica a los turnos posteriores del compañero de equipo visto, porque los compañeros de equipo siguen el [nivel de esfuerzo](/es/model-config#adjust-effort-level) del líder.

183 

178<h3 id="assign-and-claim-tasks">184<h3 id="assign-and-claim-tasks">

179 Asignar y reclamar tareas185 Asignar y reclamar tareas

180</h3>186</h3>


296**Cómo los compañeros de equipo comparten información:**302**Cómo los compañeros de equipo comparten información:**

297 303 

298* **Entrega automática de mensajes**: cuando los compañeros de equipo envían mensajes, se entregan automáticamente a los destinatarios. El líder no necesita sondear actualizaciones.304* **Entrega automática de mensajes**: cuando los compañeros de equipo envían mensajes, se entregan automáticamente a los destinatarios. El líder no necesita sondear actualizaciones.

299* **Notificaciones de inactividad**: cuando un compañero de equipo termina y se detiene, notifica automáticamente al líder.305* **Notificaciones de inactividad**: cuando un compañero de equipo termina y se detiene, notifica automáticamente al líder. {/* min-version: 2.1.198 */}A partir de v2.1.198, un compañero de equipo cuyo turno termina en un error de API notifica al líder que falló e incluye el texto del error, en lugar de parecer que termina normalmente.

300* **Lista de tareas compartida**: todos los agentes pueden ver el estado de la tarea y reclamar trabajo disponible.306* **Lista de tareas compartida**: todos los agentes pueden ver el estado de la tarea y reclamar trabajo disponible.

301* **Mensajería de compañeros de equipo**: enviar un mensaje a un compañero de equipo específico por nombre. Para llegar a todos, envíe un mensaje por destinatario.307* **Mensajería de compañeros de equipo**: enviar un mensaje a un compañero de equipo específico por nombre. Para llegar a todos, envíe un mensaje por destinatario.

302 308 


432Si los compañeros de equipo no aparecen después de que le pida a Claude que cree un equipo:438Si los compañeros de equipo no aparecen después de que le pida a Claude que cree un equipo:

433 439 

434* En modo en proceso, los compañeros de equipo aparecen en el panel del agente debajo de la entrada del mensaje. Use las teclas de flecha arriba y abajo para seleccionar uno, luego presione Intro para verlo.440* En modo en proceso, los compañeros de equipo aparecen en el panel del agente debajo de la entrada del mensaje. Use las teclas de flecha arriba y abajo para seleccionar uno, luego presione Intro para verlo.

435* Una fila de compañero de equipo que desapareció después de estar inactiva ha sido ocultada, no detenida. Las filas inactivas se ocultan después de 30 segundos y reaparecen en el siguiente turno del compañero de equipo. Envíe un mensaje al compañero de equipo por nombre para traerlo de vuelta.441* Una fila de compañero de equipo que desapareció después de estar inactiva ha sido ocultada, no detenida. Las filas inactivas se ocultan 30 segundos después de que todo el panel se queda inactivo y reaparecen en el siguiente turno del compañero de equipo. Cuando más de tres compañeros de equipo están inactivos, sus filas excedentes se contraen en una única fila `N idle agents` que Intro expande. Envíe un mensaje al compañero de equipo por nombre para traer de vuelta una fila oculta.

436* Verifique que la tarea que le dio a Claude fue lo suficientemente compleja para justificar un equipo. Claude decide si generar compañeros de equipo según la tarea.442* Verifique que la tarea que le dio a Claude fue lo suficientemente compleja para justificar un equipo. Claude decide si generar compañeros de equipo según la tarea.

437* Si solicitó explícitamente paneles divididos, asegúrese de que tmux esté instalado y disponible en su PATH:443* Si solicitó explícitamente paneles divididos, asegúrese de que tmux esté instalado y disponible en su PATH:

438 ```bash theme={null}444 ```bash theme={null}


455* Deles instrucciones adicionales directamente461* Deles instrucciones adicionales directamente

456* Genere un compañero de equipo de reemplazo para continuar el trabajo462* Genere un compañero de equipo de reemplazo para continuar el trabajo

457 463 

464{/* min-version: 2.1.198 */}A partir de v2.1.198, un mensaje del líder u otro compañero de equipo despierta a un compañero de equipo en proceso que está esperando reintentar una solicitud de API fallida, por lo que lo reintenta inmediatamente en lugar de esperar el retraso de reintento completo.

465 

458<h3 id="lead-shuts-down-before-work-is-done">466<h3 id="lead-shuts-down-before-work-is-done">

459 El líder se apaga antes de que el trabajo esté hecho467 El líder se apaga antes de que el trabajo esté hecho

460</h3>468</h3>


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

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

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

494* **Sin subagentes de fondo de compañeros de equipo en proceso**: los propios subagentes de un compañero de equipo en proceso se ejecutan en primer plano. Solicitar uno de fondo, ya sea con `run_in_background` o una definición de subagente que establezca `background: true`, devuelve un error, porque el trabajo de fondo de un compañero de equipo no puede sobrevivir al proceso del líder. Los subagentes lanzados desde la conversación principal siguen el [valor predeterminado de fondo](/es/sub-agents#run-subagents-in-foreground-or-background).

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

487* **Permisos establecidos en la generación**: todos los compañeros de equipo comienzan con el modo de permiso del líder. Puede cambiar modos de compañeros de equipo individuales después de generar, pero no puede establecer modos por compañero de equipo en el momento de la generación.496* **Permisos establecidos en la generación**: todos los compañeros de equipo comienzan con el modo de permiso del líder. Puede cambiar modos de compañeros de equipo individuales después de generar, pero no puede establecer modos por compañero de equipo en el momento de la generación.

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

agent-view.md +59 −10

Details

27* [Inicio rápido](#quick-start): asigne a Claude una tarea para trabajar en segundo plano, verifique su estado e intervenga cuando sea necesario27* [Inicio rápido](#quick-start): asigne a Claude una tarea para trabajar en segundo plano, verifique su estado e intervenga cuando sea necesario

28* [Monitorear sesiones con la vista de agentes](#monitor-sessions-with-agent-view), incluidos iconos de estado, vista previa y respuesta, conexión, organización y atajos de teclado28* [Monitorear sesiones con la vista de agentes](#monitor-sessions-with-agent-view), incluidos iconos de estado, vista previa y respuesta, conexión, organización y atajos de teclado

29* [Distribuir nuevos agentes](#dispatch-new-agents) desde la vista de agentes, desde dentro de una sesión o desde su shell29* [Distribuir nuevos agentes](#dispatch-new-agents) desde la vista de agentes, desde dentro de una sesión o desde su shell

30* [Gestionar sesiones desde el shell](#manage-sessions-from-the-shell)30* [Gestionar sesiones desde el shell](#manage-sessions-from-the-shell) con `claude agents`, `claude attach` y comandos relacionados

31* [Cómo se alojan las sesiones en segundo plano](#how-background-sessions-are-hosted) por el proceso supervisor31* [Cómo se alojan las sesiones en segundo plano](#how-background-sessions-are-hosted) por el proceso supervisor

32 32 

33<h2 id="quick-start">33<h2 id="quick-start">


64 </Step>64 </Step>

65 65 

66 <Step title="Traer una sesión existente">66 <Step title="Traer una sesión existente">

67 Para mover una sesión que ya tiene abierta a la vista de agentes, ejecute `/bg` dentro de ella, o presione `←` en un mensaje vacío para enviarla al segundo plano y abrir la vista de agentes en un paso. La sesión sigue ejecutándose y aparece como una fila junto a las que distribuyó.67 Este paso necesita una sesión en ejecución. Si siguió los pasos anteriores, no tiene una abierta en esta terminal, así que abra una sesión regular de `claude` en otra terminal y envíele un mensaje primero. Para mover una sesión que ya tiene abierta a la vista de agentes, ejecute `/bg` dentro de ella, o presione `←` en un mensaje vacío para enviarla al segundo plano y abrir la vista de agentes en un paso. La sesión sigue ejecutándose y aparece como una fila junto a las que distribuyó.

68 </Step>68 </Step>

69</Steps>69</Steps>

70 70 


76 76 

77Ejecute `claude agents` para abrir la vista de agentes. Toma el control de la terminal completa y enumera cada sesión agrupada por estado, con sesiones fijadas y las que lo necesitan en la parte superior. Cada fila muestra el nombre de la sesión, la actividad actual y cuánto tiempo hace que cambió por última vez.77Ejecute `claude agents` para abrir la vista de agentes. Toma el control de la terminal completa y enumera cada sesión agrupada por estado, con sesiones fijadas y las que lo necesitan en la parte superior. Cada fila muestra el nombre de la sesión, la actividad actual y cuánto tiempo hace que cambió por última vez.

78 78 

79El nombre está teñido con el color establecido por [`/color`](/es/commands) en esa sesión. {/* min-version: 2.1.199 */}A partir de v2.1.199, el color se mantiene cuando [envía una sesión al segundo plano](#from-inside-a-session) con `←` o `/background`.

80 

79De forma predeterminada, la lista muestra cada sesión en segundo plano que ha iniciado, en todos sus proyectos. Una sesión que trabaja en un repositorio y otra en un worktree diferente aparecen aquí, independientemente de qué directorio abrió la vista de agentes. Para limitar la lista a un proyecto, pase `--cwd`:81De forma predeterminada, la lista muestra cada sesión en segundo plano que ha iniciado, en todos sus proyectos. Una sesión que trabaja en un repositorio y otra en un worktree diferente aparecen aquí, independientemente de qué directorio abrió la vista de agentes. Para limitar la lista a un proyecto, pase `--cwd`:

80 82 

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


91 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m93 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m

92 94 

93Ready for review95Ready for review

94 ∙ jump physics Opened PR with collision fix PR #2048 2h96 ∙ jump physics Opened PR with collision fix #2048 2h

95 97 

96Needs input98Needs input

97 ✻ power-up design needs input: double jump or wall climb? 1m99 ✻ power-up design needs input: double jump or wall climb? 1m


129| `∙` | El proceso ha salido. Aún puede echar un vistazo, responder o conectarse, y Claude reinicia desde donde se quedó |131| `∙` | El proceso ha salido. Aún puede echar un vistazo, responder o conectarse, y Claude reinicia desde donde se quedó |

130| `✢` | Una sesión [`/loop`](/es/scheduled-tasks) durmiendo entre iteraciones. La fila muestra su recuento de ejecución y una cuenta regresiva |132| `✢` | Una sesión [`/loop`](/es/scheduled-tasks) durmiendo entre iteraciones. La fila muestra su recuento de ejecución y una cuenta regresiva |

131 133 

132La etiqueta `PR #N` que puede aparecer en el borde derecho de una fila es el [estado de la solicitud de extracción que abrió la sesión](#pull-request-status), no parte del icono de estado. Cuando una sesión ha abierto más de una solicitud de extracción, la etiqueta muestra un recuento en su lugar, como `3 PRs`.134La etiqueta `#N` que puede aparecer en el borde derecho de una fila es la [solicitud de extracción que abrió la sesión](#pull-request-status), no parte del icono de estado.

133 135 

134El título de la pestaña de terminal muestra el recuento de entrada pendiente mientras la vista de agentes está abierta: `2 awaiting input · claude agents` cuando las sesiones necesitan entrada, o `claude agents` cuando no lo hacen.136El título de la pestaña de terminal muestra el recuento de entrada pendiente mientras la vista de agentes está abierta: `2 awaiting input · claude agents` cuando las sesiones necesitan entrada, o `claude agents` cuando no lo hacen.

135 137 

138A partir de v2.1.198, mientras la vista de agentes está abierta, Claude Code también envía una notificación a través de su [canal de notificación de terminal](/es/terminal-config#get-a-terminal-bell-or-notification) configurado cuando una sesión en segundo plano local comienza a necesitar su entrada, se completa o falla. Las sesiones que se ejecutan según un cronograma, como sesiones [`/loop`](/es/scheduled-tasks), notifican solo cuando necesitan su entrada. Las notificaciones utilizan la misma configuración [`preferredNotifChannel`](/es/settings#available-settings) que el resto de Claude Code y activan el hook [`Notification`](/es/hooks#notification) con el tipo `agent_needs_input` o `agent_completed`.

139 

136Las sesiones en segundo plano no necesitan ninguna terminal abierta para seguir funcionando. Un [proceso supervisor](#the-supervisor-process) separado las ejecuta, por lo que puede cerrar la vista de agentes, cerrar su shell o iniciar una nueva sesión interactiva y su trabajo distribuido sigue adelante.140Las sesiones en segundo plano no necesitan ninguna terminal abierta para seguir funcionando. Un [proceso supervisor](#the-supervisor-process) separado las ejecuta, por lo que puede cerrar la vista de agentes, cerrar su shell o iniciar una nueva sesión interactiva y su trabajo distribuido sigue adelante.

137 141 

138El estado de la sesión persiste en el disco a través de actualizaciones automáticas y reinicios del supervisor. Las sesiones también se conservan cuando su máquina se duerme. Sus procesos se reanudan al despertar y el supervisor se reconecta a ellos en lugar de tratar la brecha de tiempo como inactividad. El apagado aún detiene las sesiones en ejecución; consulte [Las sesiones se muestran como fallidas después del apagado](#sessions-show-as-failed-after-shutdown) para saber cómo recuperarlas.142El estado de la sesión persiste en el disco a través de actualizaciones automáticas y reinicios del supervisor. Las sesiones también se conservan cuando su máquina se duerme. Sus procesos se reanudan al despertar y el supervisor se reconecta a ellos en lugar de tratar la brecha de tiempo como inactividad. El apagado aún detiene las sesiones en ejecución; consulte [Las sesiones se muestran como fallidas después del apagado](#sessions-show-as-failed-after-shutdown) para saber cómo recuperarlas.


151 Estado de la solicitud de extracción155 Estado de la solicitud de extracción

152</h3>156</h3>

153 157 

154Cuando una sesión abre una solicitud de extracción, aparece una etiqueta `PR #1234` en el borde derecho de la fila, vinculada a la solicitud de extracción en terminales que admiten hipervínculos. La etiqueta persiste cuando envía un seguimiento a la sesión, por lo que la solicitud de extracción permanece visible mientras la fila revierte al progreso en vivo.158Cuando una sesión abre una solicitud de extracción, aparece una etiqueta `#1234` en el borde derecho de la fila, vinculada a la solicitud de extracción en terminales que admiten hipervínculos. La etiqueta persiste cuando envía un seguimiento a la sesión, por lo que la solicitud de extracción permanece visible mientras la fila revierte al progreso en vivo. Las sesiones en segundo plano que aislaron sus cambios en un worktree abren estas solicitudes de extracción por sí solas; [Cómo se aíslan los cambios de archivo](#how-file-edits-are-isolated) cubre cuándo sucede eso y qué nunca hace una sesión sin preguntar.

155 159 

156Cuando una sesión ha abierto más de una solicitud de extracción, la etiqueta muestra un recuento en su lugar, como `3 PRs`, coloreada por la solicitud de extracción abierta que más necesita atención. Abra el [panel de vista previa](#peek-and-reply) para verlas todas.160Cuando una sesión ha abierto más de una solicitud de extracción, la etiqueta muestra un recuento en su lugar, como `3 PRs`, coloreada por la solicitud de extracción abierta que más necesita atención. Abra el [panel de vista previa](#peek-and-reply) para verlas todas.

157 161 


190 194 

191Las sesiones conectadas siempre se renderizan en [modo de pantalla completa](/es/fullscreen), independientemente de su configuración `tui`, porque una sesión en segundo plano no tiene desplazamiento de terminal para agregar. Desplácese con `PgUp`, `PgDn` o la rueda del ratón, y presione `Ctrl+O` para el modo de transcripción. El desplazamiento nativo de su terminal y el modo de copia de tmux muestran solo la ventana gráfica actual, igual que cuando ejecuta cualquier aplicación de pantalla completa.195Las sesiones conectadas siempre se renderizan en [modo de pantalla completa](/es/fullscreen), independientemente de su configuración `tui`, porque una sesión en segundo plano no tiene desplazamiento de terminal para agregar. Desplácese con `PgUp`, `PgDn` o la rueda del ratón, y presione `Ctrl+O` para el modo de transcripción. El desplazamiento nativo de su terminal y el modo de copia de tmux muestran solo la ventana gráfica actual, igual que cuando ejecuta cualquier aplicación de pantalla completa.

192 196 

193Presione `←` en un mensaje vacío para desconectarse y volver a la vista de agentes. Si un diálogo tiene el enfoque y no responde a `←`, presione `Ctrl+Z` para desconectarse inmediatamente.197Presione `←` en un mensaje vacío, o ejecute `/exit`, para desconectarse y volver a la vista de agentes. A partir de v2.1.198, esto funciona de la misma manera si abrió la sesión desde la vista de agentes o con `claude attach <id>` desde su shell.

198 

199`Ctrl+Z` también se desconecta pero vuelve a donde comenzó: la vista de agentes si se conectó desde allí, o su shell si ejecutó `claude attach`. Use `Ctrl+Z` cuando un diálogo tiene el enfoque y no responde a `←`.

194 200 

195`Ctrl+C` mantiene su comportamiento de interrupción estándar mientras está conectado: cancela una respuesta en ejecución o un comando shell `!` en lugar de desconectarse. Presionar `Ctrl+C` dos veces en un mensaje vacío se desconecta, igual que en cualquier sesión.201`Ctrl+C` mantiene su comportamiento de interrupción estándar mientras está conectado: cancela una respuesta en ejecución o un comando shell `!` en lugar de desconectarse. Presionar `Ctrl+C` dos veces en un mensaje vacío se desconecta, igual que en cualquier sesión.

196 202 


289| `#<number>` o una URL de solicitud de extracción | Si una sesión ya está trabajando en ese PR, selecciónela en lugar de distribuir |295| `#<number>` o una URL de solicitud de extracción | Si una sesión ya está trabajando en ese PR, selecciónela en lugar de distribuir |

290| `Shift+Enter` | Distribuya e inmediatamente conéctese a la nueva sesión |296| `Shift+Enter` | Distribuya e inmediatamente conéctese a la nueva sesión |

291 297 

292Un pequeño conjunto de comandos se ejecutan en la vista de agentes en sí en lugar de distribuirse: `/exit` y `/quit` cierran la vista de agentes, `/logout` cierra su sesión, y `/model` establece el [modelo de distribución](#set-the-model). Skills, sus propios comandos y built-ins que expanden prompts como `/init` se envían a una nueva sesión en segundo plano como su primer mensaje. Otros comandos built-in muestran una sugerencia `attach to a session to run it` en su lugar.298Un pequeño conjunto de comandos se ejecutan en la vista de agentes en sí en lugar de distribuirse:

299 

300* `/exit` y `/quit` cierran la vista de agentes

301* `/logout` cierra su sesión

302* `/model` establece el [modelo de distribución](#set-the-model)

303* {/* min-version: 2.1.198 */}A partir de v2.1.198, `/login` abre el diálogo de inicio de sesión para que pueda iniciar sesión nuevamente sin conectarse a una sesión

304 

305Skills, sus propios comandos y built-ins que expanden prompts como `/init` se envían a una nueva sesión en segundo plano como su primer mensaje. Otros comandos built-in muestran una sugerencia `attach to a session to run it` en su lugar.

293 306 

294Empaquetar una tarea recurrente como un [skill](/es/skills) le permite iniciar el mismo flujo de trabajo desde la vista de agentes repetidamente sin reescribir el mensaje.307Empaquetar una tarea recurrente como un [skill](/es/skills) le permite iniciar el mismo flujo de trabajo desde la vista de agentes repetidamente sin reescribir el mensaje.

295 308 


313 326 

314Ejecute `/background` o su alias `/bg` para mover la conversación actual a una sesión en segundo plano. Pase un mensaje como `/bg run the test suite and fix any failures` para dar una instrucción más primero. Si Claude está respondiendo cuando ejecuta `/bg`, la respuesta continúa en la sesión en segundo plano.327Ejecute `/background` o su alias `/bg` para mover la conversación actual a una sesión en segundo plano. Pase un mensaje como `/bg run the test suite and fix any failures` para dar una instrucción más primero. Si Claude está respondiendo cuando ejecuta `/bg`, la respuesta continúa en la sesión en segundo plano.

315 328 

329Salir de una sesión interactiva que aún tiene trabajo en segundo plano en ejecución, como subagentes, comandos de shell en segundo plano, flujos de trabajo o [monitores](/es/tools-reference#monitor-tool), muestra un diálogo `Background work is running` en lugar de salir inmediatamente. {/* min-version: 2.1.198 */}A partir de v2.1.198, el diálogo ofrece `Move to background and exit` junto con `Exit anyway` y `Stay`. Elegirlo mueve la sesión al segundo plano de la misma manera que `/background` lo hace, luego lo devuelve a su shell, por lo que el trabajo que puede continuar sigue ejecutándose y la sesión aparece en la vista de agentes. La opción no se muestra cuando la vista de agentes está [desactivada](#turn-off-agent-view).

330 

316Enviar al segundo plano desde una sesión interactiva inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en vuelo se traslada a él: comandos shell en segundo plano en ejecución, subagentes en segundo plano, flujos de trabajo dinámicos y tareas programadas que creó con [`/loop`](/es/scheduled-tasks) se trasladan a la sesión en segundo plano y siguen ejecutándose allí. Un subagente se traslada junto con todo lo que inició, por lo que se traslada solo cuando todo ese trabajo puede trasladarse también, incluso en Windows. Para detener el trabajo en vuelo en lugar de trasladarlo, establezca la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/es/env-vars#variables); Claude Code luego le pide que confirme antes de enviar al segundo plano.331Enviar al segundo plano desde una sesión interactiva inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en vuelo se traslada a él: comandos shell en segundo plano en ejecución, subagentes en segundo plano, flujos de trabajo dinámicos y tareas programadas que creó con [`/loop`](/es/scheduled-tasks) se trasladan a la sesión en segundo plano y siguen ejecutándose allí. Un subagente se traslada junto con todo lo que inició, por lo que se traslada solo cuando todo ese trabajo puede trasladarse también, incluso en Windows. Para detener el trabajo en vuelo en lugar de trasladarlo, establezca la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/es/env-vars#variables); Claude Code luego le pide que confirme antes de enviar al segundo plano.

317 332 

318El trabajo que no puede trasladarse, como un [monitor](/es/tools-reference#monitor-tool) en ejecución, se detiene. Un subagente en segundo plano que posee un monitor se detiene junto con él. Cuando algún trabajo de este tipo se está ejecutando, Claude Code muestra un diálogo `Background this session?` para que pueda confirmar antes de que se detenga.333El trabajo que no puede trasladarse, como un [monitor](/es/tools-reference#monitor-tool) en ejecución, se detiene. Un subagente en segundo plano que posee un monitor se detiene junto con él. Cuando algún trabajo de este tipo se está ejecutando, Claude Code muestra un diálogo `Background this session?` para que pueda confirmar antes de que se detenga.


342claude --bg "investigate the flaky SettingsChangeDetector test"357claude --bg "investigate the flaky SettingsChangeDetector test"

343```358```

344 359 

360El mensaje es el argumento posicional, no un valor `-p`. {/* min-version: 2.1.198 */}A partir de v2.1.198, combinar `--bg` con `-p` o `--print` se rechaza con un error antes de que se cree cualquier sesión, porque `--print` nunca inicia la sesión interactiva a la que `claude agents` se conecta.

361 

345Para ejecutar un subagente específico como el agente principal de la sesión, combine `--bg` con `--agent`:362Para ejecutar un subagente específico como el agente principal de la sesión, combine `--bg` con `--agent`:

346 363 

347```bash theme={null}364```bash theme={null}


414 431 

415Un [subagente](/es/sub-agents) que la sesión en segundo plano genera hereda el directorio de trabajo de la sesión, por lo que sus ediciones de archivos se realizan en el worktree de la sesión en lugar de su copia de trabajo. Para darle a un subagente su propio worktree separado en su lugar, establezca [`isolation: worktree`](/es/sub-agents#supported-frontmatter-fields) en su frontmatter o pase `isolation: "worktree"` al generarlo.432Un [subagente](/es/sub-agents) que la sesión en segundo plano genera hereda el directorio de trabajo de la sesión, por lo que sus ediciones de archivos se realizan en el worktree de la sesión en lugar de su copia de trabajo. Para darle a un subagente su propio worktree separado en su lugar, establezca [`isolation: worktree`](/es/sub-agents#supported-frontmatter-fields) en su frontmatter o pase `isolation: "worktree"` al generarlo.

416 433 

434A partir de v2.1.198, una sesión en segundo plano que aisló sus cambios de código en un worktree también confirma, envía su propia rama y abre una solicitud de extracción en borrador sin detenerse a preguntar. La etiqueta [`#N`](#pull-request-status) aparece en su fila cuando se abre la solicitud de extracción. Nunca envía a `main` o `master`, nunca fuerza-envía o fusiona, y omite la solicitud de extracción cuando le dijo que no abriera una o el repositorio no tiene remoto.

435 

436Una sesión que edita un checkout que no aisló a sí misma aún pregunta antes de confirmar o cambiar de rama. Esto se aplica cuando el aislamiento se establece en `"none"`, cuando el movimiento del worktree falló, o cuando la sesión comenzó dentro de un worktree que ya existía.

437 

417<h3 id="set-the-model">438<h3 id="set-the-model">

418 Establecer el modelo439 Establecer el modelo

419</h3>440</h3>


529 550 

530Una vez que una sesión finaliza y permanece sin conectar durante aproximadamente una hora, el supervisor detiene su proceso para liberar recursos. Una sesión que ha [fijado](#organize-the-list) con `Ctrl+T` está exenta y mantiene su proceso ejecutándose mientras está inactiva. La transcripción y el estado permanecen en el disco de cualquier forma, y la próxima vez que se conecte, eche un vistazo o responda a una sesión detenida, el supervisor inicia un proceso nuevo desde donde se quedó. Cuando cada sesión ha finalizado y no hay terminal conectada, el supervisor mismo sale e inicia nuevamente la próxima vez que lo necesite.551Una vez que una sesión finaliza y permanece sin conectar durante aproximadamente una hora, el supervisor detiene su proceso para liberar recursos. Una sesión que ha [fijado](#organize-the-list) con `Ctrl+T` está exenta y mantiene su proceso ejecutándose mientras está inactiva. La transcripción y el estado permanecen en el disco de cualquier forma, y la próxima vez que se conecte, eche un vistazo o responda a una sesión detenida, el supervisor inicia un proceso nuevo desde donde se quedó. Cuando cada sesión ha finalizado y no hay terminal conectada, el supervisor mismo sale e inicia nuevamente la próxima vez que lo necesite.

531 552 

532Los comandos shell en segundo plano y flujos de trabajo dinámicos que la sesión inició siguen ejecutándose cuando su proceso se detiene, se reinicia o se actualiza, incluso en Windows. El siguiente proceso iniciado para esa sesión los recoge, un comando shell que terminó en el ínterin se reporta como completado con su salida, y un flujo de trabajo se reanuda desde donde se quedó. Los comandos shell iniciados por un subagente y los [monitores](/es/tools-reference#monitor-tool) en ejecución aún se detienen con el proceso, y eliminar la sesión detiene todo lo que entregó. Para detener comandos shell en segundo plano y flujos de trabajo con el proceso también, establezca la variable de entorno [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/es/env-vars#variables) en `1`.553El trabajo en segundo plano que la sesión inició en el nivel superior se entrega cuando su proceso se detiene, se reinicia o se actualiza, incluso en Windows. El siguiente proceso iniciado para esa sesión lo recoge:

554 

555* Un comando de shell en segundo plano que terminó en el ínterin se reporta como completado con su salida

556* Un flujo de trabajo dinámico se reanuda desde donde se quedó

557* Un [subagente en segundo plano](/es/sub-agents#run-subagents-in-foreground-or-background) se reanuda desde su propia transcripción

558 

559{/* min-version: 2.1.198 */}A partir de v2.1.198 la entrega cubre los tres. Antes de v2.1.198 cubría solo comandos de shell y flujos de trabajo, por lo que un subagente en segundo plano se detenía con el proceso y se reportaba como fallido en el próximo despertar.

560 

561El trabajo cuyo estado vive solo dentro del proceso mismo se detiene con él en lugar de ser entregado. Eso son comandos de shell que un subagente inició, que el subagente reanudado puede iniciar nuevamente, y [monitores](/es/tools-reference#monitor-tool) en ejecución, cuya secuencia de eventos no se puede mover a otro proceso.

562 

563Eliminar la sesión detiene todo lo que entregó. Para detener todo el trabajo en segundo plano de la sesión con el proceso en lugar de entregarlo, establezca la variable de entorno [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/es/env-vars#variables) en `1`.

533 564 

534Si una sesión reiniciada vuelve mostrando solo su mensaje original porque Claude Code malinterpretó su transcripción como vacía, la transcripción de conversación se renombra con un sufijo `.orphaned-` en lugar de eliminarse, por lo que permanece en su máquina.565Si una sesión reiniciada vuelve mostrando solo su mensaje original porque Claude Code malinterpretó su transcripción como vacía, la transcripción de conversación se renombra con un sufijo `.orphaned-` en lugar de eliminarse, por lo que permanece en su máquina.

535 566 


604 635 

605El sueño solo no causa esto. Las sesiones se conservan durante el sueño y el supervisor se reconecta a ellas al despertar.636El sueño solo no causa esto. Las sesiones se conservan durante el sueño y el supervisor se reconecta a ellas al despertar.

606 637 

638<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

639 Una sesión falla antes de iniciarse con una nota `possibly low memory`

640</h3>

641 

642A partir de v2.1.199, cuando el proceso de una sesión en segundo plano sale antes de terminar de iniciarse y el host tiene poca memoria, el estado de la fila nombra la salida y añade `possibly low memory — free some up and retry`. Las versiones anteriores mostraban solo la razón de salida desnuda para este fallo.

643 

644La nota es una hipótesis, no una causa confirmada. Claude Code la añade solo cuando el proceso salió silenciosamente, sin escribir un error y sin ser detenido por una señal, y el host reportó poca memoria en ese momento. Cuando el proceso escribió un error antes de salir, la fila muestra ese error en su lugar.

645 

646Libere memoria en la máquina, luego conéctese, eche un vistazo o responda a la fila y el supervisor inicia un proceso nuevo para la sesión. Cuando la memoria se mantiene baja, el supervisor también [detiene las sesiones inactivas](#the-supervisor-process) para liberar recursos por su cuenta.

647 

607<h3 id="agent-view-says-the-background-service-did-not-respond">648<h3 id="agent-view-says-the-background-service-did-not-respond">

608 La vista de agentes dice que el servicio en segundo plano no respondió649 La vista de agentes dice que el servicio en segundo plano no respondió

609</h3>650</h3>


634 675 

635Vea la [referencia de errores](/es/errors#could-not-resolve-authentication-method) para la lista completa de causas y soluciones.676Vea la [referencia de errores](/es/errors#could-not-resolve-authentication-method) para la lista completa de causas y soluciones.

636 677 

637<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">678<h3 id="background-sessions-can’t-read-desktop-documents-or-downloads-on-macos">

638 Las sesiones en segundo plano no pueden leer Desktop, Documents o Downloads en macOS679 Las sesiones en segundo plano no pueden leer Desktop, Documents o Downloads en macOS

639</h3>680</h3>

640 681 


642 683 

643Con el instalador nativo, la entrada aparece como Claude Code y la concesión persiste en las actualizaciones. Con otros métodos de instalación como Homebrew o npm, la entrada muestra la ruta del binario y puede necesitar ser otorgada nuevamente después de actualizar.684Con el instalador nativo, la entrada aparece como Claude Code y la concesión persiste en las actualizaciones. Con otros métodos de instalación como Homebrew o npm, la entrada muestra la ruta del binario y puede necesitar ser otorgada nuevamente después de actualizar.

644 685 

686<h3 id="background-sessions-can’t-reach-local-network-hosts-on-macos">

687 Las sesiones en segundo plano no pueden alcanzar hosts de red local en macOS

688</h3>

689 

690En macOS 15 y posterior, el sistema bloquea un proceso para que no alcance dispositivos en su red local hasta que otorgue permiso de Red Local. Antes de v2.1.198, el host de sesión en segundo plano nunca solicitó ese permiso, por lo que los comandos dirigidos a una dirección LAN fallaban con `connect: no route to host` aunque el mismo comando funcionaba en una terminal en primer plano. {/* min-version: 2.1.198 */}A partir de v2.1.198, el primer comando en una sesión en segundo plano que se conecta a una dirección de red local activa la solicitud de permiso de Red Local de macOS para Claude Code. Otórguelo una vez y esos comandos alcanzarán hosts LAN de la misma manera que lo hacen en una terminal en primer plano.

691 

645<h3 id="a-session-is-slow-to-respond-after-attaching">692<h3 id="a-session-is-slow-to-respond-after-attaching">

646 Una sesión es lenta para responder después de conectarse693 Una sesión es lenta para responder después de conectarse

647</h3>694</h3>


681La vista de agentes ha evolucionado rápidamente durante la vista previa de investigación. Si está en una versión anterior de Claude Code, algunos comportamientos en esta página pueden diferir; en particular, `claude agents` rechaza banderas que aún no admite con un error `unknown option`. La tabla a continuación enumera cuándo se agregó cada bandera y comportamiento.728La vista de agentes ha evolucionado rápidamente durante la vista previa de investigación. Si está en una versión anterior de Claude Code, algunos comportamientos en esta página pueden diferir; en particular, `claude agents` rechaza banderas que aún no admite con un error `unknown option`. La tabla a continuación enumera cuándo se agregó cada bandera y comportamiento.

682 729 

683| Versión | Cambio |730| Versión | Cambio |

684| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |731| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

732| v2.1.199 | {/* min-version: 2.1.199 */}Una sesión en segundo plano cuyo proceso se cierra antes de terminar de iniciarse en un host con poca memoria muestra `possibly low memory — free some up and retry` en su estado de fila en lugar de solo la razón de salida desnuda. Enviar al segundo plano una sesión con `←` o `/background` lleva su `/color` a la nueva fila. |

733| v2.1.198 | {/* min-version: 2.1.198 */}La vista de agentes envía una notificación a través de `preferredNotifChannel` cuando una sesión en segundo plano necesita entrada, finaliza o falla, y dispara el hook `Notification` con el tipo `agent_needs_input` o `agent_completed`. `←` y `/exit` dentro de `claude attach <id>` regresan a la vista de agentes en lugar de salir al shell; `Ctrl+Z` regresa al shell. Una sesión en segundo plano que aisló su trabajo en un worktree confirma, envía su propia rama aislada, nunca `main` o `master`, y abre una solicitud de extracción en borrador cuando finaliza en lugar de preguntar primero. `/login` se ejecuta en la vista de agentes y abre el diálogo de inicio de sesión. El diálogo de salida `Background work is running` ofrece `Move to background and exit`. La entrega de salida también cubre subagentes en segundo plano, que se reanudan desde su transcripción en el próximo despertar en lugar de ser reportados como fallidos. `claude --bg` combinado con `-p` o `--print` se rechaza con un error. |

685| v2.1.196 | {/* min-version: 2.1.196 */}Un único presionar `←` envía al segundo plano una sesión en primer plano; las versiones anteriores requerían dos presiones, con una sugerencia de pie de página y una confirmación. `--dangerously-skip-permissions` pasado a `claude agents` muestra el descargo de responsabilidad de bypass en lugar de ser silenciosamente descartado. Las sesiones interactivas que nunca nombró llevan un nombre predeterminado como `my-app-3f` en listados de sesiones y `claude agents --json`. Los comandos shell en segundo plano y flujos de trabajo dinámicos sobreviven al proceso de la sesión siendo detenido, reiniciado o actualizado, incluso en Windows; establezca `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desactivar la entrega. Una transcripción malinterpretada como vacía al reiniciar se renombra con un sufijo `.orphaned-` en lugar de eliminarse. |734| v2.1.196 | {/* min-version: 2.1.196 */}Un único presionar `←` envía al segundo plano una sesión en primer plano; las versiones anteriores requerían dos presiones, con una sugerencia de pie de página y una confirmación. `--dangerously-skip-permissions` pasado a `claude agents` muestra el descargo de responsabilidad de bypass en lugar de ser silenciosamente descartado. Las sesiones interactivas que nunca nombró llevan un nombre predeterminado como `my-app-3f` en listados de sesiones y `claude agents --json`. Los comandos shell en segundo plano y flujos de trabajo dinámicos sobreviven al proceso de la sesión siendo detenido, reiniciado o actualizado, incluso en Windows; establezca `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desactivar la entrega. Una transcripción malinterpretada como vacía al reiniciar se renombra con un sufijo `.orphaned-` en lugar de eliminarse. |

686| v2.1.195 | {/* min-version: 2.1.195 */}El trabajo en vuelo se traslada cuando envía al segundo plano una sesión en Windows también; establezca `CLAUDE_DISABLE_ADOPT=1` para detenerlo en su lugar. El grupo `Completed` llena el espacio vertical restante y el encabezado se compacta en terminales cortas. Una versión anterior de Claude Code ya no descarta campos `state.json` más nuevos de sesiones o oculta esas sesiones de `claude agents`. Conectarse a una sesión detenida cambia inmediatamente en lugar de mostrar una pantalla en blanco durante hasta cinco segundos. Un supervisor que no puede aceptar conexiones sale y libera su bloqueo por sí solo. |735| v2.1.195 | {/* min-version: 2.1.195 */}El trabajo en vuelo se traslada cuando envía al segundo plano una sesión en Windows también; establezca `CLAUDE_DISABLE_ADOPT=1` para detenerlo en su lugar. El grupo `Completed` llena el espacio vertical restante y el encabezado se compacta en terminales cortas. Una versión anterior de Claude Code ya no descarta campos `state.json` más nuevos de sesiones o oculta esas sesiones de `claude agents`. Conectarse a una sesión detenida cambia inmediatamente en lugar de mostrar una pantalla en blanco durante hasta cinco segundos. Un supervisor que no puede aceptar conexiones sale y libera su bloqueo por sí solo. |

687| v2.1.174 | {/* min-version: 2.1.174 */}Las sesiones en segundo plano ya no heredan variables de punto final de puerta de enlace como `ANTHROPIC_BASE_URL` del shell de lanzamiento del supervisor; el supervisor proporciona una instantánea de credencial nueva a workers precalentados, corrigiendo errores espurios de `Could not resolve authentication method`. |736| v2.1.174 | {/* min-version: 2.1.174 */}Las sesiones en segundo plano ya no heredan variables de punto final de puerta de enlace como `ANTHROPIC_BASE_URL` del shell de lanzamiento del supervisor; el supervisor proporciona una instantánea de credencial nueva a workers precalentados, corrigiendo errores espurios de `Could not resolve authentication method`. |

agents.md +1 −1

Details

53El comando para verificar el trabajo en ejecución depende de qué enfoque utilizó:53El comando para verificar el trabajo en ejecución depende de qué enfoque utilizó:

54 54 

55* Para sesiones en segundo plano, `claude agents` abre [vista de agentes](/es/agent-view): una pantalla que muestra cada sesión, su estado y cuáles necesitan su entrada.55* Para sesiones en segundo plano, `claude agents` abre [vista de agentes](/es/agent-view): una pantalla que muestra cada sesión, su estado y cuáles necesitan su entrada.

56* Para subagentes en la sesión actual, `/agents` abre un panel con una pestaña **Running** que enumera subagentes activos y una pestaña **Library** donde puede [crear y editar subagentes personalizados](/es/sub-agents#use-the-%2Fagents-command). A pesar del nombre similar, esto es separado de `claude agents`.56* Para subagentes en la sesión actual, los subagentes en segundo plano nombrados aparecen en la escritura de mención @- con su estado. {/* min-version: 2.1.198 */}A partir de v2.1.198, `/agents` ya no abre un panel; imprime un aviso que apunta a las ubicaciones de archivos de subagentes. Para [crear y editar subagentes personalizados](/es/sub-agents#configure-subagents), pregunte a Claude o edite los archivos directamente. A pesar del nombre similar, `/agents` es separado de `claude agents`.

57* Para cualquier cosa que se ejecute en segundo plano de la sesión actual, `/tasks` enumera cada elemento y le permite verificar, adjuntar o detener.57* Para cualquier cosa que se ejecute en segundo plano de la sesión actual, `/tasks` enumera cada elemento y le permite verificar, adjuntar o detener.

58* Para flujos de trabajo dinámicos, `/workflows` enumera ejecuciones en ejecución y completadas, la fase en la que se encuentra cada una y cuántos agentes han terminado.58* Para flujos de trabajo dinámicos, `/workflows` enumera ejecuciones en ejecución y completadas, la fase en la que se encuentra cada una y cuántos agentes han terminado.

59 59 

Details

184 184 

185Estas dos configuraciones tienen diferentes condiciones de activación:185Estas dos configuraciones tienen diferentes condiciones de activación:

186 186 

187* **`awsAuthRefresh`**: se ejecuta solo cuando Claude Code detecta que sus credenciales de AWS han expirado, ya sea localmente según su marca de tiempo o cuando Bedrock devuelve un error de credencial, luego reintenta la solicitud con credenciales actualizadas.187* **`awsAuthRefresh`**: se ejecuta solo cuando Claude Code detecta que sus credenciales de AWS han expirado, ya sea localmente según su marca de tiempo o cuando la API devuelve un error de credencial, luego reintenta la solicitud con credenciales actualizadas.

188* **`awsCredentialExport`**: se ejecuta al inicio de la sesión y en cada recarga de credenciales, incluso cuando las credenciales en su cadena de proveedores de credenciales predeterminada de AWS aún son válidas. Utilice esto cuando su cuenta de Bedrock requiera credenciales entre cuentas que difieran de las que la cadena de proveedores predeterminada resolvería.188* **`awsCredentialExport`**: se ejecuta al inicio de la sesión y en cada recarga de credenciales, incluso cuando las credenciales en su cadena de proveedores de credenciales predeterminada de AWS aún son válidas. Utilice esto cuando su cuenta de Bedrock requiera credenciales entre cuentas que difieran de las que la cadena de proveedores predeterminada resolvería.

189 189 

190<h5 id="example-configuration">190<h5 id="example-configuration">

Details

54 54 

55Para la mayoría de las organizaciones, `autoMode.environment` es el único campo que necesita establecer. Indica al clasificador qué repositorios, buckets y dominios son de confianza: el clasificador lo utiliza para decidir qué significa "externo", por lo que cualquier destino no listado es un objetivo potencial de exfiltración.55Para la mayoría de las organizaciones, `autoMode.environment` es el único campo que necesita establecer. Indica al clasificador qué repositorios, buckets y dominios son de confianza: el clasificador lo utiliza para decidir qué significa "externo", por lo que cualquier destino no listado es un objetivo potencial de exfiltración.

56 56 

57A partir de Claude Code v2.1.195, `claude auto-mode defaults` imprime dos tipos de entrada de entorno.57A partir de Claude Code v2.1.198, `claude auto-mode defaults` imprime tres tipos de entrada de entorno. Las versiones anteriores a v2.1.195 imprimen solo los primeros cinco espacios de confianza.

58 58 

59* **Espacios de contexto**: describen su organización, stack y postura de seguridad para que el clasificador lea las otras reglas en su contexto. A diferencia de los otros dos tipos, los espacios de contexto no tienen reglas propias que los dirijan. Cada uno se establece de forma predeterminada en `None configured` o en la suposición conservadora nombrada junto a él:

60 * **Organización**

61 * **Uso principal de Claude Code**: se establece de forma predeterminada en desarrollo de software

62 * **Proveedor(es) de nube**

63 * **Visibilidad del repositorio**: se asume que un repositorio es privado a menos que su host remoto y nombre indiquen lo contrario

64 * **Compartición interna / alojamiento de fragmentos**: los servicios públicos de paste y gist se tratan como fuera del límite de confianza hasta que nombre uno

65 * **CLI específicas de la organización**

66 * **Gestión de secretos**

67 * **Ramas predeterminadas / protegidas**: `main` y `master` se tratan como protegidas hasta que nombre otras

68 * **Objetivos de implementación de CI/CD**

69 * **Postura de red**

70 * **Espacios de nombres / entornos de implementación protegidos**: recurre a la heurística de objetivos remotos sensibles hasta que nombre algunos

71 * **Retención de datos / desclasificación**

59* **Espacios de confianza**: nombran lo que el clasificador trata como dentro de su límite. Los espacios son Repositorio de confianza, Control de código fuente, Dominios internos de confianza, Buckets de nube de confianza, Servicios internos clave y Registro de paquetes interno. Las entradas de repositorio y control de código fuente se establecen de forma predeterminada en el repositorio de trabajo y sus remotos configurados. Todos los demás espacios de confianza se establecen de forma predeterminada en `None configured`, por lo que nada más es de confianza hasta que lo agregue.72* **Espacios de confianza**: nombran lo que el clasificador trata como dentro de su límite. Los espacios son Repositorio de confianza, Control de código fuente, Dominios internos de confianza, Buckets de nube de confianza, Servicios internos clave y Registro de paquetes interno. Las entradas de repositorio y control de código fuente se establecen de forma predeterminada en el repositorio de trabajo y sus remotos configurados. Todos los demás espacios de confianza se establecen de forma predeterminada en `None configured`, por lo que nada más es de confianza hasta que lo agregue.

60* **Espacios de sensibilidad**: nombran lo que las reglas de protección tratan como de alto riesgo. Los espacios son Ubicaciones de PII / datos regulados, Objetivos remotos sensibles y Ámbitos de IaC protegidos. Cada uno se establece de forma predeterminada en una heurística amplia, como tratar cualquier host o espacio de nombres cuyo nombre lleve `prod` o `production` como un objetivo remoto sensible, por lo que las reglas de protección están activas antes de que configure nada. Nombrar objetivos concretos en un espacio de sensibilidad hace que esas reglas se apliquen a los objetivos nombrados en lugar de la heurística.73* **Espacios de sensibilidad**: nombran lo que las reglas de protección tratan como de alto riesgo. Los espacios son Ubicaciones de datos sensibles y audiencias, Objetivos remotos sensibles y Ámbitos de IaC protegidos. Cada uno se establece de forma predeterminada en una heurística amplia, como tratar cualquier host o espacio de nombres cuyo nombre lleve `prod` o `production` como un objetivo remoto sensible, por lo que las reglas de protección están activas antes de que configure nada. Nombrar objetivos concretos en un espacio de sensibilidad hace que esas reglas se apliquen a los objetivos nombrados en lugar de la heurística.

61 

62Las versiones anteriores a v2.1.195 imprimen solo los primeros cinco espacios de confianza.

63 74 

64Para agregar sus propias entradas junto con los valores predeterminados, incluya la cadena literal `"$defaults"` en la matriz. Las entradas predeterminadas se insertan en esa posición, por lo que sus entradas personalizadas pueden ir antes o después de ellas.75Para agregar sus propias entradas junto con los valores predeterminados, incluya la cadena literal `"$defaults"` en la matriz. Las entradas predeterminadas se insertan en esa posición, por lo que sus entradas personalizadas pueden ir antes o después de ellas.

65 76 


87* **Dominios internos de confianza**: nombres de host para API, paneles y servicios dentro de su red, como `*.internal.example.com`98* **Dominios internos de confianza**: nombres de host para API, paneles y servicios dentro de su red, como `*.internal.example.com`

88* **Servicios internos clave**: CI, registros de artefactos, índices de paquetes internos, herramientas de incidentes99* **Servicios internos clave**: CI, registros de artefactos, índices de paquetes internos, herramientas de incidentes

89* **Registro de paquetes interno**: el registro npm, PyPI u otro privado a través del cual deben enrutarse las instalaciones, de modo que las instalaciones que lo omitan para un registro público se bloqueen100* **Registro de paquetes interno**: el registro npm, PyPI u otro privado a través del cual deben enrutarse las instalaciones, de modo que las instalaciones que lo omitan para un registro público se bloqueen

90* **Ubicaciones de PII / datos regulados**: los buckets, bases de datos o rutas que contienen datos personales o regulados, de modo que el clasificador proteja esas ubicaciones en lugar de adivinar por el contenido101* **Ubicaciones de datos sensibles y audiencias**: los buckets, bases de datos o rutas que contienen datos personales, datos comerciales confidenciales, credenciales, datos regulados o material similar sensible, y las audiencias con las que los datos en cada ubicación pueden compartirse, para que el clasificador proteja esas ubicaciones en lugar de adivinar por el contenido. {/* min-version: 2.1.195 */}{/* max-version: 2.1.197 */}Claude Code v2.1.195 a v2.1.197 nombran esta entrada ubicaciones de PII / datos regulados y cubren solo ubicaciones que contienen datos personales o regulados, sin la dimensión de audiencia

91* **Objetivos remotos sensibles**: los espacios de nombres, hosts o contenedores que cuentan como producción, de modo que los shells remotos y los reenvíos de puertos hacia ellos necesiten su aprobación explícita102* **Objetivos remotos sensibles**: los espacios de nombres, hosts o contenedores que cuentan como producción, de modo que los shells remotos y los reenvíos de puertos hacia ellos necesiten su aprobación explícita

92* **Ámbitos de IaC protegidos**: los recursos de infraestructura cuya aplicación o destrucción siempre debe requerir que nombre el cambio103* **Ámbitos de IaC protegidos**: los recursos de infraestructura cuya aplicación o destrucción siempre debe requerir que nombre el cambio

93* **Contexto adicional**: restricciones de industria regulada, infraestructura multiinquilino o requisitos de cumplimiento que afecten lo que el clasificador debe tratar como riesgoso104* **Contexto adicional**: restricciones de industria regulada, infraestructura multiinquilino o requisitos de cumplimiento que afecten lo que el clasificador debe tratar como riesgoso

94 105 

95Las entradas de Registro de paquetes interno, Ubicaciones de PII / datos regulados, Objetivos remotos sensibles y Ámbitos de IaC protegidos requieren Claude Code v2.1.195 o posterior. Las versiones anteriores aún las leen como contexto simple pero no tienen las reglas integradas que las dirigen.106Las entradas de Registro de paquetes interno, Ubicaciones de datos sensibles y audiencias, Objetivos remotos sensibles y Ámbitos de IaC protegidos requieren Claude Code v2.1.195 o posterior. Las versiones anteriores aún las leen como contexto simple pero no tienen las reglas integradas que las dirigen.

96 107 

97Una plantilla de inicio útil: complete los campos entre corchetes y elimine las líneas que no se apliquen.108Una plantilla de inicio útil: complete los campos entre corchetes y elimine las líneas que no se apliquen.

98 109 

chrome.md +15 −2

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Usar Claude Code con Chrome (beta)5# Usar Claude Code con Chrome

6 6 

7> Conecta Claude Code a tu navegador Chrome para probar aplicaciones web, depurar con registros de consola, automatizar el relleno de formularios y extraer datos de páginas web.7> Conecta Claude Code a tu navegador Chrome para probar aplicaciones web, depurar con registros de consola, automatizar el relleno de formularios y extraer datos de páginas web.

8 8 


11Claude abre nuevas pestañas para tareas del navegador y comparte el estado de inicio de sesión de tu navegador, por lo que puede acceder a cualquier sitio en el que ya hayas iniciado sesión. Las acciones del navegador se ejecutan en una ventana de Chrome visible en tiempo real. Cuando Claude encuentra una página de inicio de sesión o CAPTCHA, se detiene y te pide que lo manejes manualmente.11Claude abre nuevas pestañas para tareas del navegador y comparte el estado de inicio de sesión de tu navegador, por lo que puede acceder a cualquier sitio en el que ya hayas iniciado sesión. Las acciones del navegador se ejecutan en una ventana de Chrome visible en tiempo real. Cuando Claude encuentra una página de inicio de sesión o CAPTCHA, se detiene y te pide que lo manejes manualmente.

12 12 

13<Note>13<Note>

14 La integración de Chrome está en beta y actualmente funciona con Google Chrome y Microsoft Edge. Aún no es compatible con Brave, Arc u otros navegadores basados en Chromium. WSL (Subsistema de Windows para Linux) tampoco es compatible.14 La integración de Chrome funciona con Google Chrome y Microsoft Edge. Aún no es compatible con Brave, Arc u otros navegadores basados en Chromium. Tampoco es compatible en Windows Subsystem for Linux (WSL).

15</Note>15</Note>

16 16 

17<h2 id="capabilities">17<h2 id="capabilities">


90 90 

91Los permisos a nivel de sitio se heredan de la extensión de Chrome. Administre los permisos en la configuración de la extensión de Chrome para controlar qué sitios puede examinar Claude, hacer clic e introducir texto.91Los permisos a nivel de sitio se heredan de la extensión de Chrome. Administre los permisos en la configuración de la extensión de Chrome para controlar qué sitios puede examinar Claude, hacer clic e introducir texto.

92 92 

93<h3 id="browser-tools-in-plan-mode">

94 Herramientas del navegador en modo plan

95</h3>

96 

97En [modo plan](/es/permission-modes#analyze-before-you-edit-with-plan-mode), las llamadas de herramientas del navegador que solo leen la página o el estado del navegador se ejecutan sin un aviso de permiso, y las llamadas que cambian el estado solicitan aprobación.

98 

99* **Llamadas de solo lectura**: `read_page`, `get_page_text`, `find`, lectura de mensajes de consola o solicitudes de red, y captura de pantalla

100* **Llamadas que cambian el estado**: clics, escritura, navegación, gestión de pestañas y ventanas, y grabación de un GIF

101 

102A partir de v2.1.199, una llamada que de otro modo sería de solo lectura que establece una bandera de entrada que cambia el estado, como `createIfEmpty` en `tabs_context_mcp`, `clear` en los lectores de consola y red, o `save_to_disk` en una captura de pantalla, también solicita aprobación. Una llamada `browser_batch` se ejecuta sin un aviso solo cuando cada acción dentro de ella es de solo lectura.

103 

93<h2 id="example-workflows">104<h2 id="example-workflows">

94 Flujos de trabajo de ejemplo105 Flujos de trabajo de ejemplo

95</h2>106</h2>


208 219 

209La primera vez que habilitas la integración de Chrome, Claude Code instala un archivo de configuración del host de mensajería nativa. Chrome lee este archivo al iniciarse, por lo que si la extensión no se detecta en tu primer intento, reinicia Chrome para recoger la nueva configuración.220La primera vez que habilitas la integración de Chrome, Claude Code instala un archivo de configuración del host de mensajería nativa. Chrome lee este archivo al iniciarse, por lo que si la extensión no se detecta en tu primer intento, reinicia Chrome para recoger la nueva configuración.

210 221 

222A partir de v2.1.199, Claude Code abre una pestaña del navegador pidiéndote que conectes la extensión solo en esa primera instalación. Las sesiones posteriores que reescriben el archivo de configuración, por ejemplo después de cambiar compilaciones de Claude Code o directorios de configuración, no la vuelven a abrir.

223 

211Si la conexión aún falla, verifica que el archivo de configuración del host exista en:224Si la conexión aún falla, verifica que el archivo de configuración del host exista en:

212 225 

213Para Chrome:226Para Chrome:

Details

4 4 

5# Configuración de la puerta de enlace de aplicaciones Claude5# Configuración de la puerta de enlace de aplicaciones Claude

6 6 

7> Referencia para cada opción de gateway.yaml: listener y TLS, OIDC, sesión, almacén Postgres, upstream de Bedrock/Agent Platform/Foundry, enrutamiento de modelos, políticas administradas y telemetría.7> Referencia para cada opción de gateway.yaml: listener y TLS, OIDC, sesión, almacén Postgres, upstream de Bedrock/Claude Platform en AWS/Agent Platform/Foundry, enrutamiento de modelos, políticas administradas y telemetría.

8 8 

9Una implementación de la puerta de enlace de aplicaciones Claude se configura mediante un archivo YAML, convencionalmente `gateway.yaml`. El archivo define todo lo que hace la puerta de enlace: dónde escucha, cómo inician sesión los desarrolladores, dónde va la inferencia y qué políticas y telemetría se aplican. Esta página es la referencia para cada opción en ese archivo. Para escribir el primero, comience desde el [inicio rápido](/es/claude-apps-gateway#quickstart), que construye una configuración mínima funcional y la ejecuta; una vez que tenga una configuración con la que esté satisfecho, la [guía de implementación](/es/claude-apps-gateway-deploy) cubre la containerización y el alojamiento en Kubernetes, Cloud Run o su propia plataforma.9Una implementación de la puerta de enlace de aplicaciones Claude se configura mediante un archivo YAML, convencionalmente `gateway.yaml`. El archivo define todo lo que hace la puerta de enlace: dónde escucha, cómo inician sesión los desarrolladores, dónde va la inferencia y qué políticas y telemetría se aplican. Esta página es la referencia para cada opción en ese archivo.

10 

11Para escribir el primero, comience desde el [inicio rápido](/es/claude-apps-gateway#quickstart), que construye una configuración mínima funcional y la ejecuta. Una vez que tenga una configuración con la que esté satisfecho, la [guía de implementación](/es/claude-apps-gateway-deploy) cubre la containerización y el alojamiento en Kubernetes, Cloud Run o su propia plataforma.

10 12 

11La puerta de enlace lee el archivo una vez, al iniciar, con `claude gateway --config /path/to/gateway.yaml`. Cada opción se valida contra un esquema al arrancar, por lo que una configuración mal formada falla al iniciar con un error a nivel de campo en lugar de en el primer uso.13La puerta de enlace lee el archivo una vez, al iniciar, con `claude gateway --config /path/to/gateway.yaml`. Cada opción se valida contra un esquema al arrancar, por lo que una configuración mal formada falla al iniciar con un error a nivel de campo en lugar de en el primer uso.

12 14 


24* [`oidc`](#oidc): su proveedor de identidad (IdP), incluido emisor, cliente, mapeo de reclamaciones y quién puede iniciar sesión26* [`oidc`](#oidc): su proveedor de identidad (IdP), incluido emisor, cliente, mapeo de reclamaciones y quién puede iniciar sesión

25* [`session`](#session): los tokens portadores que emite la puerta de enlace, con secreto y duración27* [`session`](#session): los tokens portadores que emite la puerta de enlace, con secreto y duración

26* [`store`](#store): PostgreSQL, para concesiones de dispositivos y contadores de límite de velocidad28* [`store`](#store): PostgreSQL, para concesiones de dispositivos y contadores de límite de velocidad

27* [`upstreams`](#upstreams): dónde va la inferencia, ya sea Anthropic, Bedrock, Agent Platform o Foundry29* [`upstreams`](#upstreams): dónde va la inferencia, ya sea Anthropic, Bedrock, Claude Platform en AWS, Agent Platform o Foundry

28 30 

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

30 32 


68 `oidc`70 `oidc`

69</h3>71</h3>

70 72 

71OpenID Connect (OIDC) es el protocolo SSO que la puerta de enlace utiliza con su proveedor de identidad; consulte [Configuración del proveedor de identidad](/es/claude-apps-gateway-deploy#identity-provider-setup) para saber qué registrar en el lado de IdP. El bloque `oidc` conecta la puerta de enlace a su proveedor de identidad y decide quién puede iniciar sesión. Nombra el emisor y cliente OAuth, mapea las reclamaciones que llevan correo electrónico y grupos, y restringe el inicio de sesión por dominio de correo electrónico o grupo.73El bloque `oidc` conecta la puerta de enlace a su proveedor de identidad y decide quién puede iniciar sesión. Nombra el emisor y cliente OAuth, mapea las reclamaciones que llevan correo electrónico y grupos, y restringe el inicio de sesión por dominio de correo electrónico o grupo.

74 

75OpenID Connect (OIDC) es el protocolo SSO que la puerta de enlace utiliza con su proveedor de identidad; consulte [Configuración del proveedor de identidad](/es/claude-apps-gateway-deploy#identity-provider-setup) para saber qué registrar en el lado de IdP.

72 76 

73| Campo | Requerido | Descripción |77| Campo | Requerido | Descripción |

74| ------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |78| ------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


121 `upstreams`125 `upstreams`

122</h3>126</h3>

123 127 

124`upstreams` es una lista ordenada. La puerta de enlace reenvía la inferencia al primer upstream que resuelve el modelo solicitado. En `5xx`, `429` o tiempo de espera, falla al siguiente; otros `4xx` no, porque esos errores son atribuibles a la solicitud en lugar del upstream. Múltiples upstreams del mismo proveedor deben establecer un `name:` distinto.128`upstreams` es una lista ordenada. La puerta de enlace reenvía la inferencia al primer upstream que resuelve el modelo solicitado. En `5xx`, `429`, `401`, `403`, `404`, o tiempo de espera, falla al siguiente; otros `4xx` no, porque esos errores son atribuibles a la solicitud en lugar del upstream. Un `401` o `403` significa que la credencial propia de la puerta de enlace falló contra ese upstream, y un `404` significa que ese upstream no sirve el modelo solicitado, por lo que un upstream posterior en la lista aún puede.

129 

130La conmutación por error en `404` requiere gateway v2.1.198 o posterior. Las versiones anteriores devolvieron el primer `404` al cliente incluso cuando un upstream posterior en la lista sirvió el modelo.

125 131 

126Los clientes de Bedrock, Agent Platform y Foundry se construyen una vez al iniciar, y sus SDK actualizan credenciales internamente, por lo que rotar credenciales en la nube no requiere un reinicio. Las claves API estáticas de Anthropic y los portadores se leen al iniciar; consulte [API de Anthropic](#anthropic-api).132Múltiples upstreams del mismo proveedor deben establecer un `name:` distinto.

133 

134Los clientes de Bedrock, Claude Platform en AWS, Agent Platform y Foundry se construyen una vez al iniciar, y sus SDK actualizan credenciales internamente, por lo que rotar credenciales en la nube no requiere un reinicio. Las claves API estáticas de Anthropic y los portadores se leen al iniciar; consulte [API de Anthropic](#anthropic-api).

127 135 

128<h4 id="anthropic-api">136<h4 id="anthropic-api">

129 API de Anthropic137 API de Anthropic


193| En cualquier otro lugar | Pase credenciales a través de las variables env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` y `AWS_SESSION_TOKEN`, o establézcalas explícitamente en `auth:` con expansión `${VAR}` |201| En cualquier otro lugar | Pase credenciales a través de las variables env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` y `AWS_SESSION_TOKEN`, o establézcalas explícitamente en `auth:` con expansión `${VAR}` |

194| Región | `region:` es la región del punto final de API. Los perfiles de inferencia entre regiones enrutan a través de la geografía (EE.UU., UE, APAC) independientemente de cuál elija. Para regiones no estadounidenses o ARN de rendimiento aprovisionado, agregue un bloque [`models:`](#models) con los IDs correctos por upstream. |202| Región | `region:` es la región del punto final de API. Los perfiles de inferencia entre regiones enrutan a través de la geografía (EE.UU., UE, APAC) independientemente de cuál elija. Para regiones no estadounidenses o ARN de rendimiento aprovisionado, agregue un bloque [`models:`](#models) con los IDs correctos por upstream. |

195 203 

204<h4 id="claude-platform-on-aws">

205 Claude Platform en AWS

206</h4>

207 

208Claude Platform en AWS sirve la API de Anthropic de primera parte en infraestructura de AWS en `aws-external-anthropic.<region>.api.aws`. Utiliza IDs de modelo de primera parte, honra encabezados `anthropic-beta` tal como se envían, y sirve `count_tokens`, por lo que ninguna de la traducción específica de Bedrock se aplica. El proveedor `anthropicAws` requiere Claude Code v2.1.198 o posterior; las versiones anteriores de gateway lo rechazan al arrancar.

209 

210Para la implementación del lado del cliente de la misma plataforma, consulte [Claude Code en Claude Platform en AWS](/es/claude-platform-on-aws). El upstream del lado de la puerta de enlace:

211 

212```yaml theme={null}

213upstreams:

214 - provider: anthropicAws

215 region: us-east-1

216 workspace_id: wrkspc_...

217 auth:

218 api_key: ${ANTHROPIC_AWS_API_KEY} # enviado como x-api-key

219 # O SigV4 a través de la cadena de credenciales predeterminada de AWS:

220 # auth: {}

221 # O credenciales SigV4 explícitas:

222 # auth:

223 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

224 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

225 # Anule el punto final derivado:

226 # base_url: https://aws-external-anthropic.us-east-1.api.aws

227```

228 

229La plataforma se ejecuta en una cuenta de AWS separada de Amazon Bedrock y firma solicitudes SigV4 para su propio nombre de servicio, `aws-external-anthropic`, por lo que un rol de IAM limitado a Bedrock no lo autoriza. Una clave API en `auth.api_key` tiene prioridad cuando también se establecen credenciales SigV4. Un bloque `auth` vacío utiliza la cadena de credenciales predeterminada del SDK de AWS, la misma cadena que usa el upstream [Amazon Bedrock](#amazon-bedrock).

230 

231| Campo | Requerido | Descripción |

232| ------------------------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |

233| `region` | Sí | Región de AWS, letras minúsculas, dígitos e guiones. La puerta de enlace deriva el punto final de él como `https://aws-external-anthropic.<region>.api.aws`. |

234| `workspace_id` | Sí | Enviado como encabezado en cada solicitud; la plataforma lo requiere |

235| `auth.api_key` | No | Clave API para la plataforma, enviada como `x-api-key`. No es un token portador: los dos modos de autenticación son una clave API o SigV4. |

236| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | No | Credenciales SigV4 explícitas. Establecer uno sin el otro falla al arrancar. `auth.aws_session_token` se acepta junto a ellos. |

237| `base_url` | No | Anule el punto final derivado |

238 

239Debido a que la plataforma resuelve IDs de modelo de primera parte, el catálogo integrado enruta a ella sin un bloque [`models:`](#models). Cuando cura una lista `models:`, clave la entrada `anthropicAws:` con el ID de primera parte.

240 

196<h4 id="google-cloud-agent-platform">241<h4 id="google-cloud-agent-platform">

197 Plataforma de agentes de Google Cloud242 Plataforma de agentes de Google Cloud

198</h4>243</h4>


255 300 

256El mismo proveedor puede aparecer más de una vez con un `name:` distinto. Esto cubre diferentes regiones, diferentes cuentas a través de diferentes cadenas de credenciales, rendimiento aprovisionado versus bajo demanda, y conmutación por error entre proveedores.301El mismo proveedor puede aparecer más de una vez con un `name:` distinto. Esto cubre diferentes regiones, diferentes cuentas a través de diferentes cadenas de credenciales, rendimiento aprovisionado versus bajo demanda, y conmutación por error entre proveedores.

257 302 

258La puerta de enlace intenta upstreams en orden. `5xx`, `429`, tiempos de espera y punto final faltante (`501`) conmutan por error; otros `4xx` no. `429` es capacidad por upstream, por lo que el agotamiento de rendimiento aprovisionado (PT) conmuta por error a bajo demanda. Un upstream que no puede resolver el modelo solicitado se omite sin un viaje de red.303La puerta de enlace intenta upstreams en orden. `5xx`, `429`, `401`, `403`, `404`, tiempos de espera y punto final faltante (`501`) conmutan por error; otros `4xx` no.

304 

305`429` es capacidad por upstream, por lo que el agotamiento de rendimiento aprovisionado (PT) conmuta por error a bajo demanda. `404` es disponibilidad de modelo por upstream, por lo que un upstream que no ha habilitado un modelo no bloquea un upstream posterior que lo sirve. Un upstream que no puede resolver el modelo solicitado se omite sin un viaje de red.

259 306 

260Este ejemplo enruta una asignación de rendimiento aprovisionado de Bedrock primero, desborda a bajo demanda y una segunda cuenta, y vuelve a la API de Anthropic al final:307Este ejemplo enruta una asignación de rendimiento aprovisionado de Bedrock primero, desborda a bajo demanda y una segunda cuenta, y vuelve a la API de Anthropic al final:

261 308 


337```384```

338 385 

339| Campo | Requerido | Descripción |386| Campo | Requerido | Descripción |

340| ------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |387| ------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

341| `write_keys` | No | Matriz de `{id, key}`. Un `x-api-key` que coincida con uno de estos puede listar, establecer y eliminar límites de gasto. Los valores de clave deben tener al menos 32 caracteres; los `id`s deben ser únicos en `read_keys` y `write_keys`. |388| `write_keys` | No | Matriz de `{id, key}`. Un `x-api-key` que coincida con uno de estos puede listar, establecer y eliminar límites de gasto. Los valores de clave deben tener al menos 32 caracteres; los `id`s deben ser únicos en `read_keys` y `write_keys`. |

342| `read_keys` | No | Matriz de `{id, key}`. Solo lectura: cada punto final `GET`, incluida la enumeración de límites, la obtención de uno por ID y la lectura de [`/effective`](/es/claude-apps-gateway-spend-limits#%2Feffective) y [`/audit`](/es/claude-apps-gateway-spend-limits#%2Faudit). |389| `read_keys` | No | Matriz de `{id, key}`. Solo lectura: cada punto final `GET`, incluida la enumeración de límites, la obtención de uno por ID y la lectura de [`/effective`](/es/claude-apps-gateway-spend-limits#%2Feffective) y [`/audit`](/es/claude-apps-gateway-spend-limits#%2Faudit). |

343| `admin_groups` | No | Nombres de grupos de IdP. Un JWT de puerta de enlace cuya reclamación `groups` incluye uno de estos tiene acceso de administrador completo, lectura y escritura, y audita como `oidc:<sub>`. Úselo para administradores humanos; use claves API para máquinas. |390| `admin_groups` | No | Nombres de grupos de IdP. Un JWT de puerta de enlace cuya reclamación `groups` incluye uno de estos tiene acceso de administrador completo, lectura y escritura, y audita como `oidc:<sub>`. Úselo para administradores humanos; use claves API para máquinas. |

344| `blocked_message` | No | Añadido textualmente al `429 billing_error` que ve un desarrollador bloqueado. Escriba la instrucción completa, como una URL o un canal de Slack. Sin establecer, el error es `spend limit reached`. |391| `blocked_message` | No | Añadido textualmente al `429 billing_error` que ve un desarrollador bloqueado. Escriba la instrucción completa, como una URL o un canal de Slack. Sin establecer, el error es `spend limit reached`. |

345| `audit_retention_days` | No | Predeterminado `365`. Las filas `admin_audit` más antiguas se barren. |392| `audit_retention_days` | No | Predeterminado `365`. Las filas `admin_audit` más antiguas se barren. |

346| `spend_retention_months` | No | Predeterminado `13`. Las filas del contador `spend` más antiguas que esto se barren. El predeterminado mantiene un año completo más el mes parcial actual para informes año a año. |393| `spend_retention_months` | No | Predeterminado `13`. Las filas del contador `spend` más antiguas que esto se barren. El predeterminado mantiene un año completo más el mes parcial actual para informes año a año. |

347| `identity_retention_days` | No | Predeterminado `90`. TTL de última visualización para filas `principal_emails`, que contienen el correo electrónico, nombre para mostrar y grupos de cada desarrollador (PII). Deliberadamente más corto que la retención de gasto para que una identidad desaprovisionada envejecida mientras sus contadores de gasto anónimos permanecen. |394| `identity_retention_days` | No | Predeterminado `90`. TTL de última visualización para filas `principal_emails`, que contienen el correo electrónico, nombre para mostrar y grupos de cada desarrollador (PII). Deliberadamente más corto que la retención de gasto para que una identidad desaprovisionada envejezca mientras sus contadores de gasto anónimos permanecen. |

348| `group_limit_mode` | No | `min` (predeterminado) o `max`. Cuando un desarrollador está en varios grupos con límites, `min` aplica el más restrictivo y `max` el menos. Utilizado tanto por cumplimiento como por `/effective`. |395| `group_limit_mode` | No | `min` (predeterminado) o `max`. Cuando un desarrollador está en varios grupos con límites, `min` aplica el más restrictivo y `max` el menos. Utilizado tanto por cumplimiento como por `/effective`. |

349 396 

350<h3 id="enforcement">397<h3 id="enforcement">


580| `limits` | `max_request_bytes` | 32 MiB | Cuerpo de solicitud de entrada máximo; las solicitudes de tamaño excesivo obtienen `413` antes de que el cuerpo se almacene en búfer. Aumente para solicitudes de archivo o imagen grandes. |627| `limits` | `max_request_bytes` | 32 MiB | Cuerpo de solicitud de entrada máximo; las solicitudes de tamaño excesivo obtienen `413` antes de que el cuerpo se almacene en búfer. Aumente para solicitudes de archivo o imagen grandes. |

581| `limits` | `max_request_header_bytes` | sin establecer | Cuando se establece, los encabezados de tamaño excesivo devuelven `431` |628| `limits` | `max_request_header_bytes` | sin establecer | Cuando se establece, los encabezados de tamaño excesivo devuelven `431` |

582| `limits` | `max_url_length` | sin establecer | Cuando se establece, una URL demasiado larga devuelve `414` |629| `limits` | `max_url_length` | sin establecer | Cuando se establece, una URL demasiado larga devuelve `414` |

583| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima para los encabezados de respuesta del upstream (tiempo hasta el primer byte). El cuerpo de respuesta luego se transmite sin límite de reloj de pared. Se aplica a la ruta de upstream de Anthropic directo; Bedrock, Agent Platform y Foundry están limitados por el tiempo de espera propio del SDK del proveedor. |630| `timeouts` | `upstream_ttfb_ms` | 120000 | Espera máxima para los encabezados de respuesta del upstream (tiempo hasta el primer byte). El cuerpo de respuesta luego se transmite sin límite de reloj de pared. Se aplica a la ruta de upstream de Anthropic directo; cada otro proveedor está limitado por el tiempo de espera propio del SDK del proveedor. |

584| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Límite de velocidad por IP en el punto final de autorización de dispositivo no autenticado. Aumente para una organización grande detrás de una IP de salida compartida o NAT. Estos límites se aplican solo al flujo de inicio de sesión de concesión de dispositivo, no a la inferencia `/v1/messages`. Consulte [Resistencia de fuerza bruta de código de usuario](/es/claude-apps-gateway-deploy#user-code-brute-force-resistance). |631| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Límite de velocidad por IP en el punto final de autorización de dispositivo no autenticado. Aumente para una organización grande detrás de una IP de salida compartida o NAT. Estos límites se aplican solo al flujo de inicio de sesión de concesión de dispositivo, no a la inferencia `/v1/messages`. Consulte [Resistencia de fuerza bruta de código de usuario](/es/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

585| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Límite de velocidad por IP en envíos de `user_code` en `/device` |632| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Límite de velocidad por IP en envíos de `user_code` en `/device` |

586 633 


662 # region: us-east-1709 # region: us-east-1

663 # auth: {}710 # auth: {}

664 711 

712 # - provider: anthropicAws

713 # region: us-east-1

714 # workspace_id: wrkspc_...

715 # auth:

716 # api_key: ${ANTHROPIC_AWS_API_KEY}

717 

665 # - provider: vertex718 # - provider: vertex

666 # region: us-east5719 # region: us-east5

667 # project_id: example-prod720 # project_id: example-prod


678 upstream_model:731 upstream_model:

679 anthropic: claude-opus-4-8732 anthropic: claude-opus-4-8

680 # bedrock: us.anthropic.claude-opus-4-8733 # bedrock: us.anthropic.claude-opus-4-8

734 # anthropicAws: claude-opus-4-8

681 # vertex: claude-opus-4-8735 # vertex: claude-opus-4-8

682 # foundry: <your-opus-deployment-name>736 # foundry: <your-opus-deployment-name>

683 - id: claude-sonnet-4-6737 - id: claude-sonnet-4-6

Details

97<Note>97<Note>

98 **Identidad de carga de trabajo**98 **Identidad de carga de trabajo**

99 99 

100 Prefiera la identidad de carga de trabajo de la plataforma sobre claves estáticas: IRSA en EKS para Bedrock, Workload Identity en GKE para Agent Platform, e identidad de carga de trabajo en AKS para Foundry. Establezca `auth: {}` en el bloque ascendente, o `use_azure_ad: true` para Foundry, y la puerta de enlace recoge la identidad del pod a través de la cadena de credenciales predeterminada de ese proveedor. Para un emparejamiento entre nubes, como un ascendente de Bedrock en GKE, establezca credenciales explícitas en el bloque `auth` del ascendente en su lugar. La [referencia de `upstreams`](/es/claude-apps-gateway-config#upstreams) tiene detalles de configuración por plataforma.100 Prefiera la identidad de carga de trabajo de la plataforma sobre claves estáticas: IRSA en EKS para Bedrock y para Claude Platform en AWS, Workload Identity en GKE para Agent Platform, e identidad de carga de trabajo en AKS para Foundry. Establezca `auth: {}` en el bloque ascendente, o `use_azure_ad: true` para Foundry, y la puerta de enlace recoge la identidad del pod a través de la cadena de credenciales predeterminada de ese proveedor. Para un emparejamiento entre nubes, como un ascendente de Bedrock en GKE, establezca credenciales explícitas en el bloque `auth` del ascendente en su lugar. La [referencia de `upstreams`](/es/claude-apps-gateway-config#upstreams) tiene detalles de configuración por plataforma.

101</Note>101</Note>

102 102 

103<h3 id="cloud-run">103<h3 id="cloud-run">

Details

723Teleport verifica estos requisitos antes de reanudar una sesión. Si algún requisito no se cumple, verá un error o se le pedirá que resuelva el problema.723Teleport verifica estos requisitos antes de reanudar una sesión. Si algún requisito no se cumple, verá un error o se le pedirá que resuelva el problema.

724 724 

725| Requisito | Detalles |725| Requisito | Detalles |

726| -------------------- | ----------------------------------------------------------------------------------------------------------------------- |726| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

727| Estado de git limpio | Su directorio de trabajo no debe tener cambios sin confirmar. Teleport le pide que guarde los cambios si es necesario. |727| Estado de git limpio | Su directorio de trabajo no debe tener cambios sin confirmar. Teleport le pide que guarde los cambios si es necesario. |

728| Repositorio correcto | Debe ejecutar `--teleport` desde una desprotección del mismo repositorio, no desde una bifurcación. |728| Repositorio correcto | Debe ejecutar `--teleport` desde una desprotección del mismo repositorio, no desde una bifurcación. A partir de v2.1.199, Claude Code acepta una desprotección incluso cuando no puede analizar el remoto en un nombre de host, como un alias de host SSH como `git@work:owner/repo.git` o una forma corta reescrita por `insteadOf`. Muestra un mensaje de confirmación primero, y solo cuando el propietario del remoto y el nombre del repositorio coinciden con el repositorio de la sesión. |

729| Rama disponible | La rama de la sesión en la nube debe haber sido insertada en el remoto. Teleport la obtiene y verifica automáticamente. |729| Rama disponible | La rama de la sesión en la nube debe haber sido insertada en el remoto. Teleport la obtiene y verifica automáticamente. |

730| Misma cuenta | Debe estar autenticado en la misma cuenta de claude.ai utilizada en la sesión en la nube. |730| Misma cuenta | Debe estar autenticado en la misma cuenta de claude.ai utilizada en la sesión en la nube. |

731 731 

Details

230 230 

231Para CI y automatización, proporcione al ejecutor un rol de IAM con permiso para invocar el servicio de Anthropic y establezca `AWS_REGION`. La cadena de credenciales recoge el rol automáticamente.231Para CI y automatización, proporcione al ejecutor un rol de IAM con permiso para invocar el servicio de Anthropic y establezca `AWS_REGION`. La cadena de credenciales recoge el rol automáticamente.

232 232 

233Si sus credenciales de SSO expiran durante la sesión, configure [`awsAuthRefresh`](/es/amazon-bedrock#advanced-credential-configuration) para que Claude Code vuelva a ejecutar su comando de inicio de sesión y reintente en lugar de fallar. Agregue el comando a su `settings.json`:233Si sus credenciales de SSO expiran durante la sesión, configure [`awsAuthRefresh`](/es/amazon-bedrock#advanced-credential-configuration) para que Claude Code vuelva a ejecutar su comando de inicio de sesión y reintente en lugar de fallar. La actualización automática en Claude Platform on AWS requiere Claude Code v2.1.198 o posterior; las versiones anteriores se detienen con un mensaje para ejecutar `/login`, que no puede actualizar credenciales de AWS. Agregue el comando a su `settings.json`:

234 234 

235```json theme={null}235```json theme={null}

236{236{

Details

47 47 

48Si escribe mal un subcomando, Claude Code sugiere la coincidencia más cercana y sale sin iniciar una sesión. Por ejemplo, `claude udpate` imprime `Did you mean claude update?`.48Si escribe mal un subcomando, Claude Code sugiere la coincidencia más cercana y sale sin iniciar una sesión. Por ejemplo, `claude udpate` imprime `Did you mean claude update?`.

49 49 

50{/* min-version: 2.1.199 */}A partir de v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` ejecuta el subcomando `daemon`. Las versiones anteriores trataban `daemon <subcommand>` como el indicador para una nueva sesión interactiva, por lo que el subcomando nunca se ejecutaba cuando la bandera venía primero, una configuración común cuando `claude` tiene un alias que incluye la bandera. Solo un `--dangerously-skip-permissions` o `--allow-dangerously-skip-permissions` inicial enruta a `daemon` de esta manera; cualquier otra bandera inicial aún inicia una sesión interactiva.

51 

50<h2 id="cli-flags">52<h2 id="cli-flags">

51 Banderas CLI53 Banderas CLI

52</h2>54</h2>


66| `--ax-screen-reader` | {/* min-version: 2.1.181 */}Renderizar salida compatible con lector de pantalla: texto plano sin bordes decorativos ni animaciones. Fuerza el renderizador clásico, por lo que la configuración [`tui`](/es/settings#available-settings) no tiene efecto para la sesión. Tiene prioridad sobre [`CLAUDE_AX_SCREEN_READER`](/es/env-vars) y la configuración [`axScreenReader`](/es/settings#available-settings). Requiere Claude Code v2.1.181 o posterior | `claude --ax-screen-reader` |68| `--ax-screen-reader` | {/* min-version: 2.1.181 */}Renderizar salida compatible con lector de pantalla: texto plano sin bordes decorativos ni animaciones. Fuerza el renderizador clásico, por lo que la configuración [`tui`](/es/settings#available-settings) no tiene efecto para la sesión. Tiene prioridad sobre [`CLAUDE_AX_SCREEN_READER`](/es/env-vars) y la configuración [`axScreenReader`](/es/settings#available-settings). Requiere Claude Code v2.1.181 o posterior | `claude --ax-screen-reader` |

67| `--bare` | Modo mínimo: omitir el descubrimiento automático de hooks, skills, plugins, servidores MCP, memoria automática y CLAUDE.md para que las llamadas con script se inicien más rápido. Claude tiene acceso a herramientas Bash, lectura de archivos y edición de archivos. Establece [`CLAUDE_CODE_SIMPLE`](/es/env-vars). Consulte [bare mode](/es/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |69| `--bare` | Modo mínimo: omitir el descubrimiento automático de hooks, skills, plugins, servidores MCP, memoria automática y CLAUDE.md para que las llamadas con script se inicien más rápido. Claude tiene acceso a herramientas Bash, lectura de archivos y edición de archivos. Establece [`CLAUDE_CODE_SIMPLE`](/es/env-vars). Consulte [bare mode](/es/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

68| `--betas` | Encabezados beta para incluir en solicitudes de API (solo usuarios con clave API) | `claude --betas interleaved-thinking` |70| `--betas` | Encabezados beta para incluir en solicitudes de API (solo usuarios con clave API) | `claude --betas interleaved-thinking` |

69| `--bg`, `--background` | Iniciar la sesión como un [agente de fondo](/es/agent-view) y regresar inmediatamente. Imprime el ID de sesión y comandos de administración. Combine con `--exec` para ejecutar un comando de shell como un trabajo de fondo en lugar de una sesión de Claude, o con `--agent` para ejecutar un subagent específico | `claude --bg "investigate the flaky test"` |71| `--bg`, `--background` | Iniciar la sesión como un [agente de fondo](/es/agent-view) y regresar inmediatamente. Imprime el ID de sesión y comandos de administración. Combine con `--exec` para ejecutar un comando de shell como un trabajo de fondo en lugar de una sesión de Claude, o con `--agent` para ejecutar un subagent específico. {/* min-version: 2.1.198 */}No se puede combinar con `-p`/`--print`; consulte la [referencia de errores](/es/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

70| `--channels` | (Vista previa de investigación) Servidores MCP cuyas notificaciones de [channel](/es/channels) Claude debe escuchar en esta sesión. Lista separada por espacios de entradas `plugin:<name>@<marketplace>`. Requiere autenticación de Claude.ai | `claude --channels plugin:my-notifier@my-marketplace` |72| `--channels` | (Vista previa de investigación) Servidores MCP cuyas notificaciones de [channel](/es/channels) Claude debe escuchar en esta sesión. Lista separada por espacios de entradas `plugin:<name>@<marketplace>`. Requiere autenticación de Claude.ai | `claude --channels plugin:my-notifier@my-marketplace` |

71| `--chrome` | Habilitar [integración del navegador Chrome](/es/chrome) para automatización web y pruebas | `claude --chrome` |73| `--chrome` | Habilitar [integración del navegador Chrome](/es/chrome) para automatización web y pruebas | `claude --chrome` |

72| `--continue`, `-c` | Cargar la conversación más reciente en el directorio actual. Incluye sesiones que agregaron este directorio con `/add-dir` | `claude --continue` |74| `--continue`, `-c` | Cargar la conversación más reciente en el directorio actual. Incluye sesiones que agregaron este directorio con `/add-dir` | `claude --continue` |


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

101| `--output-format` | Especificar formato de salida para modo impresión (opciones: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |103| `--output-format` | Especificar formato de salida para modo impresión (opciones: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

102| `--permission-mode` | Comenzar en un [modo de permiso](/es/permission-modes) especificado. Acepta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` o `bypassPermissions`. Anula `defaultMode` de archivos de configuración | `claude --permission-mode plan` |104| `--permission-mode` | Comenzar en un [modo de permiso](/es/permission-modes) especificado. Acepta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` o `bypassPermissions`. Anula `defaultMode` de archivos de configuración | `claude --permission-mode plan` |

103| `--permission-prompt-tool` | Especificar una herramienta MCP para manejar indicadores de permiso en modo no interactivo | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |105| `--permission-prompt-tool` | Especificar una herramienta MCP para manejar indicadores de permiso en modo no interactivo. {/* min-version: 2.1.199 */}A partir de v2.1.199, la herramienta de indicación no puede aprobar una herramienta MCP marcada como [requiriendo interacción del usuario](/es/mcp#require-approval-for-a-specific-tool): un resultado `allow` para una se convierte en una denegación | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

104| `--plugin-dir` | Cargar un plugin desde un directorio o archivo `.zip` solo para esta sesión. Cada bandera toma una ruta. Repita la bandera para múltiples plugins: `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |106| `--plugin-dir` | Cargar un plugin desde un directorio o archivo `.zip` solo para esta sesión. Cada bandera toma una ruta. Repita la bandera para múltiples plugins: `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |

105| `--plugin-url` | Obtener un archivo `.zip` de plugin desde una URL solo para esta sesión. Repita la bandera para múltiples plugins, o pase URLs separadas por espacios en un valor único entre comillas | `claude --plugin-url https://example.com/plugin.zip` |107| `--plugin-url` | Obtener un archivo `.zip` de plugin desde una URL solo para esta sesión. Repita la bandera para múltiples plugins, o pase URLs separadas por espacios en un valor único entre comillas | `claude --plugin-url https://example.com/plugin.zip` |

106| `--print`, `-p` | Imprimir respuesta sin modo interactivo (consulte [documentación de Agent SDK](/es/agent-sdk/overview) para detalles de uso programático) | `claude -p "query"` |108| `--print`, `-p` | Imprimir respuesta sin modo interactivo (consulte [documentación de Agent SDK](/es/agent-sdk/overview) para detalles de uso programático) | `claude -p "query"` |

commands.md +10 −9

Details

10 10 

11Escriba `/` para ver todos los comandos disponibles para usted, o escriba `/` seguido de letras para filtrar.11Escriba `/` para ver todos los comandos disponibles para usted, o escriba `/` seguido de letras para filtrar.

12 12 

13Un comando solo se reconoce al inicio de su mensaje. El texto que sigue al nombre del comando se le pasa como argumentos.13Un comando solo se reconoce al inicio de su mensaje. El texto que sigue al nombre del comando se le pasa como argumentos. {/* min-version: 2.1.199 */}A partir de v2.1.199, los [skills](/es/skills#pass-arguments-to-skills) son la excepción: una invocación de skill seguida de más skills, como `/skill-a /skill-b do XYZ`, carga cada skill nombrado al inicio y pasa el texto final a cada uno como argumentos. Se pueden encadenar hasta seis skills.

14 14 

15<h2 id="commands-across-a-typical-workflow">15<h2 id="commands-across-a-typical-workflow">

16 Comandos en un flujo de trabajo típico16 Comandos en un flujo de trabajo típico


18 18 

19La mayoría de los comandos son útiles en un punto específico de una sesión, desde la configuración de un proyecto hasta el envío de un cambio.19La mayoría de los comandos son útiles en un punto específico de una sesión, desde la configuración de un proyecto hasta el envío de un cambio.

20 20 

21**Primera sesión en un repositorio.** Ejecute `/init` para generar un `CLAUDE.md` inicial, luego `/memory` para refinarlo. Use `/mcp` y `/agents` para configurar cualquier servidor o subagente que el proyecto necesite, y `/permissions` para establecer las reglas de aprobación que desee.21**Primera sesión en un repositorio.** Ejecute `/init` para generar un `CLAUDE.md` inicial, luego `/memory` para refinarlo. Use `/mcp` para configurar cualquier servidor que el proyecto necesite, pida a Claude que cree cualquier [subagente](/es/sub-agents) que desee, y ejecute `/permissions` para establecer sus reglas de aprobación.

22 22 

23**Durante una tarea.** `/plan` cambia a Plan Mode antes de un cambio grande. `/model` y `/effort` ajustan cuánto razonamiento está gastando. Cuando la conversación se alarga, `/context` muestra hacia dónde va la ventana y `/compact` la resume; use `/btw` para una pregunta rápida que no debería inflar el historial.23**Durante una tarea.** `/plan` cambia a Plan Mode antes de un cambio grande. `/model` y `/effort` ajustan qué modelo está utilizando y cuánto razonamiento aplica. Cuando la conversación se alarga, `/context` muestra qué está llenando la ventana y `/compact` la resume para liberar espacio. Use `/btw` para una pregunta rápida que no debería agregarse al historial de conversación.

24 24 

25**Ejecutando trabajo en paralelo.** `/agents` abre el gestor para los [subagentes](/es/sub-agents) a los que Claude puede delegar tareas secundarias, y `/tasks` enumera lo que se está ejecutando en segundo plano de la sesión actual. `/background` desvincula toda la sesión para que siga ejecutándose como un [agente de fondo](/es/agent-view) y libera su terminal. Para un cambio grande que abarca la base de código, `/batch` lo descompone en unidades independientes y ejecuta cada una en su propio [worktree](/es/worktrees). Consulte [Ejecutar agentes en paralelo](/es/agents) para ver cómo se relacionan estos enfoques.25**Ejecutando trabajo en paralelo.** Claude delega tareas secundarias a [subagentes](/es/sub-agents), y `/tasks` enumera lo que se está ejecutando en segundo plano de la sesión actual. `/background` desvincula toda la sesión para que siga ejecutándose como un [agente de fondo](/es/agent-view) y libera su terminal. Para un cambio grande que abarca la base de código, `/batch` lo descompone en unidades independientes y ejecuta cada una en su propio [worktree](/es/worktrees). Consulte [Ejecutar agentes en paralelo](/es/agents) para ver cómo se relacionan estos enfoques.

26 26 

27**Antes de enviar.** `/diff` muestra qué cambió, `/code-review` verifica el diff para detectar errores de corrección y limpiezas y puede aplicar los hallazgos con `--fix`, `/review` ejecuta la misma revisión de solo lectura en una solicitud de extracción de GitHub, y `/security-review` proporciona una lectura más profunda de solo lectura. `/code-review ultra` ejecuta una revisión multiagente en la nube.27**Antes de enviar.** `/diff` muestra qué cambió, `/code-review` verifica el diff para detectar errores de corrección y limpiezas y puede aplicar los hallazgos con `--fix`, `/review` ejecuta la misma revisión de solo lectura en una solicitud de extracción de GitHub, y `/security-review` proporciona una lectura más profunda de solo lectura. `/code-review ultra` ejecuta una revisión multiagente en la nube.

28 28 


51| :--------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |51| :--------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

52| `/add-dir <path>` | Agregar un directorio de trabajo para acceso a archivos durante la sesión actual. La mayoría de la configuración de `.claude/` [no se descubre](/es/permissions#additional-directories-grant-file-access-not-configuration) desde el directorio agregado. Puede reanudar la sesión más tarde desde el directorio agregado con `--continue` o `--resume` |52| `/add-dir <path>` | Agregar un directorio de trabajo para acceso a archivos durante la sesión actual. La mayoría de la configuración de `.claude/` [no se descubre](/es/permissions#additional-directories-grant-file-access-not-configuration) desde el directorio agregado. Puede reanudar la sesión más tarde desde el directorio agregado con `--continue` o `--resume` |

53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Habilitar o deshabilitar la [herramienta advisor](/es/advisor), que consulta un segundo modelo para obtener orientación en momentos clave durante una tarea. Acepta `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID de modelo completo. Sin un argumento, abre un selector. Requiere Claude Code v2.1.98 o posterior |53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Habilitar o deshabilitar la [herramienta advisor](/es/advisor), que consulta un segundo modelo para obtener orientación en momentos clave durante una tarea. Acepta `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+), o un ID de modelo completo. Sin un argumento, abre un selector. Requiere Claude Code v2.1.98 o posterior |

54| `/agents` | Administrar configuraciones de [agent](/es/sub-agents) |54| `/agents` | {/* min-version: 2.1.198 */}A partir de v2.1.198, ejecutar `/agents` imprime un recordatorio para pedirle a Claude que cree o administre [subagentes](/es/sub-agents), o para editar `.claude/agents/` o `~/.claude/agents/` directamente. {/* max-version: 2.1.197 */}En v2.1.197 y anteriores, abre una interfaz interactiva para crear y administrar configuraciones de subagentes |

55| `/autofix-pr [prompt]` | Generar una sesión de [Claude Code en la web](/es/claude-code-on-the-web#auto-fix-pull-requests) que observe la PR de la rama actual e impulse correcciones cuando CI falla o los revisores dejan comentarios. Detecta la PR abierta de su rama extraída con `gh pr view`; para observar una PR diferente, primero extraiga su rama. De forma predeterminada, se le indica a la sesión remota que corrija todos los errores de CI y comentarios de revisión; pase un prompt para darle instrucciones diferentes, por ejemplo `/autofix-pr only fix lint and type errors`. Requiere la CLI `gh` y acceso a [Claude Code en la web](/es/claude-code-on-the-web) |55| `/autofix-pr [prompt]` | Generar una sesión de [Claude Code en la web](/es/claude-code-on-the-web#auto-fix-pull-requests) que observe la PR de la rama actual e impulse correcciones cuando CI falla o los revisores dejan comentarios. Detecta la PR abierta de su rama extraída con `gh pr view`; para observar una PR diferente, primero extraiga su rama. De forma predeterminada, se le indica a la sesión remota que corrija todos los errores de CI y comentarios de revisión; pase un prompt para darle instrucciones diferentes, por ejemplo `/autofix-pr only fix lint and type errors`. Requiere la CLI `gh` y acceso a [Claude Code en la web](/es/claude-code-on-the-web) |

56| `/background [prompt]` | Desconectar la sesión actual para ejecutarse como un [agente de fondo](/es/agent-view) y liberar esta terminal. Pase un prompt para enviar una instrucción más antes de desconectar. Monitoree la sesión con `claude agents`. Alias: `/bg` |56| `/background [prompt]` | Desconectar la sesión actual para ejecutarse como un [agente de fondo](/es/agent-view) y liberar esta terminal. Pase un prompt para enviar una instrucción más antes de desconectar. Monitoree la sesión con `claude agents`. Alias: `/bg` |

57| `/batch <instruction>` | **[Skill](/es/skills#bundled-skills).** Orquestar cambios a gran escala en una base de código en paralelo. Investiga la base de código, descompone el trabajo en 5 a 30 unidades independientes y presenta un plan. Una vez aprobado, genera un [subagente de fondo](/es/sub-agents#run-subagents-in-foreground-or-background) por unidad en un [git worktree](/es/worktrees) aislado. Cada subagente implementa su unidad, ejecuta pruebas y abre una solicitud de extracción. Requiere un repositorio de git. Ejemplo: `/batch migrate src/ from Solid to React` |57| `/batch <instruction>` | **[Skill](/es/skills#bundled-skills).** Orquestar cambios a gran escala en una base de código en paralelo. Investiga la base de código, descompone el trabajo en 5 a 30 unidades independientes y presenta un plan. Una vez aprobado, genera un [subagente de fondo](/es/sub-agents#run-subagents-in-foreground-or-background) por unidad en un [git worktree](/es/worktrees) aislado. Cada subagente implementa su unidad, ejecuta pruebas y abre una solicitud de extracción. Requiere un repositorio de git. Ejemplo: `/batch migrate src/ from Solid to React` |


68| `/context [all]` | Visualizar el uso actual del contexto como una cuadrícula de colores. Muestra sugerencias de optimización para herramientas con mucho contexto, inflación de memoria y advertencias de capacidad. En [modo de pantalla completa](/es/fullscreen) el desglose por elemento se colapsa para mantener la cuadrícula visible. Pase `all` para expandirlo |68| `/context [all]` | Visualizar el uso actual del contexto como una cuadrícula de colores. Muestra sugerencias de optimización para herramientas con mucho contexto, inflación de memoria y advertencias de capacidad. En [modo de pantalla completa](/es/fullscreen) el desglose por elemento se colapsa para mantener la cuadrícula visible. Pase `all` para expandirlo |

69| `/copy [N]` | Copiar la última respuesta del asistente al portapapeles. Pase un número `N` para copiar la respuesta N-ésima más reciente: `/copy 2` copia la segunda más reciente. Cuando hay bloques de código presentes, muestra un selector interactivo para seleccionar bloques individuales o la respuesta completa. Presione `w` en el selector para escribir la selección en un archivo en lugar del portapapeles, lo cual es útil a través de SSH |69| `/copy [N]` | Copiar la última respuesta del asistente al portapapeles. Pase un número `N` para copiar la respuesta N-ésima más reciente: `/copy 2` copia la segunda más reciente. Cuando hay bloques de código presentes, muestra un selector interactivo para seleccionar bloques individuales o la respuesta completa. Presione `w` en el selector para escribir la selección en un archivo en lugar del portapapeles, lo cual es útil a través de SSH |

70| `/cost` | Alias para `/usage` |70| `/cost` | Alias para `/usage` |

71| `/dataviz [request]` | **[Skill](/es/skills#bundled-skills).** Orientación de diseño para gráficos, diagramas y paneles de control. Claude elige la forma de gráfico para los datos, asigna color por rol, valida la paleta para seguridad de daltonismo y contraste con un script agrupado, y aplica reglas de marca, interacción y accesibilidad. Utiliza una paleta de marcador neutral de marca que reemplaza con la suya propia. {/* min-version: 2.1.198 */}Requiere Claude Code v2.1.198 o posterior |

71| `/debug [description]` | **[Skill](/es/skills#bundled-skills).** Habilitar registro de depuración para la sesión actual y solucionar problemas leyendo el registro de depuración de la sesión. El registro de depuración está desactivado de forma predeterminada a menos que haya iniciado con `claude --debug`, por lo que ejecutar `/debug` a mitad de sesión comienza a capturar registros desde ese punto en adelante. Opcionalmente describa el problema para enfocar el análisis |72| `/debug [description]` | **[Skill](/es/skills#bundled-skills).** Habilitar registro de depuración para la sesión actual y solucionar problemas leyendo el registro de depuración de la sesión. El registro de depuración está desactivado de forma predeterminada a menos que haya iniciado con `claude --debug`, por lo que ejecutar `/debug` a mitad de sesión comienza a capturar registros desde ese punto en adelante. Opcionalmente describa el problema para enfocar el análisis |

72| `/deep-research <question>` | **[Workflow](/es/workflows#bundled-workflows).** Expandir búsquedas web en una pregunta, obtener y verificar cruzadamente fuentes, y sintetizar un informe citado |73| `/deep-research <question>` | **[Workflow](/es/workflows#bundled-workflows).** Expandir búsquedas web en una pregunta, obtener y verificar cruzadamente fuentes, y sintetizar un informe citado |

73| `/design-login` | Autorizar acceso al sistema de diseño para `/design-sync` con su cuenta claude.ai |74| `/design-login` | Autorizar acceso al sistema de diseño para `/design-sync` con su cuenta claude.ai |

74| `/design-sync [hint]` | **[Skill](/es/skills#bundled-skills).** Convertir el sistema de diseño React de su repositorio y cargarlo en [Claude Design](https://claude.ai/design), para que los diseños que produce utilicen sus componentes reales. Opcionalmente nombre el sistema de diseño, por ejemplo `/design-sync Acme DS`. Una sincronización por primera vez verifica cada componente y puede tomar algunas horas en un repositorio grande. Disponible en la API de Anthropic; en Amazon Bedrock, la plataforma de agentes de Google Cloud y Microsoft Foundry, la herramienta subyacente no puede alcanzar claude.ai, por lo que el comando no está disponible |75| `/design-sync [hint]` | **[Skill](/es/skills#bundled-skills).** Convertir el sistema de diseño React de su repositorio y cargarlo en [Claude Design](https://claude.ai/design), para que los diseños que produce utilicen sus componentes reales. Opcionalmente nombre el sistema de diseño, por ejemplo `/design-sync Acme DS`. Una sincronización por primera vez verifica cada componente y puede tomar algunas horas en un repositorio grande. Disponible en la API de Anthropic; en Amazon Bedrock, la plataforma de agentes de Google Cloud y Microsoft Foundry, la herramienta subyacente no puede alcanzar claude.ai, por lo que el comando no está disponible |

75| `/desktop` | Continuar la sesión actual en la aplicación Claude Code Desktop. Requiere macOS o Windows y una suscripción de Claude. Alias: `/app` |76| `/desktop` | Continuar la sesión actual en la aplicación Claude Code Desktop. Requiere macOS o Windows y una suscripción de Claude. Alias: `/app` |

76| `/diff` | Abrir un visor de diferencias interactivo que muestre cambios sin confirmar y diferencias por turno. Use las flechas izquierda/derecha para cambiar entre el diff de git actual y los turnos individuales de Claude, y arriba/abajo para examinar archivos |77| `/diff` | Abrir un visor de diferencias interactivo que muestre cambios sin confirmar y diferencias por turno. Use las flechas izquierda/derecha para cambiar entre el diff de git actual y los turnos individuales de Claude, y arriba/abajo para examinar archivos. {/* min-version: 2.1.198 */}A partir de v2.1.198, el visor abierto también se actualiza automáticamente cuando el estado de git del repositorio cambia fuera de la sesión, como un cambio de rama o confirmación en otra terminal |

77| `/doctor` | Diagnosticar y verificar su instalación y configuración de Claude Code. Los resultados se muestran con iconos de estado. Presione `f` para que Claude corrija cualquier problema reportado |78| `/doctor` | Diagnosticar y verificar su instalación y configuración de Claude Code. Los resultados se muestran con iconos de estado. Presione `f` para que Claude corrija cualquier problema reportado |

78| `/effort [level\|auto]` | Establecer el [nivel de esfuerzo](/es/model-config#adjust-effort-level) del modelo. Acepta `low`, `medium`, `high`, `xhigh`, `max` o `ultracode`; los niveles disponibles dependen del modelo, y `max` y `ultracode` son solo para sesión. `ultracode` es una configuración de Claude Code que combina razonamiento `xhigh` con orquestación automática de [workflow](/es/workflows#let-claude-decide-with-ultracode). `auto` se restablece al valor predeterminado del modelo. Sin un argumento, abre un control deslizante interactivo; use las flechas izquierda y derecha para elegir un nivel y `Enter` para aplicar. Entra en vigor inmediatamente sin esperar a que se complete la respuesta actual |79| `/effort [level\|auto]` | Establecer el [nivel de esfuerzo](/es/model-config#adjust-effort-level) del modelo. Acepta `low`, `medium`, `high`, `xhigh`, `max` o `ultracode`; los niveles disponibles dependen del modelo, y `max` y `ultracode` son solo para sesión. `ultracode` es una configuración de Claude Code que combina razonamiento `xhigh` con orquestación automática de [workflow](/es/workflows#let-claude-decide-with-ultracode). `auto` se restablece al valor predeterminado del modelo. Sin un argumento, abre un control deslizante interactivo; use las flechas izquierda y derecha para elegir un nivel y `Enter` para aplicar. Entra en vigor inmediatamente sin esperar a que se complete la respuesta actual |

79| `/exit` | Salir de la CLI. En una [sesión de fondo](/es/agent-view#attach-to-a-session) conectada, esto desconecta y la sesión continúa ejecutándose. Alias: `/quit` |80| `/exit` | Salir de la CLI. En una [sesión de fondo](/es/agent-view#attach-to-a-session) conectada, esto desconecta y la sesión continúa ejecutándose. Alias: `/quit` |


81| `/fast [on\|off]` | Alternar [fast mode](/es/fast-mode) activado o desactivado |82| `/fast [on\|off]` | Alternar [fast mode](/es/fast-mode) activado o desactivado |

82| `/feedback [report]` | Enviar comentarios, reportar un error o compartir su conversación. Alias: `/bug`, `/share` |83| `/feedback [report]` | Enviar comentarios, reportar un error o compartir su conversación. Alias: `/bug`, `/share` |

83| `/fewer-permission-prompts` | **[Skill](/es/skills#bundled-skills).** Escanear sus transcripciones para llamadas comunes de herramientas Bash y MCP de solo lectura, luego agregar una lista de permitidos priorizada al proyecto `.claude/settings.json` para reducir solicitudes de permiso |84| `/fewer-permission-prompts` | **[Skill](/es/skills#bundled-skills).** Escanear sus transcripciones para llamadas comunes de herramientas Bash y MCP de solo lectura, luego agregar una lista de permitidos priorizada al proyecto `.claude/settings.json` para reducir solicitudes de permiso |

84| `/focus` | Alternar la vista de enfoque, que muestra solo su último prompt, un resumen de llamada de herramienta de una línea con estadísticas de edición de diferencias y la respuesta final. La selección persiste entre sesiones; establezca [`viewMode`](/es/settings#available-settings) en configuración para anularlo. Solo disponible en [renderizado de pantalla completa](/es/fullscreen) |85| `/focus` | Alternar la vista de enfoque, que muestra solo su último prompt, un resumen de llamada de herramienta de una línea con estadísticas de edición de diferencias y la respuesta final. {/* min-version: 2.1.198 */}A partir de v2.1.198, el resumen de llamada de herramienta también cuenta los subagentes lanzados en el turno y colapsa las notificaciones de tareas de fondo completadas en un único recuento. La selección persiste entre sesiones; establezca [`viewMode`](/es/settings#available-settings) en configuración para anularlo. Solo disponible en [renderizado de pantalla completa](/es/fullscreen) |

85| `/fork <directive>` | {/* min-version: 2.1.161 */}Generar un [subagente bifurcado](/es/sub-agents#fork-the-current-conversation): un subagente de fondo que hereda la conversación completa y trabaja en la directiva mientras usted continúa. Su resultado regresa a su conversación cuando termina. Para cambiar a una copia de la conversación usted mismo, use `/branch`. Antes de v2.1.161, `/fork` es un alias para `/branch` |86| `/fork <directive>` | {/* min-version: 2.1.161 */}Generar un [subagente bifurcado](/es/sub-agents#fork-the-current-conversation): un subagente de fondo que hereda la conversación completa y trabaja en la directiva mientras usted continúa. Su resultado regresa a su conversación cuando termina. Para cambiar a una copia de la conversación usted mismo, use `/branch`. Antes de v2.1.161, `/fork` es un alias para `/branch` |

86| `/goal [condition\|clear]` | Establecer un [goal](/es/goal): Claude continúa trabajando entre turnos hasta que se cumpla la condición. Sin un argumento, muestra el goal actual o el más recientemente logrado. `clear`, `stop`, `off`, `reset`, `none` o `cancel` elimina un goal activo temprano |87| `/goal [condition\|clear]` | Establecer un [goal](/es/goal): Claude continúa trabajando entre turnos hasta que se cumpla la condición. Sin un argumento, muestra el goal actual o el más recientemente logrado. `clear`, `stop`, `off`, `reset`, `none` o `cancel` elimina un goal activo temprano |

87| `/heapdump` | Escribir una instantánea de montón de JavaScript y un desglose de memoria en `~/Desktop`, o su directorio de inicio en Linux sin una carpeta Desktop, para diagnosticar uso alto de memoria. Consulte [solución de problemas](/es/troubleshooting#high-cpu-or-memory-usage) |88| `/heapdump` | Escribir una instantánea de montón de JavaScript y un desglose de memoria en `~/Desktop`, o su directorio de inicio en Linux sin una carpeta Desktop, para diagnosticar uso alto de memoria. Consulte [solución de problemas](/es/troubleshooting#high-cpu-or-memory-usage) |


127| `/setup-bedrock` | Configurar autenticación de [Amazon Bedrock](/es/amazon-bedrock), región y fijaciones de modelo a través de un asistente interactivo. Solo visible cuando se establece `CLAUDE_CODE_USE_BEDROCK=1`. Los usuarios de Bedrock por primera vez también pueden acceder a este asistente desde la pantalla de inicio de sesión |128| `/setup-bedrock` | Configurar autenticación de [Amazon Bedrock](/es/amazon-bedrock), región y fijaciones de modelo a través de un asistente interactivo. Solo visible cuando se establece `CLAUDE_CODE_USE_BEDROCK=1`. Los usuarios de Bedrock por primera vez también pueden acceder a este asistente desde la pantalla de inicio de sesión |

128| `/setup-vertex` | Configurar autenticación de [Google Vertex AI](/es/google-vertex-ai), proyecto, región y fijaciones de modelo a través de un asistente interactivo. Solo visible cuando se establece `CLAUDE_CODE_USE_VERTEX=1`. Los usuarios de Vertex AI por primera vez también pueden acceder a este asistente desde la pantalla de inicio de sesión |129| `/setup-vertex` | Configurar autenticación de [Google Vertex AI](/es/google-vertex-ai), proyecto, región y fijaciones de modelo a través de un asistente interactivo. Solo visible cuando se establece `CLAUDE_CODE_USE_VERTEX=1`. Los usuarios de Vertex AI por primera vez también pueden acceder a este asistente desde la pantalla de inicio de sesión |

129| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/es/skills#bundled-skills).** Revisar el código cambiado para detectar oportunidades de limpieza y aplicar las correcciones. Cuatro [agentes](/es/sub-agents) de revisión se ejecutan en paralelo, cubriendo reutilización de ayudantes existentes, simplificación, eficiencia y si el cambio se encuentra en el nivel correcto de abstracción. A partir de v2.1.154, la revisión no busca errores de corrección. Use `/code-review` para encontrar errores. En versiones anteriores `/simplify` es equivalente a `/code-review --fix`. Pase una ruta o referencia de PR para revisar un objetivo específico |130| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/es/skills#bundled-skills).** Revisar el código cambiado para detectar oportunidades de limpieza y aplicar las correcciones. Cuatro [agentes](/es/sub-agents) de revisión se ejecutan en paralelo, cubriendo reutilización de ayudantes existentes, simplificación, eficiencia y si el cambio se encuentra en el nivel correcto de abstracción. A partir de v2.1.154, la revisión no busca errores de corrección. Use `/code-review` para encontrar errores. En versiones anteriores `/simplify` es equivalente a `/code-review --fix`. Pase una ruta o referencia de PR para revisar un objetivo específico |

130| `/skills` | Listar [skills](/es/skills) disponibles. Presione `t` para ordenar por recuento de tokens. Presione `Space` para [ocultar un skill de Claude o del menú `/`](/es/skills#override-skill-visibility-from-settings), luego `Enter` para guardar |131| `/skills` | Listar [skills](/es/skills) disponibles. {/* min-version: 2.1.121 */}A partir de v2.1.121, escriba para filtrar la lista por nombre. Presione `t` para ordenar por recuento de tokens. Presione `Space` para [ocultar un skill de Claude o del menú `/`](/es/skills#override-skill-visibility-from-settings), luego `Enter` para guardar |

131| `/stats` | Alias para `/usage`. Se abre en la pestaña Stats |132| `/stats` | Alias para `/usage`. Se abre en la pestaña Stats |

132| `/status` | Abrir la interfaz de Settings (pestaña Status) que muestra versión, modelo, cuenta y conectividad. Funciona mientras Claude está respondiendo, sin esperar a que se complete la respuesta actual |133| `/status` | Abrir la interfaz de Settings (pestaña Status) que muestra versión, modelo, cuenta y conectividad. Funciona mientras Claude está respondiendo |

133| `/statusline` | Configurar la [status line](/es/statusline) de Claude Code. Describa lo que desea, o ejecute sin argumentos para auto-configurar desde su símbolo del sistema de shell |134| `/statusline` | Configurar la [status line](/es/statusline) de Claude Code. Describa lo que desea, o ejecute sin argumentos para auto-configurar desde su símbolo del sistema de shell |

134| `/stickers` | Pedir pegatinas de Claude Code |135| `/stickers` | Pedir pegatinas de Claude Code |

135| `/stop` | Detener la [sesión de fondo](/es/agent-view) actual. Solo disponible mientras está conectado a una sesión de fondo; la transcripción y cualquier worktree se conservan. Para desconectar sin detener, use `/exit` o presione `←` |136| `/stop` | Detener la [sesión de fondo](/es/agent-view) actual. Solo disponible mientras está conectado a una sesión de fondo; la transcripción y cualquier worktree se conservan. Para desconectar sin detener, use `/exit` o presione `←` |

Details

1587 Qué sobrevive a la compactación1587 Qué sobrevive a la compactación

1588</h2>1588</h2>

1589 1589 

1590Cuando una sesión larga se compacta, Claude Code resume el historial de conversación para que quepa en la ventana de contexto. Lo que sucede con sus instrucciones depende de cómo se cargaron:1590Cuando una sesión larga se compacta, Claude Code resume el historial de conversación para que quepa en la ventana de contexto. {/* min-version: 2.1.198 */}A partir de v2.1.198, la solicitud de resumen hereda la configuración de [pensamiento extendido](/es/model-config#extended-thinking) de su sesión, por lo que razona con el pensamiento habilitado cuando su sesión lo tiene habilitado y se mantiene desactivado en caso contrario. El pensamiento afecta solo cómo se produce el resumen; la configuración de su sesión permanece sin cambios después. Lo que sucede con sus instrucciones depende de cómo se cargaron:

1591 1591 

1592| Mecanismo | Después de la compactación |1592| Mecanismo | Después de la compactación |

1593| :-------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- |1593| :-------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------- |

costs.md +3 −3

Details

107* **Limpie entre tareas**: Use `/clear` para comenzar de nuevo cuando cambie a trabajo no relacionado. El contexto obsoleto desperdicia tokens en cada mensaje posterior. Use `/rename` antes de limpiar para que pueda encontrar fácilmente la sesión más tarde, luego `/resume` para volver a ella.107* **Limpie entre tareas**: Use `/clear` para comenzar de nuevo cuando cambie a trabajo no relacionado. El contexto obsoleto desperdicia tokens en cada mensaje posterior. Use `/rename` antes de limpiar para que pueda encontrar fácilmente la sesión más tarde, luego `/resume` para volver a ella.

108* **Agregue instrucciones de compactación personalizadas**: `/compact Focus on code samples and API usage` le dice a Claude qué preservar durante la summarización.108* **Agregue instrucciones de compactación personalizadas**: `/compact Focus on code samples and API usage` le dice a Claude qué preservar durante la summarización.

109 109 

110También puede personalizar el comportamiento de compactación en su CLAUDE.md:110También puede personalizar el comportamiento de compactación en su archivo CLAUDE.md en la raíz de su proyecto:

111 111 

112```markdown theme={null}112```markdown theme={null}

113# Compact instructions113# Compact instructions


170 </Tab>170 </Tab>

171 171 

172 <Tab title="filter-test-output.sh">172 <Tab title="filter-test-output.sh">

173 El hook llama a este script, que verifica si el comando es un ejecutor de pruebas y lo modifica para mostrar solo fallos:173 El hook llama a este script. Cree la carpeta con `mkdir -p ~/.claude/hooks`, guarde el script a continuación como `~/.claude/hooks/filter-test-output.sh` y hágalo ejecutable con `chmod +x ~/.claude/hooks/filter-test-output.sh`. Verifica si el comando es un ejecutor de pruebas y lo modifica para mostrar solo fallos:

174 174 

175 ```bash theme={null}175 ```bash theme={null}

176 #!/bin/bash176 #!/bin/bash


198 Ajuste el pensamiento extendido198 Ajuste el pensamiento extendido

199</h3>199</h3>

200 200 

201El pensamiento extendido está habilitado por defecto porque mejora significativamente el rendimiento en tareas complejas de planificación y razonamiento. Los tokens de pensamiento se facturan como tokens de salida, y el presupuesto predeterminado puede ser decenas de miles de tokens por solicitud dependiendo del modelo. Para tareas más simples donde el razonamiento profundo no es necesario, puede reducir costos bajando el [nivel de esfuerzo](/es/model-config#adjust-effort-level) con `/effort` o en `/model`, deshabilitando el pensamiento en `/config`, o, en modelos con un [presupuesto de pensamiento fijo](/es/model-config#adaptive-reasoning-and-fixed-thinking-budgets), bajando el presupuesto con `MAX_THINKING_TOKENS=8000`. Los modelos de razonamiento adaptativo ignoran presupuestos distintos de cero, así que use niveles de esfuerzo en su lugar. Deshabilitar el pensamiento no está disponible en Fable 5, que siempre usa pensamiento extendido.201El pensamiento extendido está habilitado por defecto porque mejora significativamente el rendimiento en tareas complejas de planificación y razonamiento. Los tokens de pensamiento se facturan como tokens de salida, y el presupuesto predeterminado puede ser decenas de miles de tokens por solicitud dependiendo del modelo. Para tareas más simples donde el razonamiento profundo no es necesario, puede reducir costos bajando el [nivel de esfuerzo](/es/model-config#adjust-effort-level) con `/effort` o en `/model`, deshabilitando el pensamiento en `/config`, o, en modelos con un [presupuesto de pensamiento fijo](/es/model-config#adaptive-reasoning-and-fixed-thinking-budgets), bajando el presupuesto estableciendo la [variable de entorno](/es/env-vars) `MAX_THINKING_TOKENS`, por ejemplo `MAX_THINKING_TOKENS=8000`. Los modelos de razonamiento adaptativo ignoran presupuestos distintos de cero, así que use niveles de esfuerzo en su lugar. Deshabilitar el pensamiento no está disponible en Fable 5, que siempre usa pensamiento extendido.

202 202 

203<h3 id="delegate-verbose-operations-to-subagents">203<h3 id="delegate-verbose-operations-to-subagents">

204 Delegue operaciones detalladas a subagents204 Delegue operaciones detalladas a subagents

Details

14 Ver qué se cargó en el contexto14 Ver qué se cargó en el contexto

15</h2>15</h2>

16 16 

17El comando `/context` muestra todo lo que ocupa la ventana de contexto para la sesión actual, desglosado por categoría: indicación del sistema, archivos de memoria, skills, herramientas MCP y mensajes de conversación. Ejecútelo primero para confirmar si su `CLAUDE.md`, reglas o descripciones de skills están presentes en absoluto.17El comando `/context` muestra todo lo que ocupa la ventana de contexto para la sesión actual, desglosado por categoría: indicación del sistema, archivos de memoria, skills, subagentes personalizados con la fuente desde la que se cargó cada uno, herramientas MCP y mensajes de conversación. Ejecútelo primero para confirmar si su `CLAUDE.md`, reglas o descripciones de skills están presentes en absoluto.

18 18 

19Para obtener detalles sobre una categoría específica, continúe con el comando dedicado:19Para obtener detalles sobre una categoría específica, continúe con el comando dedicado:

20 20 


22| :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |22| :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

23| `/memory` | Qué archivos `CLAUDE.md` y rules se cargaron, más entradas de memoria automática |23| `/memory` | Qué archivos `CLAUDE.md` y rules se cargaron, más entradas de memoria automática |

24| `/skills` | Skills disponibles de fuentes de proyecto, usuario y plugin |24| `/skills` | Skills disponibles de fuentes de proyecto, usuario y plugin |

25| `/agents` | Subagentes configurados y sus configuraciones |

26| `/hooks` | Configuraciones de hook activas |25| `/hooks` | Configuraciones de hook activas |

27| `/mcp` | Servidores MCP conectados y su estado |26| `/mcp` | Servidores MCP conectados y su estado |

28| `/permissions` | Reglas de permitir y denegar resueltas actualmente en vigor |27| `/permissions` | Reglas de permitir y denegar resueltas actualmente en vigor |

desktop.md +1 −1

Details

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

830* **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.830* **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.

831* **Equipos de agentes**: sesiones paralelas de Claude Code que se comunican entre sí están disponibles en la [CLI](/es/agent-teams), no en Desktop. Para trabajo multiagente dentro de una sesión, use [flujos de trabajo dinámicos](/es/workflows), que se ejecutan en Desktop.831* **Equipos de agentes**: sesiones paralelas de Claude Code que se comunican entre sí están disponibles en la [CLI](/es/agent-teams), no en Desktop. Para trabajo multiagente dentro de una sesión, use [flujos de trabajo dinámicos](/es/workflows), que se ejecutan en Desktop.

832* **Comandos de diálogo de terminal**: comandos integrados que abren un panel interactivo en la terminal, como `/permissions`, `/config`, `/agents` y `/doctor`, no están disponibles en la pestaña Code y responden con `isn't available in this environment`. Edite [archivos de configuración](/es/settings) directamente para gestionar reglas de permisos y configuración, o ejecute el comando desde la CLI independiente.832* **Comandos de diálogo de terminal**: comandos integrados que abren un panel interactivo en la terminal, como `/permissions`, `/config` y `/doctor`, no están disponibles en la pestaña Code y responden con `isn't available in this environment`. Edite [archivos de configuración](/es/settings) directamente para gestionar reglas de permisos y configuración, o ejecute el comando desde la CLI independiente.

833 833 

834<h2 id="troubleshooting">834<h2 id="troubleshooting">

835 Solución de problemas835 Solución de problemas

env-vars.md +9 −5

Details

145| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para comandos bash de larga duración (predeterminado: 600000, o 10 minutos) |145| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para comandos bash de larga duración (predeterminado: 600000, o 10 minutos) |

146| `CCR_FORCE_BUNDLE` | Establezca en `1` para forzar [`claude --remote`](/es/claude-code-on-the-web#send-local-repositories-without-github) a agrupar y cargar su repositorio local incluso cuando el acceso a GitHub está disponible |146| `CCR_FORCE_BUNDLE` | Establezca en `1` para forzar [`claude --remote`](/es/claude-code-on-the-web#send-local-repositories-without-github) a agrupar y cargar su repositorio local incluso cuando el acceso a GitHub está disponible |

147| `CLAUDECODE` | Establezca en `1` en subprocesos que Claude Code genera (herramientas Bash y PowerShell, sesiones tmux, comandos [hook](/es/hooks), comandos [línea de estado](/es/statusline), subprocesos de [servidor MCP](/es/mcp) stdio). Las extensiones de IDE también establecen esto en sus terminales integrados. Utilice para detectar cuándo un script se está ejecutando dentro de un subproceso generado por Claude Code. Para verificar si el proceso actual fue generado directamente por una llamada de herramienta o hook, en lugar de dentro de un servidor MCP stdio que Claude Code inició, utilice `CLAUDE_CODE_CHILD_SESSION` en su lugar |147| `CLAUDECODE` | Establezca en `1` en subprocesos que Claude Code genera (herramientas Bash y PowerShell, sesiones tmux, comandos [hook](/es/hooks), comandos [línea de estado](/es/statusline), subprocesos de [servidor MCP](/es/mcp) stdio). Las extensiones de IDE también establecen esto en sus terminales integrados. Utilice para detectar cuándo un script se está ejecutando dentro de un subproceso generado por Claude Code. Para verificar si el proceso actual fue generado directamente por una llamada de herramienta o hook, en lugar de dentro de un servidor MCP stdio que Claude Code inició, utilice `CLAUDE_CODE_CHILD_SESSION` en su lugar |

148| `CLAUDE_AFK_COUNTDOWN_MS` | {/* min-version: 2.1.198 */}Cuántos milisegundos antes de auto-continuar aparece la cuenta regresiva en pantalla en un diálogo `AskUserQuestion` sin respuesta. Predeterminado `20000` (20 segundos). Consulte `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |

149| `CLAUDE_AFK_TIMEOUT_MS` | {/* min-version: 2.1.198 */}Cuántos milisegundos de tiempo inactivo antes de que un diálogo [`AskUserQuestion`](/es/tools-reference) sin respuesta se auto-continúe sin usted. Predeterminado `60000` (60 segundos). Para mantener las preguntas abiertas mientras está fuera, establezca un valor grande como `86400000` (24 horas). Establecer `0` no desactiva el tiempo de espera; cierra el diálogo inmediatamente. Requiere Claude Code v2.1.198 o posterior |

148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establezca en `1` para deshabilitar todos los tipos de [subagentes](/es/sub-agents) integrados, como Explore y Plan. Solo se aplica en modo no interactivo (la bandera `-p`). Útil para usuarios de SDK que desean una pizarra en blanco |150| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establezca en `1` para deshabilitar todos los tipos de [subagentes](/es/sub-agents) integrados, como Explore y Plan. Solo se aplica en modo no interactivo (la bandera `-p`). Útil para usuarios de SDK que desean una pizarra en blanco |

149| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establezca en `1` para omitir el prefijo `mcp__<server>__` en nombres de herramientas de servidores MCP creados por SDK. Las herramientas utilizan sus nombres originales. Solo uso de SDK |151| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Establezca en `1` para omitir el prefijo `mcp__<server>__` en nombres de herramientas de servidores MCP creados por SDK. Las herramientas utilizan sus nombres originales. Solo uso de SDK |

150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera de estancamiento en milisegundos para subagentes en segundo plano. Predeterminado `600000` (10 minutos). El temporizador se reinicia en cada evento de progreso de transmisión; si no llega progreso dentro de la ventana, el subagente se aborta y la tarea se marca como fallida, mostrando cualquier resultado parcial al padre |152| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera de estancamiento en milisegundos para subagentes en segundo plano. Predeterminado `600000` (10 minutos). El temporizador se reinicia en cada evento de progreso de transmisión; si no llega progreso dentro de la ventana, el subagente se aborta y la tarea se marca como fallida, mostrando cualquier resultado parcial al padre |


162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establezca en `0` para omitir el bloque de atribución (versión del cliente e huella digital del indicador) desde el inicio del indicador del sistema. Deshabilitarlo mejora las tasas de acierto de caché de indicadores cuando se enruta a través de una [puerta de enlace LLM](/es/llm-gateway). El almacenamiento en caché de API de Anthropic no se ve afectado |164| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establezca en `0` para omitir el bloque de atribución (versión del cliente e huella digital del indicador) desde el inicio del indicador del sistema. Deshabilitarlo mejora las tasas de acierto de caché de indicadores cuando se enruta a través de una [puerta de enlace LLM](/es/llm-gateway). El almacenamiento en caché de API de Anthropic no se ve afectado |

163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establezca la capacidad de contexto en tokens utilizada para cálculos de compactación automática. El valor predeterminado es la ventana de contexto del modelo: 200K para modelos estándar o 1M para modelos de [contexto extendido](/es/model-config#extended-context), excepto en Sonnet 5, que tiene su propio [umbral predeterminado](/es/model-config#sonnet-5-context-window). Utilice un valor más bajo como `500000` en un modelo de 1M para tratar la ventana como 500K para propósitos de compactación. El valor se limita a la ventana de contexto real del modelo. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica como porcentaje de este valor. Establecer esta variable desvincula el umbral de compactación del `used_percentage` de la línea de estado, que siempre utiliza la ventana de contexto completa del modelo |165| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establezca la capacidad de contexto en tokens utilizada para cálculos de compactación automática. El valor predeterminado es la ventana de contexto del modelo: 200K para modelos estándar o 1M para modelos de [contexto extendido](/es/model-config#extended-context), excepto en Sonnet 5, que tiene su propio [umbral predeterminado](/es/model-config#sonnet-5-context-window). Utilice un valor más bajo como `500000` en un modelo de 1M para tratar la ventana como 500K para propósitos de compactación. El valor se limita a la ventana de contexto real del modelo. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` se aplica como porcentaje de este valor. Establecer esta variable desvincula el umbral de compactación del `used_percentage` de la línea de estado, que siempre utiliza la ventana de contexto completa del modelo |

164| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Anule la [conexión automática de IDE](/es/vs-code). De forma predeterminada, Claude Code se conecta automáticamente cuando se lanza dentro del terminal integrado de un IDE compatible. Establezca en `false` para evitar esto. Establezca en `true` para forzar un intento de conexión cuando la detección automática falla, como cuando tmux oculta el terminal principal. Tiene precedencia sobre la configuración global [`autoConnectIde`](/es/settings#global-config-settings) |166| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Anule la [conexión automática de IDE](/es/vs-code). De forma predeterminada, Claude Code se conecta automáticamente cuando se lanza dentro del terminal integrado de un IDE compatible. Establezca en `false` para evitar esto. Establezca en `true` para forzar un intento de conexión cuando la detección automática falla, como cuando tmux oculta el terminal principal. Tiene precedencia sobre la configuración global [`autoConnectIde`](/es/settings#global-config-settings) |

167| `CLAUDE_CODE_BRIDGE_SESSION_ID` | {/* min-version: 2.1.199 */}Se establece automáticamente en subprocesos de herramientas Bash y [comandos hook](/es/hooks) mientras la sesión tiene una conexión activa de [Control Remoto](/es/remote-control), y se elimina cuando la conexión termina. El valor es el ID de la sesión en forma `session_`, el mismo identificador que aparece en la URL `claude.ai/code` de la sesión, para que un script pueda vincular de vuelta a la sesión que lo ejecutó. Requiere Claude Code v2.1.199 o posterior. En [sesiones en la nube](/es/claude-code-on-the-web), lea `CLAUDE_CODE_REMOTE_SESSION_ID` en su lugar |

165| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados CA para conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, de solo lectura en tiempos de ejecución con `tls.getCACertificates`: el binario nativo, o Node 22.15 o posterior para instalaciones npm. Consulte [Almacén de certificados CA](/es/network-config#ca-certificate-store). El valor predeterminado es `bundled,system` |168| `CLAUDE_CODE_CERT_STORE` | Lista separada por comas de fuentes de certificados CA para conexiones TLS. `bundled` es el conjunto de CA de Mozilla incluido con Claude Code. `system` es el almacén de confianza del sistema operativo, de solo lectura en tiempos de ejecución con `tls.getCACertificates`: el binario nativo, o Node 22.15 o posterior para instalaciones npm. Consulte [Almacén de certificados CA](/es/network-config#ca-certificate-store). El valor predeterminado es `bundled,system` |

166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Establezca en `1` en subprocesos que Claude Code genera a través de las herramientas Bash, PowerShell y Monitor, comandos [hook](/es/hooks) y comandos de [línea de estado](/es/statusline). No se establece para subprocesos de [servidor MCP](/es/mcp) stdio, que son de larga duración y sobreviven a la sesión que los generó. A diferencia de `CLAUDECODE`, esto solo se establece por Claude Code mismo cuando lanza un subproceso y no por extensiones de IDE, por lo que distingue de manera confiable una sesión anidada de un `claude` de nivel superior lanzado en un terminal integrado de IDE. Una `claude` TUI interactiva anidada iniciada de esta manera se excluye automáticamente de `--resume`, `--continue`, historial de flecha hacia arriba y la lista `claude agents`. Las sesiones `claude -p` no interactivas aún persisten. Establezca `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para anular esta exclusión. Requiere Claude Code v2.1.172 o posterior |169| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Establezca en `1` en subprocesos que Claude Code genera a través de las herramientas Bash, PowerShell y Monitor, comandos [hook](/es/hooks) y comandos de [línea de estado](/es/statusline). No se establece para subprocesos de [servidor MCP](/es/mcp) stdio, que son de larga duración y sobreviven a la sesión que los generó. A diferencia de `CLAUDECODE`, esto solo se establece por Claude Code mismo cuando lanza un subproceso y no por extensiones de IDE, por lo que distingue de manera confiable una sesión anidada de un `claude` de nivel superior lanzado en un terminal integrado de IDE. Una `claude` TUI interactiva anidada iniciada de esta manera se excluye automáticamente de `--resume`, `--continue`, historial de flecha hacia arriba y la lista `claude agents`. Las sesiones `claude -p` no interactivas aún persisten. Establezca `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` para anular esta exclusión. Requiere Claude Code v2.1.172 o posterior |

167| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para autenticación mTLS |170| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para autenticación mTLS |


172| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel de registro mínimo escrito en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establezca en `verbose` para incluir diagnósticos de alto volumen como salida completa de comandos de línea de estado, o aumente a `error` para reducir ruido |175| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Nivel de registro mínimo escrito en el archivo de registro de depuración. Valores: `verbose`, `debug` (predeterminado), `info`, `warn`, `error`. Establezca en `verbose` para incluir diagnósticos de alto volumen como salida completa de comandos de línea de estado, o aumente a `error` para reducir ruido |

173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establezca en `1` para deshabilitar el soporte de [ventana de contexto de 1M](/es/model-config#extended-context). Cuando se establece, las variantes de modelo de 1M no están disponibles en el selector de modelo, y las sesiones de [Sonnet 5](/es/model-config#sonnet-5-context-window) se tratan como si tuvieran una ventana de 200K. Útil para entornos empresariales con requisitos de cumplimiento |176| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establezca en `1` para deshabilitar el soporte de [ventana de contexto de 1M](/es/model-config#extended-context). Cuando se establece, las variantes de modelo de 1M no están disponibles en el selector de modelo, y las sesiones de [Sonnet 5](/es/model-config#sonnet-5-context-window) se tratan como si tuvieran una ventana de 200K. Útil para entornos empresariales con requisitos de cumplimiento |

174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establezca en `1` para deshabilitar [razonamiento adaptativo](/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y volver al presupuesto de pensamiento fijo controlado por `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}A partir de v2.1.111, no tiene efecto en Fable 5, Sonnet 5 u Opus 4.7 y posterior, que siempre utilizan razonamiento adaptativo |177| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establezca en `1` para deshabilitar [razonamiento adaptativo](/es/model-config#adjust-effort-level) en Opus 4.6 y Sonnet 4.6 y volver al presupuesto de pensamiento fijo controlado por `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}A partir de v2.1.111, no tiene efecto en Fable 5, Sonnet 5 u Opus 4.7 y posterior, que siempre utilizan razonamiento adaptativo |

175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Establezca en `1` para deshabilitar la [herramienta asesor](/es/advisor). El comando `/advisor` y la bandera `--advisor` no estarán disponibles y cualquier `advisorModel` configurado se ignora. Requiere Claude Code v2.1.98 o posterior |178| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Establezca en `1` para deshabilitar la [herramienta asesor](/es/advisor). El comando `/advisor` no estará disponible, cualquier `advisorModel` configurado se ignora, y la bandera `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que la pasan continúan funcionando sin errores. Requiere Claude Code v2.1.98 o posterior |

176| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establezca en `1` para desactivar [agentes en segundo plano y vista de agentes](/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivalente a la configuración [`disableAgentView`](/es/settings#available-settings) |179| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establezca en `1` para desactivar [agentes en segundo plano y vista de agentes](/es/agent-view): `claude agents`, `--bg`, `/background` y el supervisor bajo demanda. Equivalente a la configuración [`disableAgentView`](/es/settings#available-settings) |

177| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establezca en `1` para deshabilitar [renderizado a pantalla completa](/es/fullscreen) y utilizar el renderizador de pantalla principal clásico. La conversación permanece en el desplazamiento nativo de su terminal para que `Cmd+f` y el modo de copia de tmux funcionen como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y la configuración [`tui`](/es/settings#available-settings). También puede cambiar con `/tui default`. No se aplica a sesiones en segundo plano abiertas desde [vista de agentes](/es/agent-view), que siempre utilizan renderizado a pantalla completa |180| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establezca en `1` para deshabilitar [renderizado a pantalla completa](/es/fullscreen) y utilizar el renderizador de pantalla principal clásico. La conversación permanece en el desplazamiento nativo de su terminal para que `Cmd+f` y el modo de copia de tmux funcionen como de costumbre. Tiene precedencia sobre `CLAUDE_CODE_NO_FLICKER` y la configuración [`tui`](/es/settings#available-settings). También puede cambiar con `/tui default`. No se aplica a sesiones en segundo plano abiertas desde [vista de agentes](/es/agent-view), que siempre utilizan renderizado a pantalla completa |

178| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establezca en `1` para deshabilitar la herramienta [Artefacto](/es/artifacts), que publica la salida de sesión como una página web privada en claude.ai. Equivalente a la configuración [`disableArtifact`](/es/settings#available-settings) |181| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establezca en `1` para deshabilitar la herramienta [Artefacto](/es/artifacts), que publica la salida de sesión como una página web privada en claude.ai. Equivalente a la configuración [`disableArtifact`](/es/settings#available-settings) |

179| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establezca en `1` para deshabilitar el procesamiento de archivos adjuntos. Las menciones de archivos con sintaxis `@` se envían como texto sin formato en lugar de expandirse en contenido de archivo |182| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establezca en `1` para deshabilitar el procesamiento de archivos adjuntos. Las menciones de archivos con sintaxis `@` se envían como texto sin formato en lugar de expandirse en contenido de archivo |

180| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establezca en `1` para deshabilitar [memoria automática](/es/memory#auto-memory). Establezca en `0` para forzar la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/es/settings#available-settings) la deshabilitaría de otra manera. Cuando se deshabilita, Claude no crea ni carga archivos de memoria automática |183| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establezca en `1` para deshabilitar [memoria automática](/es/memory#auto-memory). Establezca en `0` para forzar la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/es/settings#available-settings) la deshabilitaría de otra manera. Cuando se deshabilita, Claude no crea ni carga archivos de memoria automática |

181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establezca en `1` para deshabilitar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en herramientas Bash y subagentes, auto-backgrounding y el atajo Ctrl+B |184| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establezca en `1` para deshabilitar toda la funcionalidad de tareas en segundo plano, incluido el parámetro `run_in_background` en herramientas Bash y subagentes, auto-backgrounding y el atajo Ctrl+B |

182| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Establezca en `1` para detener los comandos de shell en segundo plano en ejecución de una [sesión en segundo plano](/es/agent-view) y los flujos de trabajo dinámicos cuando el [supervisor](/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de entregarlos al siguiente proceso de la sesión. Afecta solo a esa entrega: poner una sesión en segundo plano con `←` o [`/background`](/es/agent-view#from-inside-a-session) aún lleva el trabajo en vuelo, y `CLAUDE_DISABLE_ADOPT` desactiva ambos. Requiere Claude Code v2.1.196 o posterior |185| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Establezca en `1` para detener los comandos de shell en segundo plano en ejecución de una [sesión en segundo plano](/es/agent-view), flujos de trabajo dinámicos y {/* min-version: 2.1.198 */}a partir de v2.1.198, subagentes en segundo plano cuando el [supervisor](/es/agent-view#the-supervisor-process) detiene, reinicia o actualiza el proceso de esa sesión, en lugar de entregarlos al siguiente proceso de la sesión. Afecta solo a esa entrega: poner una sesión en segundo plano con `←` o [`/background`](/es/agent-view#from-inside-a-session) aún lleva el trabajo en vuelo, y `CLAUDE_DISABLE_ADOPT` desactiva ambos. Requiere Claude Code v2.1.196 o posterior |

183| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Establezca en `1` para detener que Claude Code termine [comandos de shell en segundo plano](/es/interactive-mode#background-bash-commands) cuando el sistema operativo reporta presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina un shell en segundo plano iniciado en la sesión principal en una señal de presión de memoria una vez que la sesión ha estado inactiva durante 30 minutos y no hay turno o 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 |186| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Establezca en `1` para detener que Claude Code termine [comandos de shell en segundo plano](/es/interactive-mode#background-bash-commands) cuando el sistema operativo reporta presión de memoria. De forma predeterminada, en macOS y Linux, Claude Code termina un shell en segundo plano iniciado en la sesión principal en una señal de presión de memoria una vez que la sesión ha estado inactiva durante 30 minutos y no hay turno o 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 |

184| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establezca en `1` para deshabilitar las [skills](/es/skills) y flujos de trabajo que se incluyen con Claude Code: las skills agrupadas y los flujos de trabajo integrados se eliminan completamente, mientras que los comandos slash integrados como `/init` permanecen escribibles pero se ocultan del modelo. Las skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectadas. Equivalente a la configuración [`disableBundledSkills`](/es/settings#available-settings); `0` no la anula |187| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establezca en `1` para deshabilitar las [skills](/es/skills) y flujos de trabajo que se incluyen con Claude Code: las skills agrupadas y los flujos de trabajo integrados se eliminan completamente, mientras que los comandos slash integrados como `/init` permanecen escribibles pero se ocultan del modelo. Las skills de plugins, `.claude/skills/` y `.claude/commands/` no se ven afectadas. Equivalente a la configuración [`disableBundledSkills`](/es/settings#available-settings); `0` no la anula |

185| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establezca en `1` para evitar cargar cualquier archivo de memoria CLAUDE.md en contexto, incluidos archivos de usuario, proyecto y memoria automática |188| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Establezca en `1` para evitar cargar cualquier archivo de memoria CLAUDE.md en contexto, incluidos archivos de usuario, proyecto y memoria automática |

186| `CLAUDE_CODE_DISABLE_CRON` | Establezca en `1` para deshabilitar [tareas programadas](/es/scheduled-tasks). La skill `/loop` y las herramientas cron no estarán disponibles y cualquier tarea ya programada dejará de ejecutarse, incluidas las tareas que ya se están ejecutando en mitad de sesión |189| `CLAUDE_CODE_DISABLE_CRON` | Establezca en `1` para deshabilitar [tareas programadas](/es/scheduled-tasks). La skill `/loop` y las herramientas cron no estarán disponibles y cualquier tarea ya programada dejará de ejecutarse, incluidas las tareas que ya se están ejecutando en mitad de sesión |

187| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establezca en `1` para eliminar encabezados de solicitud `anthropic-beta` específicos de Anthropic y campos de esquema de herramienta beta (como `defer_loading` y `eager_input_streaming`) de solicitudes de API. Utilice esto cuando una puerta de enlace proxy rechace solicitudes con errores como "Unexpected value(s) for the `anthropic-beta` header" o "Extra inputs are not permitted". Los campos estándar (`name`, `description`, `input_schema`, `cache_control`) se conservan |190| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Establezca en `1` para eliminar encabezados de solicitud `anthropic-beta` específicos de Anthropic y campos de esquema de herramienta beta (como `defer_loading` y `eager_input_streaming`) de solicitudes de API. Utilice esto cuando una puerta de enlace proxy rechace solicitudes con errores como "Unexpected value(s) for the `anthropic-beta` header" o "Extra inputs are not permitted". Los campos estándar (`name`, `description`, `input_schema`, `cache_control`) se conservan |

191| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | {/* min-version: 2.1.198 */}Establezca en `1` para deshabilitar los [subagentes Explore y Plan integrados](/es/sub-agents#built-in-subagents). Claude explora con sus herramientas de búsqueda o el subagente de propósito general en su lugar, y [plan mode](/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee archivos directamente en lugar de lanzar agentes Explore y Plan. Los subagentes personalizados nombrados `Explore` o `Plan` no se ven afectados. Para eliminar cada tipo de subagente integrado en el Agent SDK o modo no interactivo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` en su lugar. Requiere Claude Code v2.1.198 o posterior |

188| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establezca en `1` para deshabilitar [modo rápido](/es/fast-mode) |192| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establezca en `1` para deshabilitar [modo rápido](/es/fast-mode) |

189| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establezca en `1` para deshabilitar las encuestas de calidad de sesión "¿Cómo está funcionando Claude?". Las encuestas también se deshabilitan cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por participar nuevamente. Para establecer una tasa de muestreo en lugar de deshabilitar completamente, utilice la configuración [`feedbackSurveyRate`](/es/settings#available-settings). Consulte [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) |193| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establezca en `1` para deshabilitar las encuestas de calidad de sesión "¿Cómo está funcionando Claude?". Las encuestas también se deshabilitan cuando se establece `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por participar nuevamente. Para establecer una tasa de muestreo en lugar de deshabilitar completamente, utilice la configuración [`feedbackSurveyRate`](/es/settings#available-settings). Consulte [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) |

190| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para deshabilitar el [checkpointing](/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar cambios de código |194| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para deshabilitar el [checkpointing](/es/checkpointing) de archivos. El comando `/rewind` no podrá restaurar cambios de código |


230| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establezca en `1` para omitir la validación de entradas de archivo de bloqueo de IDE durante la conexión. Utilice cuando la conexión automática no encuentra su IDE a pesar de que se está ejecutando |234| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establezca en `1` para omitir la validación de entradas de archivo de bloqueo de IDE durante la conexión. Utilice cuando la conexión automática no encuentra su IDE a pesar de que se está ejecutando |

231| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Anule el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. {/* min-version: 2.1.193 */}A partir de v2.1.193, se aplica directamente para nombres de modelo que Claude Code no reconoce como un modelo Claude; para modelos Claude reconocidos solo tiene efecto cuando `DISABLE_COMPACT` también está establecido. Utilice esto cuando enrute a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincide con el tamaño integrado para su nombre |235| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Anule el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. {/* min-version: 2.1.193 */}A partir de v2.1.193, se aplica directamente para nombres de modelo que Claude Code no reconoce como un modelo Claude; para modelos Claude reconocidos solo tiene efecto cuando `DISABLE_COMPACT` también está establecido. Utilice esto cuando enrute a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincide con el tamaño integrado para su nombre |

232| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establezca el número máximo de tokens de salida para la mayoría de solicitudes. Los valores predeterminados y máximos varían según el modelo; consulte [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/es/costs#reduce-token-usage) |236| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establezca el número máximo de tokens de salida para la mayoría de solicitudes. Los valores predeterminados y máximos varían según el modelo; consulte [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/es/costs#reduce-token-usage) |

233| `CLAUDE_CODE_MAX_RETRIES` | Anule el número de veces para reintentar solicitudes de API fallidas (predeterminado: 10). {/* min-version: 2.1.186 */}Limitado a 15 a partir de v2.1.186. Para sesiones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |237| `CLAUDE_CODE_MAX_RETRIES` | Anule el número de veces para reintentar solicitudes de API fallidas (predeterminado: 10). {/* min-version: 2.1.186 */}Limitado a 15 a partir de v2.1.186; {/* min-version: 2.1.199 */}a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` eleva el predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |

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

235| `CLAUDE_CODE_MAX_TURNS` | Limite el número de turnos agentivos cuando no se pasa un límite explícito. Equivalente a pasar [`--max-turns`](/es/cli-reference#cli-flags), que tiene precedencia cuando ambos se establecen. Un valor que no es un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |239| `CLAUDE_CODE_MAX_TURNS` | Limite el número de turnos agentivos cuando no se pasa un límite explícito. Equivalente a pasar [`--max-turns`](/es/cli-reference#cli-flags), que tiene precedencia cuando ambos se establecen. Un valor que no es un entero positivo se rechaza al inicio con un error en lugar de tratarse como sin límite |

236| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establezca en `1` para generar servidores MCP stdio con solo un entorno de línea base segura más el `env` configurado del servidor, en lugar de heredar su entorno de shell |240| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Establezca en `1` para generar servidores MCP stdio con solo un entorno de línea base segura más el `env` configurado del servidor, en lugar de heredar su entorno de shell |


262| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en [sesiones en la nube](/es/claude-code-on-the-web) en el ID de la sesión actual. Lea esto para construir un enlace de vuelta a la transcripción de la sesión. Consulte [Vincular salida de vuelta a la sesión](/es/claude-code-on-the-web#link-output-back-to-the-session) |266| `CLAUDE_CODE_REMOTE_SESSION_ID` | Se establece automáticamente en [sesiones en la nube](/es/claude-code-on-the-web) en el ID de la sesión actual. Lea esto para construir un enlace de vuelta a la transcripción de la sesión. Consulte [Vincular salida de vuelta a la sesión](/es/claude-code-on-the-web#link-output-back-to-the-session) |

263| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establezca en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de turno. Se utiliza en modo SDK para que el modelo continúe sin requerir que el SDK reenvíe el indicador |267| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establezca en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de turno. Se utiliza en modo SDK para que el modelo continúe sin requerir que el SDK reenvíe el indicador |

264| `CLAUDE_CODE_RESUME_PROMPT` | Anule el mensaje de continuación inyectado al reanudar una sesión que terminó a mitad de turno. El valor predeterminado es `Continue from where you left off.`. Los scripts de generación para agentes de larga duración pueden establecer esto en un mensaje de arranque más directivo. Una cadena vacía utiliza el valor predeterminado |268| `CLAUDE_CODE_RESUME_PROMPT` | Anule el mensaje de continuación inyectado al reanudar una sesión que terminó a mitad de turno. El valor predeterminado es `Continue from where you left off.`. Los scripts de generación para agentes de larga duración pueden establecer esto en un mensaje de arranque más directivo. Una cadena vacía utiliza el valor predeterminado |

265| `CLAUDE_CODE_RETRY_WATCHDOG` | {/* min-version: 2.1.186 */}Establezca en `1` para sesiones desatendidas como harnesses de evaluación, trabajos de CI o trabajadores remotos. Reintenta errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. El perro guardián se retira hasta 5 minutos entre intentos, o hasta que se reinicie el límite cuando la respuesta lleva un tiempo de reinicio de límite de velocidad, por lo que una sesión que alcanza un límite de uso espera la ventana restante. Requiere Claude Code v2.1.186 o posterior |269| `CLAUDE_CODE_RETRY_WATCHDOG` | {/* min-version: 2.1.186 */}Establezca en `1` para sesiones desatendidas como harnesses de evaluación, trabajos de CI o trabajadores remotos. Reintenta errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de `CLAUDE_CODE_MAX_RETRIES` intentos. El perro guardián se retira hasta 5 minutos entre intentos, o hasta que se reinicie el límite cuando la respuesta lleva un tiempo de reinicio de límite de velocidad, por lo que una sesión que alcanza un límite de uso espera la ventana restante. {/* min-version: 2.1.199 */}A partir de v2.1.199, también eleva el recuento de reintentos predeterminado para otros errores transitorios, como errores de servidor, tiempos de espera y conexiones perdidas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si establece esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |

266| `CLAUDE_CODE_SAFE_MODE` | Establezca en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos personalizados y agentes, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP y memoria automática no se cargan, para solucionar problemas de una configuración rota. La política de configuración administrada aún se aplica, incluidos hooks, línea de estado y comandos de sugerencia de archivos configurados por política; plugins administrados, skills administradas, CLAUDE.md administrado y servidores MCP configurados por política no lo hacen. Equivalente a pasar [`--safe-mode`](/es/cli-reference#cli-flags). Los procesos secundarios generados directamente heredan la variable |270| `CLAUDE_CODE_SAFE_MODE` | Establezca en `1` para iniciar en modo seguro: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos personalizados y agentes, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP y memoria automática no se cargan, para solucionar problemas de una configuración rota. La política de configuración administrada aún se aplica, incluidos hooks, línea de estado y comandos de sugerencia de archivos configurados por política; plugins administrados, skills administradas, CLAUDE.md administrado y servidores MCP configurados por política no lo hacen. Equivalente a pasar [`--safe-mode`](/es/cli-reference#cli-flags). Los procesos secundarios generados directamente heredan la variable |

267| `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 coincidentes contra el texto del comando; los valores son límites de llamadas enteros. Por ejemplo, `{"deploy.sh": 2}` permite que `deploy.sh` se llame como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión de shell como `./scripts/deploy.sh $(evil)` siguen contando contra el límite. El fan-out en tiempo de ejecución a través de `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |271| `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 coincidentes contra el texto del comando; los valores son límites de llamadas enteros. Por ejemplo, `{"deploy.sh": 2}` permite que `deploy.sh` se llame como máximo dos veces. La coincidencia se basa en subcadenas, por lo que trucos de expansión de shell como `./scripts/deploy.sh $(evil)` siguen contando contra el límite. El fan-out en tiempo de ejecución a través de `xargs` o `find -exec` no se detecta; este es un control de defensa en profundidad |

268| `CLAUDE_CODE_SCROLL_SPEED` | Establezca el multiplicador de desplazamiento de la rueda del ratón en [renderizado a pantalla completa](/es/fullscreen#mouse-wheel-scrolling). Acepta valores de 1 a 20, y valores fraccionarios por debajo de 1 como `0.5` para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican eventos de rueda. Establezca en `3` para coincidir con `vim` si su terminal envía un evento de rueda por muesca sin amplificación. Se ignora en el terminal de IDE de JetBrains, donde Claude Code utiliza su propio manejo de desplazamiento |272| `CLAUDE_CODE_SCROLL_SPEED` | Establezca el multiplicador de desplazamiento de la rueda del ratón en [renderizado a pantalla completa](/es/fullscreen#mouse-wheel-scrolling). Acepta valores de 1 a 20, y valores fraccionarios por debajo de 1 como `0.5` para ralentizar el desplazamiento acelerado del trackpad y la rueda en terminales que ya amplifican eventos de rueda. Establezca en `3` para coincidir con `vim` si su terminal envía un evento de rueda por muesca sin amplificación. Se ignora en el terminal de IDE de JetBrains, donde Claude Code utiliza su propio manejo de desplazamiento |


298| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establezca en `1` para descubrir comandos personalizados, subagentes y estilos de salida utilizando APIs de archivo de Node.js en lugar de ripgrep. Establezca esto si el binario ripgrep incluido no está disponible o está bloqueado en su entorno. No afecta a las herramientas Grep o búsqueda de archivos |302| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Establezca en `1` para descubrir comandos personalizados, subagentes y estilos de salida utilizando APIs de archivo de Node.js en lugar de ripgrep. Establezca esto si el binario ripgrep incluido no está disponible o está bloqueado en su entorno. No afecta a las herramientas Grep o búsqueda de archivos |

299| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establezca en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta se está implementando progresivamente: establezca en `1` para optar por participar o `0` para optar por no participar. En Linux, macOS y WSL, establezca en `1` para habilitarla, lo que requiere `pwsh` en su `PATH`. Cuando se habilita en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de enrutarlos a través de Git Bash. Consulte [Herramienta PowerShell](/es/tools-reference#powershell-tool) |303| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controla la herramienta PowerShell. En Windows sin Git Bash, la herramienta se habilita automáticamente; establezca en `0` para deshabilitarla. En Windows con Git Bash instalado, la herramienta se está implementando progresivamente: establezca en `1` para optar por participar o `0` para optar por no participar. En Linux, macOS y WSL, establezca en `1` para habilitarla, lo que requiere `pwsh` en su `PATH`. Cuando se habilita en Windows, Claude puede ejecutar comandos de PowerShell de forma nativa en lugar de enrutarlos a través de Git Bash. Consulte [Herramienta PowerShell](/es/tools-reference#powershell-tool) |

300| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/es/google-vertex-ai) |304| `CLAUDE_CODE_USE_VERTEX` | Use [Vertex](/es/google-vertex-ai) |

301| `CLAUDE_CONFIG_DIR` | Anule el directorio de configuración (predeterminado: `~/.claude`). Todos los ajustes, credenciales, historial de sesiones y plugins se almacenan bajo esta ruta. Útil para ejecutar múltiples cuentas lado a lado: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |305| `CLAUDE_CONFIG_DIR` | Anule el directorio de configuración (predeterminado: `~/.claude`). Todos los ajustes, historial de sesiones y plugins se almacenan bajo esta ruta, así como credenciales en Linux y Windows; en macOS, las credenciales están en el Keychain del sistema. Útil para ejecutar múltiples cuentas lado a lado: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'` |

302| `CLAUDE_DISABLE_ADOPT` | {/* min-version: 2.1.195 */}Establezca en `1` para detener el trabajo en segundo plano en vuelo en lugar de llevarlo cuando pone una sesión en segundo plano presionando `←` o con [`/background`](/es/agent-view#from-inside-a-session). Claude Code le pide que confirme antes de poner en segundo plano, luego detiene las tareas que de otra manera se llevarían. Requiere Claude Code v2.1.195 o posterior |306| `CLAUDE_DISABLE_ADOPT` | {/* min-version: 2.1.195 */}Establezca en `1` para detener el trabajo en segundo plano en vuelo en lugar de llevarlo cuando pone una sesión en segundo plano presionando `←` o con [`/background`](/es/agent-view#from-inside-a-session). Claude Code le pide que confirme antes de poner en segundo plano, luego detiene las tareas que de otra manera se llevarían. Requiere Claude Code v2.1.195 o posterior |

303| `CLAUDE_EFFORT` | Se establece automáticamente en subprocesos de herramientas Bash y comandos hook en el [nivel de esfuerzo](/es/model-config#adjust-effort-level) activo para el turno: `low`, `medium`, `high`, `xhigh` o `max`. Ultracode no es un nivel distinto e informa como `xhigh`. Coincide con el campo `effort.level` pasado a [hooks](/es/hooks). Solo se establece cuando el modelo actual admite el parámetro de esfuerzo |307| `CLAUDE_EFFORT` | Se establece automáticamente en subprocesos de herramientas Bash y comandos hook en el [nivel de esfuerzo](/es/model-config#adjust-effort-level) activo para el turno: `low`, `medium`, `high`, `xhigh` o `max`. Ultracode no es un nivel distinto e informa como `xhigh`. Coincide con el campo `effort.level` pasado a [hooks](/es/hooks). Solo se establece cuando el modelo actual admite el parámetro de esfuerzo |

304| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establezca en `1` para forzar la habilitación del perro guardián de inactividad de transmisión a nivel de byte, o establezca en `0` para forzar su deshabilitación. Cuando no se establece, el perro guardián se habilita de forma predeterminada para conexiones de API de Anthropic directas y [Claude Platform on AWS](/es/claude-platform-on-aws). El perro guardián de byte aborta una conexión cuando no llegan bytes en el cable durante 180 segundos de forma predeterminada en conexiones de API de Anthropic directas, 300 segundos en Claude Platform on AWS y cuando se habilita en Bedrock, o para el valor de `CLAUDE_STREAM_IDLE_TIMEOUT_MS` cuando se establece, que se fija a un mínimo de 5 minutos, independientemente del perro guardián a nivel de evento |308| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establezca en `1` para forzar la habilitación del perro guardián de inactividad de transmisión a nivel de byte, o establezca en `0` para forzar su deshabilitación. Cuando no se establece, el perro guardián se habilita de forma predeterminada para conexiones de API de Anthropic directas y [Claude Platform on AWS](/es/claude-platform-on-aws). El perro guardián de byte aborta una conexión cuando no llegan bytes en el cable durante 180 segundos de forma predeterminada en conexiones de API de Anthropic directas, 300 segundos en Claude Platform on AWS y cuando se habilita en Bedrock, o para el valor de `CLAUDE_STREAM_IDLE_TIMEOUT_MS` cuando se establece, que se fija a un mínimo de 5 minutos, independientemente del perro guardián a nivel de evento |

errors.md +154 −22

Details

25| `API Error: 500 Internal server error` | [Errores del servidor](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [Errores del servidor](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |

27| `Request timed out` | [Errores del servidor](#request-timed-out), o [Red](#unable-to-connect-to-api) si el mensaje menciona su conexión a Internet |27| `Request timed out` | [Errores del servidor](#request-timed-out), o [Red](#unable-to-connect-to-api) si el mensaje menciona su conexión a Internet |

28| `Server error mid-response. The response above may be incomplete.` | [Errores del servidor](#the-response-above-may-be-incomplete) |

29| `Connection closed mid-response` / `Response stalled mid-stream` | [Errores del servidor](#the-response-above-may-be-incomplete) |

28| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |30| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |

29| `Auto mode could not evaluate this action and is blocking it for safety` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |31| `Auto mode could not evaluate this action and is blocking it for safety` | [Errores del servidor](#auto-mode-cannot-determine-the-safety-of-an-action) |

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

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

31| `You've hit your session limit` / `You've hit your weekly limit` | [Límites de uso](#you%E2%80%99ve-hit-your-session-limit) |34| `You've hit your session limit` / `You've hit your weekly limit` | [Límites de uso](#you%E2%80%99ve-hit-your-session-limit) |

32| `Usage credits required for 1M context` | [Límites de uso](#usage-credits-required-for-1m-context) |35| `Usage credits required for 1M context` | [Límites de uso](#usage-credits-required-for-1m-context) |

33| `Server is temporarily limiting requests` | [Límites de uso](#server-is-temporarily-limiting-requests) |36| `Server is temporarily limiting requests` | [Límites de uso](#server-is-temporarily-limiting-requests) |


43| `Remote Control is only available when using Claude via api.anthropic.com` | [Autenticación](#remote-control-requires-the-anthropic-api) |46| `Remote Control is only available when using Claude via api.anthropic.com` | [Autenticación](#remote-control-requires-the-anthropic-api) |

44| `OAuth token revoked` / `OAuth token has expired` | [Autenticación](#oauth-token-revoked-or-expired) |47| `OAuth token revoked` / `OAuth token has expired` | [Autenticación](#oauth-token-revoked-or-expired) |

45| `does not meet scope requirement user:profile` | [Autenticación](#oauth-scope-requirement) |48| `does not meet scope requirement user:profile` | [Autenticación](#oauth-scope-requirement) |

49| `AWS credentials expired or invalid` | [Autenticación](#aws-credentials-expired-or-invalid) |

50| `AWS authentication failed` | [Autenticación](#aws-authentication-failed) |

46| `Unable to connect to API` | [Red](#unable-to-connect-to-api) |51| `Unable to connect to API` | [Red](#unable-to-connect-to-api) |

47| `Waiting for API response · will retry in` | [Reintentos automáticos](#automatic-retries), o [Red](#unable-to-connect-to-api) si persiste |52| `Waiting for API response · will retry in` | [Reintentos automáticos](#automatic-retries), o [Red](#unable-to-connect-to-api) si persiste |

48| `SSL certificate verification failed` | [Red](#ssl-certificate-errors) |53| `SSL certificate verification failed` | [Red](#ssl-certificate-errors) |

54| `SSL certificate error (...)` during login or startup | [Red](#ssl-certificate-errors) |

49| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Red](#host-not-allowed-in-a-cloud-session) |55| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Red](#host-not-allowed-in-a-cloud-session) |

50| `Prompt is too long` | [Errores de solicitud](#prompt-is-too-long) |56| `Prompt is too long` | [Errores de solicitud](#prompt-is-too-long) |

51| `Error during compaction: Conversation too long` | [Errores de solicitud](#error-during-compaction-conversation-too-long) |57| `Error during compaction: Conversation too long` | [Errores de solicitud](#error-during-compaction-conversation-too-long) |


61| `max_tokens must be greater than thinking.budget_tokens` | [Errores de solicitud](#thinking-budget-exceeds-output-limit) |67| `max_tokens must be greater than thinking.budget_tokens` | [Errores de solicitud](#thinking-budget-exceeds-output-limit) |

62| `API Error: 400 due to tool use concurrency issues` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |68| `API Error: 400 due to tool use concurrency issues` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

63| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errores de solicitud](#usage-policy-refusal) |69| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errores de solicitud](#usage-policy-refusal) |

70| `--bg and --print conflict` | [Errores de línea de comandos](#command-line-errors) |

64| Responses seem lower quality than usual | [Calidad de respuesta](#responses-seem-lower-quality-than-usual) |71| Responses seem lower quality than usual | [Calidad de respuesta](#responses-seem-lower-quality-than-usual) |

65 72 

66<h2 id="automatic-retries">73<h2 id="automatic-retries">

67 Reintentos automáticos74 Reintentos automáticos

68</h2>75</h2>

69 76 

70Claude Code reintenta fallos transitorios antes de mostrarle un error. Los errores del servidor, respuestas sobrecargadas, tiempos de espera de solicitud, aceleraciones 429 temporales y conexiones perdidas se reintentan hasta 10 veces con retroceso exponencial. Mientras se reintenta, el spinner muestra una cuenta regresiva de `Retrying in Ns · attempt x/y`.77Claude Code reintenta fallos transitorios antes de mostrarle un error. Los errores del servidor, respuestas sobrecargadas, tiempos de espera de solicitud, aceleraciones 429 temporales y conexiones perdidas se reintentan hasta 10 veces con retroceso exponencial. {/* min-version: 2.1.198 */}A partir de v2.1.198, esto cubre conexiones que se cierran en medio de una respuesta antes de que se haya transmitido ninguna salida visible: Claude Code reemite la solicitud con el mismo retroceso y el turno continúa en lugar de detenerse con un error de conexión. {/* min-version: 2.1.199 */}A partir de v2.1.199, las aceleraciones 429 temporales que no llevan los encabezados de cuota de su plan también se reintentan cuando ha iniciado sesión con una suscripción de claude.ai; las versiones anteriores las reintentaban solo para autenticaciones de clave de API y Enterprise.

78 

79Dos clases de fallo no se reintentan, porque un reintento no puede tener éxito:

80 

81* {/* min-version: 2.1.199 */}A partir de v2.1.199, una falla de validación de certificado TLS, como un proxy que inspecciona TLS, un paquete `NODE_EXTRA_CA_CERTS` faltante, o un certificado expirado, falla en el primer intento para que la corrección aparezca inmediatamente en lugar de después del presupuesto de reintento completo. Consulte [Errores de certificado SSL](#ssl-certificate-errors). Las condiciones TLS transitorias como un tiempo de espera de protocolo de enlace aún se reintentan.

82* {/* min-version: 2.1.199 */}A partir de v2.1.199, un error del servidor que llega después de que Claude ya ha transmitido salida visible mantiene la respuesta parcial y agrega un [aviso de respuesta incompleta](#the-response-above-may-be-incomplete) en lugar de reintentar, ya que volver a ejecutar la solicitud podría ejecutar las mismas llamadas de herramientas dos veces. Las versiones anteriores descartaban la salida parcial e informaban el turno como un error.

83 

84Mientras se reintenta, el spinner muestra una cuenta regresiva de `Retrying in Ns · attempt x/y` después de una etiqueta de error. La etiqueta nombra la razón específica del primer intento para fallos en los que puede actuar de inmediato: la red está caída, un protocolo de enlace TLS falló, o alcanzó un límite de velocidad. Para otros errores, dice `API error` al principio. {/* min-version: 2.1.198 */}A partir de v2.1.198, cambia a la razón específica del tercer intento, o en el intento final cuando `CLAUDE_CODE_MAX_RETRIES` permite menos de tres; las versiones anteriores cambian solo en el intento final.

85 

86{/* min-version: 2.1.198 */}A partir de v2.1.198, el consejo del spinner habitual se suprime durante los reintentos. Una vez que se revela la razón del error, si el fallo es una sobrecarga 529, la línea debajo de la cuenta regresiva también nombra dónde verificar el estado del servicio: `status.claude.com` en la API de Anthropic, o el host del proveedor o puerta de enlace nombrado en el mensaje en otras configuraciones.

71 87 

72{/* min-version: 2.1.185 */}Si no llegan datos en el flujo de respuesta durante 20 segundos mientras una solicitud aún está pendiente, el spinner muestra `Waiting for API response · will retry in … · check your network` antes de que comience cualquier reintento. La solicitud aún no ha fallado: la cuenta regresiva se ejecuta hasta el punto en que Claude Code interrumpe la conexión estancada y reintenta, por lo que el banner se borra por sí solo una vez que se reanuden los datos o el reintento tenga éxito. A partir de v2.1.185, el umbral es de 20 segundos; las versiones anteriores muestran el banner después de 10 segundos con una redacción diferente. Si reaparece en cada intento, trátelo como un [problema de red](#unable-to-connect-to-api).88{/* min-version: 2.1.185 */}Si no llegan datos en el flujo de respuesta durante 20 segundos mientras una solicitud aún está pendiente, el spinner muestra `Waiting for API response · will retry in … · check your network` antes de que comience cualquier reintento. La solicitud aún no ha fallado: la cuenta regresiva se ejecuta hasta el punto en que Claude Code interrumpe la conexión estancada y reintenta, por lo que el banner se borra por sí solo una vez que se reanuden los datos o el reintento tenga éxito. A partir de v2.1.185, el umbral es de 20 segundos; las versiones anteriores muestran el banner después de 10 segundos con una redacción diferente. Si reaparece en cada intento, trátelo como un [problema de red](#unable-to-connect-to-api).

73 89 

74Cuando ve uno de los errores en esta página, esos reintentos ya se han agotado. Puede ajustar el comportamiento con estas variables de entorno:90Cuando ve uno de los errores en esta página, esos reintentos ya se han agotado, a menos que pertenezca a una clase que no se reintenta, como una falla de validación de certificado. Puede ajustar el comportamiento con estas variables de entorno:

75 91 

76| Variable | Predeterminado | Efecto |92| Variable | Predeterminado | Efecto |

77| :------------------------------------------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |93| :------------------------------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

78| [`CLAUDE_CODE_MAX_RETRIES`](/es/env-vars) | 10 | Número de intentos de reintento. {/* min-version: 2.1.186 */}Limitado a 15 a partir de v2.1.186. Redúzcalo para que los fallos aparezcan más rápido en scripts. |94| [`CLAUDE_CODE_MAX_RETRIES`](/es/env-vars) | 10 | Número de intentos de reintento. {/* min-version: 2.1.186 */}Limitado a 15 a partir de v2.1.186; {/* min-version: 2.1.199 */}a partir de v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Redúzcalo para que los fallos aparezcan más rápido en scripts. |

79| [`CLAUDE_CODE_RETRY_WATCHDOG`](/es/env-vars) | sin establecer | Establézcalo 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. |95| [`CLAUDE_CODE_RETRY_WATCHDOG`](/es/env-vars) | sin establecer | Establézcalo 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. {/* min-version: 2.1.199 */}A partir de v2.1.199, también aumenta el recuento de reintento predeterminado para otros errores transitorios, como errores del servidor, tiempos de espera y conexiones perdidas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si establece esa variable explícitamente. |

80| [`API_TIMEOUT_MS`](/es/env-vars) | 600000 | Tiempo de espera por solicitud en milisegundos. Auméntelo para redes lentas o proxies. |96| [`API_TIMEOUT_MS`](/es/env-vars) | 600000 | Tiempo de espera por solicitud en milisegundos. Auméntelo para redes lentas o proxies. |

81 97 

82<h2 id="server-errors">98<h2 id="server-errors">


101 117 

102**Qué hacer:**118**Qué hacer:**

103 119 

104* Consulte [status.claude.com](https://status.claude.com) o la página de estado del proveedor nombrada en el mensaje para ver incidentes activos120* Consulte [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver incidentes activos

105* Espere un minuto y luego envíe su mensaje nuevamente. Su mensaje original sigue en la conversación, por lo que para un prompt largo puede escribir `try again` en lugar de pegar todo de nuevo.121* Espere un minuto y luego envíe su mensaje nuevamente. Su mensaje original sigue en la conversación, por lo que para un prompt largo puede escribir `try again` en lugar de pegar todo de nuevo.

106* Si el error persiste sin incidente publicado, ejecute `/feedback` para que Anthropic pueda investigar con los detalles de su solicitud. Consulte [Reportar un error](#report-an-error) si `/feedback` no está disponible en su entorno.122* Si el error persiste sin incidente publicado, ejecute `/feedback` para que Anthropic pueda investigar con los detalles de su solicitud. Consulte [Reportar un error](#report-an-error) si `/feedback` no está disponible en su entorno.

107 123 


115API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.131API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

116```132```

117 133 

118La oración final varía según el proveedor de la misma manera que el error 500 anterior. Un 529 no es su límite de uso y no cuenta contra su cuota.134La oración final varía según el proveedor de la misma manera que el error 500 anterior.

135 

136Un 529 no es su límite de uso y no cuenta contra su cuota.

119 137 

120**Qué hacer:**138**Qué hacer:**

121 139 

122* Consulte [status.claude.com](https://status.claude.com) o la página de estado del proveedor nombrada en el mensaje para ver avisos de capacidad140* Consulte [status.claude.com](https://status.claude.com), o la página de estado del proveedor nombrada en el mensaje, para ver avisos de capacidad

123* Intente de nuevo en unos minutos141* Intente de nuevo en unos minutos

124* Ejecute `/model` y cambie a un modelo diferente para continuar trabajando, ya que la capacidad se rastrea por modelo. Claude Code le solicita que haga esto cuando un modelo está bajo una carga particularmente alta, por ejemplo `Opus is experiencing high load, please use /model to switch to Sonnet`.142* Ejecute `/model` y cambie a un modelo diferente para continuar trabajando, ya que la capacidad se rastrea por modelo. Claude Code le solicita que haga esto cuando un modelo está bajo una carga particularmente alta, por ejemplo `Opus is experiencing high load, please use /model to switch to Sonnet`.

125 143 


133Request timed out151Request timed out

134```152```

135 153 

136Esto puede suceder durante períodos de alta carga o cuando se genera una respuesta muy grande. El tiempo de espera de solicitud predeterminado es de 10 minutos.154Esto puede suceder durante períodos de alta carga o cuando el modelo está generando una respuesta muy grande. El tiempo de espera de solicitud predeterminado es de 10 minutos.

137 155 

138**Qué hacer:**156**Qué hacer:**

139 157 


142* Si una red lenta o proxy es la causa, aumente `API_TIMEOUT_MS` como se describe en [Reintentos automáticos](#automatic-retries)160* Si una red lenta o proxy es la causa, aumente `API_TIMEOUT_MS` como se describe en [Reintentos automáticos](#automatic-retries)

143* Si los tiempos de espera son frecuentes y su red es de otro modo saludable, consulte [Errores de red y conexión](#network-and-connection-errors) a continuación161* Si los tiempos de espera son frecuentes y su red es de otro modo saludable, consulte [Errores de red y conexión](#network-and-connection-errors) a continuación

144 162 

163<h3 id="the-response-above-may-be-incomplete">

164 The response above may be incomplete

165</h3>

166 

167Una respuesta de transmisión falló después de que Claude ya había producido salida visible. Volver a enviar la solicitud podría ejecutar las mismas llamadas de herramientas dos veces, por lo que Claude Code mantiene lo que ya se transmitió y agrega este aviso en lugar de descartar el turno. La variante que ve nombra la causa:

168 

169```text theme={null}

170API Error: Server error mid-response. The response above may be incomplete.

171API Error: Connection closed mid-response. The response above may be incomplete.

172API Error: Response stalled mid-stream. The response above may be incomplete.

173```

174 

175* {/* min-version: 2.1.199 */}`Server error mid-response`: un error de servidor sobrecargado o 5xx a mitad de flujo. Esta variante requiere Claude Code v2.1.199 o posterior; antes de eso, ese caso descartaba la salida parcial e informaba el turno completo como un error.

176* `Connection closed mid-response`: la conexión se cerró.

177* `Response stalled mid-stream`: el flujo dejó de enviar datos.

178 

179**Qué hacer:**

180 

181* Lea la respuesta que se transmitió. Nada se ha perdido, pero las oraciones finales o llamadas de herramientas pueden faltar.

182* Responda con `continue` para que Claude continúe donde se detuvo

183* Si el mismo error aparece antes de cualquier salida visible, Claude Code reintenta la solicitud en lugar de finalizarla. Consulte [Reintentos automáticos](#automatic-retries).

184 

145<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">185<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

146 Auto mode cannot determine the safety of an action186 Auto mode cannot determine the safety of an action

147</h3>187</h3>


198* Apruebe o deniegue la acción en la solicitud que aparece238* Apruebe o deniegue la acción en la solicitud que aparece

199* Ejecute `/compact` para reducir el tamaño de la conversación para que las acciones posteriores se ajusten nuevamente dentro de la ventana del clasificador239* Ejecute `/compact` para reducir el tamaño de la conversación para que las acciones posteriores se ajusten nuevamente dentro de la ventana del clasificador

200 240 

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

242 Agent terminated early due to an API error

243</h3>

244 

245{/* min-version: 2.1.199 */}La solicitud de API de un [subagent](/es/sub-agents) falló terminalmente, por ejemplo porque se alcanzó un límite de uso o los reintentos de un error del servidor se agotaron, por lo que el subagent se detuvo antes de terminar su tarea. Este mensaje requiere Claude Code v2.1.199 o posterior; antes de eso, el texto de error de API se devolvía a Claude como si fuera el resultado del subagent.

246 

247```text theme={null}

248Agent terminated early due to an API error: <error detail>

249```

250 

251**Qué hacer:**

252 

253* Haga coincidir el detalle del error después de los dos puntos con su propia sección en esta página, como [Límites de uso](#usage-limits) o [Errores del servidor](#server-errors), y siga los pasos de esa sección

254* Una vez que el error subyacente se borre, pida a Claude que reintente la tarea o [reanude el subagent](/es/sub-agents#resume-subagents)

255 

256Cuando un límite de velocidad, sobrecarga o error del servidor interrumpe un subagent en primer plano que ya produjo salida, Claude recibe esa salida parcial marcada como incompleta en lugar de este error. Consulte [Errores de API en subagents](/es/sub-agents#api-errors-in-subagents).

257 

201<h2 id="usage-limits">258<h2 id="usage-limits">

202 Límites de uso259 Límites de uso

203</h2>260</h2>


205Estos errores significan que se ha alcanzado una cuota vinculada a su cuenta o plan. Son distintos de los [errores del servidor](#server-errors), que afectan a todos.262Estos errores significan que se ha alcanzado una cuota vinculada a su cuenta o plan. Son distintos de los [errores del servidor](#server-errors), que afectan a todos.

206 263 

207<h3 id="you’ve-hit-your-session-limit">264<h3 id="you’ve-hit-your-session-limit">

208 Ha alcanzado su límite de sesión265 You've hit your session limit

209</h3>266</h3>

210 267 

211Los planes de suscripción incluyen una asignación de uso continuo. Cuando se agota, ve uno de estos mensajes:268Los planes de suscripción incluyen una asignación de uso continuo. Cuando se agota, ve uno de estos mensajes:


228Para ver su asignación restante antes de alcanzar el límite, agregue los campos `rate_limits` a una [línea de estado personalizada](/es/statusline#rate-limit-usage), o en la aplicación de escritorio haga clic en el [anillo de uso](/es/desktop#check-usage) junto al selector de modelo.285Para ver su asignación restante antes de alcanzar el límite, agregue los campos `rate_limits` a una [línea de estado personalizada](/es/statusline#rate-limit-usage), o en la aplicación de escritorio haga clic en el [anillo de uso](/es/desktop#check-usage) junto al selector de modelo.

229 286 

230<h3 id="usage-credits-required-for-1m-context">287<h3 id="usage-credits-required-for-1m-context">

231 Créditos de uso requeridos para contexto de 1M288 Usage credits required for 1M context

232</h3>289</h3>

233 290 

234El modelo seleccionado utiliza la ventana de contexto extendida de 1M tokens, y su plan solo lo incluye a través de créditos de uso.291El modelo seleccionado utiliza la ventana de contexto extendida de 1M tokens, y su plan solo lo incluye a través de créditos de uso.


239 296 

240Esta 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](/es/model-config#extended-context) para ver qué planes incluyen contexto de 1M directamente y cuáles requieren créditos de uso.297Esta 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](/es/model-config#extended-context) para ver qué planes incluyen contexto de 1M directamente y cuáles requieren créditos de uso.

241 298 

242Cuando 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 ninguna acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior incluyendo `/compact`; ejecute `/clear` en esas versiones para recuperarse. Los pasos a continuación se aplican cuando seleccionó explícitamente un modelo `[1m]`.299{/* min-version: 2.1.172 */}Cuando 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 ninguna acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior incluyendo `/compact`; ejecute `/clear` en esas versiones para recuperarse. Los pasos a continuación se aplican cuando seleccionó explícitamente un modelo `[1m]`.

243 300 

244**Qué hacer:**301**Qué hacer:**

245 302 


249* Para eliminar variantes de 1M del selector de modelo por completo, establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/es/env-vars)306* Para eliminar variantes de 1M del selector de modelo por completo, establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/es/env-vars)

250 307 

251<h3 id="server-is-temporarily-limiting-requests">308<h3 id="server-is-temporarily-limiting-requests">

252 El servidor está limitando temporalmente las solicitudes309 Server is temporarily limiting requests

253</h3>310</h3>

254 311 

255La API aplicó una aceleración de corta duración que no está relacionada con su cuota de plan.312La API aplicó una aceleración de corta duración que no está relacionada con su cuota de plan.


258API Error: Server is temporarily limiting requests (not your usage limit)315API Error: Server is temporarily limiting requests (not your usage limit)

259```316```

260 317 

261Esto se [reintenta automáticamente](#automatic-retries) antes de mostrarse.318Claude 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. {/* min-version: 2.1.199 */}A partir de v2.1.199, esto se [reintenta automáticamente](#automatic-retries) con retroceso antes de mostrarse, sin importar cómo se autentique. En versiones anteriores, una sesión que inició sesión con una suscripción de claude.ai falló el turno en la primera ocurrencia; solo las autenticaciones de clave de API y Enterprise lo reintentaron.

262 319 

263**Qué hacer:**320**Qué hacer:**

264 321 


266* Consulte [status.claude.com](https://status.claude.com) si persiste323* Consulte [status.claude.com](https://status.claude.com) si persiste

267 324 

268<h3 id="request-rejected-429">325<h3 id="request-rejected-429">

269 Solicitud rechazada (429)326 Request rejected (429)

270</h3>327</h3>

271 328 

272Ha alcanzado el límite de velocidad configurado para su clave de API, proyecto de Amazon Bedrock o proyecto de Google Vertex AI.329Ha alcanzado el límite de velocidad configurado para su clave de API, proyecto de Amazon Bedrock o proyecto de Google Vertex AI.


285* Reduzca la concurrencia: reduzca [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/es/env-vars), evite ejecutar muchos subagentos paralelos, o cambie a un modelo más pequeño con `/model` para ejecuciones de alto volumen con scripts342* Reduzca la concurrencia: reduzca [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/es/env-vars), evite ejecutar muchos subagentos paralelos, o cambie a un modelo más pequeño con `/model` para ejecuciones de alto volumen con scripts

286 343 

287<h3 id="credit-balance-is-too-low">344<h3 id="credit-balance-is-too-low">

288 El saldo de crédito es demasiado bajo345 Credit balance is too low

289</h3>346</h3>

290 347 

291Su organización de Console se ha quedado sin créditos prepagados.348Su organización de Console se ha quedado sin créditos prepagados.


321* Ejecute `/login` para autenticarse con su suscripción de Claude o cuenta de Console378* Ejecute `/login` para autenticarse con su suscripción de Claude o cuenta de Console

322* Si esperaba que una variable de entorno lo autenticara, confirme que `ANTHROPIC_API_KEY` está configurada y exportada en el shell donde lanzó `claude`379* Si esperaba que una variable de entorno lo autenticara, confirme que `ANTHROPIC_API_KEY` está configurada y exportada en el shell donde lanzó `claude`

323* Para CI o automatización donde el inicio de sesión interactivo no es posible, configure un script [`apiKeyHelper`](/es/settings#available-settings) que obtenga una clave al inicio380* Para CI o automatización donde el inicio de sesión interactivo no es posible, configure un script [`apiKeyHelper`](/es/settings#available-settings) que obtenga una clave al inicio

324* Consulte [Precedencia de autenticación](/es/authentication#authentication-precedence) para entender qué credencial gana cuando hay varias presentes381* Consulte [Precedencia de autenticación](/es/authentication#authentication-precedence) para entender qué credencial Claude Code usa cuando hay varias presentes

325 382 

326Si se le solicita que inicie sesión repetidamente, consulte [Not logged in or token expired](/es/troubleshoot-install#not-logged-in-or-token-expired) para correcciones del reloj del sistema y Keychain de macOS.383Si se le solicita que inicie sesión repetidamente, consulte [Not logged in or token expired](/es/troubleshoot-install#not-logged-in-or-token-expired) para correcciones del reloj del sistema y Keychain de macOS.

327 384 


385 Your organization has disabled API key authentication442 Your organization has disabled API key authentication

386</h3>443</h3>

387 444 

388El administrador de su organización de Console ha desactivado la autenticación por clave de API, por lo que la API rechaza la clave que Claude Code está enviando. La sugerencia de recuperación después del `·` varía según de dónde provenga la clave:445Este mensaje requiere Claude Code v2.1.169 o posterior. El administrador de su organización de Console ha desactivado la autenticación por clave de API, por lo que la API rechaza la clave que Claude Code está enviando. La sugerencia de recuperación después del `·` varía según de dónde provenga la clave:

389 446 

390```text theme={null}447```text theme={null}

391Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account448Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


414Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access471Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

415```472```

416 473 

417Esta es una configuración de organización del lado del servidor, por lo que no se puede anular desde la configuración local, variables de entorno o banderas de CLI. El Agent SDK y el modo no interactivo `-p` presentan esto como el código de error `oauth_org_not_allowed`.474Esta es una configuración de organización del lado del servidor, por lo que no se puede anular desde la configuración local, variables de entorno o banderas de CLI.

475 

476El Agent SDK y el modo no interactivo `-p` presentan esto como el código de error `oauth_org_not_allowed`.

418 477 

419**Qué hacer:**478**Qué hacer:**

420 479 


489 548 

490* Ejecute `/login` para crear un nuevo token con los alcances actuales. No necesita cerrar sesión primero.549* Ejecute `/login` para crear un nuevo token con los alcances actuales. No necesita cerrar sesión primero.

491 550 

551<h3 id="aws-credentials-expired-or-invalid">

552 AWS credentials expired or invalid

553</h3>

554 

555{/* min-version: 2.1.198 */}Este mensaje requiere Claude Code v2.1.198 o posterior y solo aparece cuando [`awsAuthRefresh`](/es/amazon-bedrock#advanced-credential-configuration) está configurado en su archivo de configuración. Su token de sesión de AWS expiró o fue rechazado, y la actualización automática que Claude Code ya ejecutó no produjo una credencial que la API acepte. Aparece en un 401 de [Claude Platform on AWS](/es/claude-platform-on-aws) o el [endpoint de Mantle](/es/amazon-bedrock#use-the-mantle-endpoint), que es cómo esos proveedores informan un token de seguridad expirado.

556 

557La sugerencia de acción en el medio nombra el comando `awsAuthRefresh` de su configuración, por lo que varía. La parte estable es el `AWS credentials expired or invalid` inicial:

558 

559```text theme={null}

560AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

561```

562 

563Sin `awsAuthRefresh` configurado, el mismo 401 muestra el mensaje genérico `Please run /login` en su lugar, que no puede actualizar credenciales de AWS.

564 

565**Qué hacer:**

566 

567* Ejecute el comando `awsAuthRefresh` nombrado en el mensaje, como `aws sso login --profile myprofile`, en otra terminal y complete el inicio de sesión del navegador, luego reintente

568* En una sesión interactiva, ejecute `/login`, elija **3rd-party platform**, luego seleccione **Claude Platform on AWS · refresh credentials** bajo **Using 3rd-party platforms** para ejecutar el mismo comando sin reiniciar Claude Code. Consulte [Configure AWS credentials](/es/claude-platform-on-aws#1-configure-aws-credentials)

569* Si el error se repite después de que el comando de actualización tenga éxito, confirme que la identidad es válida fuera de Claude Code con `aws sts get-caller-identity` en el mismo shell y perfil

570 

571<h3 id="aws-authentication-failed">

572 AWS authentication failed

573</h3>

574 

575{/* min-version: 2.1.198 */}Este mensaje requiere Claude Code v2.1.198 o posterior y solo aparece cuando [`awsAuthRefresh`](/es/amazon-bedrock#advanced-credential-configuration) está configurado en su archivo de configuración. Su proveedor de AWS devolvió un 403, o [Amazon Bedrock](/es/amazon-bedrock) devolvió un 401.

576 

577Claude Code no puede decir qué causa alcanzó. Amazon Bedrock informa un token de seguridad expirado como un 403, pero un 403 también es cómo informa una negación de autorización, como un `AccessDeniedException` de un permiso de IAM faltante o un modelo que no está habilitado para su cuenta.

578 

579Un 401 de Amazon Bedrock también llega aquí en lugar de bajo [AWS credentials expired or invalid](#aws-credentials-expired-or-invalid), porque Bedrock no informa un token expirado como un 401. Un 401 de ese endpoint típicamente viene de algo más en la ruta de solicitud, como un proxy corporativo.

580 

581Una actualización de credencial corrige un token expirado y no puede corregir las otras causas, por lo que el mensaje ofrece ambas:

582 

583```text theme={null}

584AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

585```

586 

587La sugerencia de acción en el medio nombra el comando `awsAuthRefresh` de su configuración, por lo que varía. La parte estable es el `AWS authentication failed` inicial.

588 

589**Qué hacer:**

590 

591* Ejecute el comando `awsAuthRefresh` nombrado en el mensaje, o `aws sso login`, en caso de que una credencial expirada sea la causa

592* Si sus credenciales son actuales, confirme que los permisos de IAM en [Configuración de IAM](/es/amazon-bedrock#iam-configuration) están adjuntos a la identidad que está usando y que el modelo seleccionado está habilitado para su cuenta y región

593* Ejecute `aws sts get-caller-identity` para confirmar qué identidad usan sus solicitudes; un `AWS_PROFILE` obsoleto o perfil predeterminado es una causa común de una falta de coincidencia de permisos

594 

492<h2 id="network-and-connection-errors">595<h2 id="network-and-connection-errors">

493 Errores de red y conexión596 Errores de red y conexión

494</h2>597</h2>


537Unable to connect to API: Self-signed certificate detected640Unable to connect to API: Self-signed certificate detected

538```641```

539 642 

643{/* min-version: 2.1.199 */}A partir de v2.1.199, una falla de validación de certificado no se reintenta, por lo que este error aparece en el primer intento en lugar de después del [presupuesto de reintento](#automatic-retries) completo. Las versiones anteriores pasaban unos minutos reintentando antes de mostrarlo. Las condiciones TLS transitorias, como un tiempo de espera de protocolo de enlace, aún se reintentan.

644 

645Durante `/login` y la verificación de conectividad de inicio, la misma falla se informa con el código OpenSSL y la corrección en línea:

646 

647```text theme={null}

648SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run /doctor for details.

649```

650 

540**Qué hacer:**651**Qué hacer:**

541 652 

542* Exporte el paquete de CA de su organización y apunte Claude Code a él con `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`653* Exporte el paquete de CA de su organización y apunte Claude Code a él con `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`


706 There's an issue with the selected model817 There's an issue with the selected model

707</h3>818</h3>

708 819 

709{/* min-version: 2.1.160 */}El nombre del modelo configurado no fue reconocido o su cuenta carece de acceso a él. A partir de v2.1.160, la sugerencia final que se muestra aquí en su forma interactiva varía según la superficie.820El nombre del modelo configurado no fue reconocido o su cuenta carece de acceso a él. A partir de v2.1.160, la sugerencia final que se muestra aquí en su forma interactiva varía según la superficie.

710 821 

711```text theme={null}822```text theme={null}

712There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.823There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.


741 Model is restricted by your organization's settings852 Model is restricted by your organization's settings

742</h3>853</h3>

743 854 

744{/* min-version: 2.1.187 */}Su administrador de organización ha deshabilitado este modelo en la Consola de Claude, o está excluido por una lista de permitidos [`availableModels`](/es/model-config#restrict-model-selection) en la configuración administrada. Cuando el modelo restringido se estableció con `--model`, `ANTHROPIC_MODEL`, o la configuración `model`, Claude Code sustituye un modelo permitido y continúa. Escribir `/model <name>` para un modelo restringido se rechaza con `Run /model to choose a different model.` y la sesión mantiene su modelo actual.855Su administrador de organización ha deshabilitado este modelo en la Consola de Claude, o está excluido por una lista de permitidos [`availableModels`](/es/model-config#restrict-model-selection) en la configuración administrada. Cuando el modelo restringido se estableció con `--model`, `ANTHROPIC_MODEL`, o la configuración `model`, Claude Code sustituye un modelo permitido y continúa. Escribir `/model <name>` para un modelo restringido se rechaza con `Run /model to choose a different model.` y la sesión mantiene su modelo actual.

745 856 

746```text theme={null}857```text theme={null}

747Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.858Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.


823* Si no puede identificar qué turno lo causó, ejecute `/clear` para comenzar una conversación nueva en el mismo proyecto. Su conversación anterior se conserva en disco y permanece disponible en `/resume`.934* Si no puede identificar qué turno lo causó, ejecute `/clear` para comenzar una conversación nueva en el mismo proyecto. Su conversación anterior se conserva en disco y permanece disponible en `/resume`.

824* En [modo no interactivo](/es/headless) (`-p`), donde rewind no está disponible, reintente con una solicitud reformulada en una nueva sesión sin `--continue`. Las verificaciones de política varían según el modelo, por lo que cambiar a un modelo diferente con `--model` también puede resolver la negativa en algunos casos.935* En [modo no interactivo](/es/headless) (`-p`), donde rewind no está disponible, reintente con una solicitud reformulada en una nueva sesión sin `--continue`. Las verificaciones de política varían según el modelo, por lo que cambiar a un modelo diferente con `--model` también puede resolver la negativa en algunos casos.

825 936 

937<h2 id="command-line-errors">

938 Errores de línea de comandos

939</h2>

940 

941Estos errores provienen de la validación propia de Claude Code de la línea de comandos `claude`. Claude Code los imprime inmediatamente, antes de crear una sesión o enviar cualquier solicitud de API.

942 

943<h3 id="conflict-between-bg-and-print">

944 Conflict between --bg and --print

945</h3>

946 

947Este mensaje requiere Claude Code v2.1.198 o posterior. Combinó `--bg` con `-p` o `--print` en la misma invocación de `claude`. `--bg` inicia una [sesión en segundo plano](/es/agent-view#from-your-shell) que luego adjunta con `claude agents`, mientras que `--print` se ejecuta [no interactivamente](/es/headless) y nunca inicia la sesión interactiva a la que `claude agents` se adjunta. Antes de v2.1.198, esta combinación creaba silenciosamente un trabajo en segundo plano que nunca podría adjuntarse.

948 

949```text theme={null}

950--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

951```

952 

953**Qué hacer:**

954 

955* Suelte `-p` o `--print`. `--bg` toma el prompt como su argumento posicional, por lo que `claude --bg "<task>"` es el comando completo. Consulte [Dispatch new agents from your shell](/es/agent-view#from-your-shell).

956* Para ejecutar el prompt no interactivamente e imprimir el resultado en lugar de crear una sesión en segundo plano, suelte `--bg` y ejecute `claude -p "<task>"`

957 

826<h2 id="responses-seem-lower-quality-than-usual">958<h2 id="responses-seem-lower-quality-than-usual">

827 Las respuestas parecen de menor calidad de lo habitual959 Las respuestas parecen de menor calidad de lo habitual

828</h2>960</h2>


850 Reportar un error982 Reportar un error

851</h2>983</h2>

852 984 

853Esta página cubre errores de la API de Claude. Para errores de otros componentes de Claude Code, consulte la guía relevante:985Para errores de componentes que esta página no cubre, consulte la guía relevante:

854 986 

855* El servidor MCP no se pudo conectar o autenticar: [MCP](/es/mcp)987* El servidor MCP no se pudo conectar o autenticar: [MCP](/es/mcp)

856* El script de hook falló o bloqueó una herramienta: [Debug hooks](/es/hooks#debug-hooks)988* El script de hook falló o bloqueó una herramienta: [Debug hooks](/es/hooks#debug-hooks)

fullscreen.md +5 −3

Details

58* **Haga clic en una sugerencia en la lista de comandos `/` o archivos `@`** para aceptarla. Pasar el ratón por encima resalta la fila bajo su cursor.58* **Haga clic en una sugerencia en la lista de comandos `/` o archivos `@`** para aceptarla. Pasar el ratón por encima resalta la fila bajo su cursor.

59* **Haga clic en una opción en un menú de selección** para elegirla. Esto cubre solicitudes de permisos, `/model`, `/config` y otros diálogos que muestran una lista de opciones. Pasar el ratón por encima muestra un puntero en la fila bajo su cursor. Requiere Claude Code v2.1.187 o posterior.59* **Haga clic en una opción en un menú de selección** para elegirla. Esto cubre solicitudes de permisos, `/model`, `/config` y otros diálogos que muestran una lista de opciones. Pasar el ratón por encima muestra un puntero en la fila bajo su cursor. Requiere Claude Code v2.1.187 o posterior.

60* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic nuevamente para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.60* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic nuevamente para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.

61* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las rutas de archivo en la salida de herramientas, como las impresas después de una edición o escritura, se abren en su aplicación predeterminada. Las URLs simples `http://` y `https://` se abren en su navegador. A partir de v2.1.181, un clic simple sin mantener presionado `Cmd` o `Ctrl` ya no abre enlaces, coincidiendo con el comportamiento de terminal nativa. En la terminal integrada de VS Code y terminales similares basadas en xterm.js, Claude Code se remite al manejador de enlaces propio de la terminal, que utiliza el mismo gesto.61* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las rutas de archivo en la salida de herramientas, como las impresas después de una edición o escritura, se abren en su aplicación predeterminada. Las URLs simples `http://` y `https://` se abren en su navegador. A partir de v2.1.181, un clic simple sin mantener presionado `Cmd` o `Ctrl` ya no abre enlaces, coincidiendo con el comportamiento de terminal nativa. Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo de ratón de terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code lo recibe como un clic simple. En Ghostty, y a partir de v2.1.198 en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando. En la terminal integrada de VS Code y terminales similares basadas en xterm.js, Claude Code se remite al manejador de enlaces propio de la terminal, que utiliza el mismo gesto.

62* **Haga clic y arrastre** para seleccionar texto en cualquier lugar de la conversación. El doble clic selecciona una palabra, coincidiendo con los límites de palabras de iTerm2 para que una ruta de archivo se seleccione como una unidad. El triple clic selecciona la línea.62* **Haga clic y arrastre** para seleccionar texto en cualquier lugar de la conversación. El doble clic selecciona una palabra, coincidiendo con los límites de palabras de iTerm2 para que una ruta de archivo se seleccione como una unidad. A partir de v2.1.198, el doble clic en una URL selecciona la URL completa, incluido el esquema. El triple clic selecciona la línea.

63* **Desplácese con la rueda del ratón** para moverse a través de la conversación.63* **Desplácese con la rueda del ratón** para moverse a través de la conversación.

64 64 

65El texto seleccionado se copia a su portapapeles automáticamente al soltar el ratón. Para desactivar esto, alterne Copiar al seleccionar en `/config`. Con esto desactivado, presione `Ctrl+Shift+c` para copiar manualmente. En terminales que admiten el protocolo de teclado kitty, como kitty, WezTerm, Ghostty e iTerm2, `Cmd+c` también funciona. Si tiene una selección activa, `Ctrl+c` copia en lugar de cancelar.65El texto seleccionado se copia a su portapapeles automáticamente al soltar el ratón. Para desactivar esto, alterne Copiar al seleccionar en `/config`.

66 

67Con Copiar al seleccionar desactivado, presione `Ctrl+Shift+c` para copiar manualmente. En terminales que admiten el protocolo de teclado kitty, como kitty, WezTerm, Ghostty e iTerm2, `Cmd+c` también funciona. Si tiene una selección activa, `Ctrl+c` copia en lugar de cancelar.

66 68 

67Con una selección activa, mantenga presionada `Shift` y presione las teclas de flecha para extenderla desde el teclado. `Shift+↑` y `Shift+↓` desplazan la ventana gráfica cuando la selección alcanza el borde superior o inferior. `Shift+Home` y `Shift+End` extienden hasta el inicio o final de la línea actual.69Con una selección activa, mantenga presionada `Shift` y presione las teclas de flecha para extenderla desde el teclado. `Shift+↑` y `Shift+↓` desplazan la ventana gráfica cuando la selección alcanza el borde superior o inferior. `Shift+Home` y `Shift+End` extienden hasta el inicio o final de la línea actual.

68 70 

gateways.md +1 −1

Details

44 Puerta de enlace de aplicaciones Claude44 Puerta de enlace de aplicaciones Claude

45</h3>45</h3>

46 46 

47La puerta de enlace de aplicaciones Claude es la puerta de enlace autohospedada propia de Anthropic, incluida en el binario `claude`. Enruta a Amazon Bedrock, Google Cloud, Microsoft Foundry o la API de Anthropic como el proveedor ascendente. Los desarrolladores inician sesión con su proveedor de identidad corporativa a través de `/login`, la puerta de enlace aplica el acceso a modelos y [configuración administrada](/es/permissions#managed-settings) por grupo de IdP, y emite métricas de uso del [Protocolo OpenTelemetry (OTLP)](/es/monitoring-usage) a su propia pila de observabilidad.47La puerta de enlace de aplicaciones Claude es la puerta de enlace autohospedada propia de Anthropic, incluida en el binario `claude`. Enruta a Amazon Bedrock, Claude Platform en AWS, Google Cloud, Microsoft Foundry o la API de Anthropic como el proveedor ascendente. Los desarrolladores inician sesión con su proveedor de identidad corporativa a través de `/login`, la puerta de enlace aplica el acceso a modelos y [configuración administrada](/es/permissions#managed-settings) por grupo de IdP, y emite métricas de uso del [Protocolo OpenTelemetry (OTLP)](/es/monitoring-usage) a su propia pila de observabilidad.

48 48 

49Debido a que se construye y prueba junto con cada versión de Claude Code, reenvía los encabezados y campos de solicitud que Claude Code envía. Una puerta de enlace mantenida por separado necesita que sus [reglas de reenvío se actualicen](/es/llm-gateway-protocol#forward-as-open-lists) a medida que esos encabezados y campos cambian con cada versión; la puerta de enlace de aplicaciones Claude se lanza con la CLI, por lo que no hay lista que mantener actualizada. Consulte [Disponibilidad y limitaciones](/es/claude-apps-gateway#availability-and-limitations) para el pequeño conjunto de características que se comportan de manera diferente en una sesión de puerta de enlace.49Debido a que se construye y prueba junto con cada versión de Claude Code, reenvía los encabezados y campos de solicitud que Claude Code envía. Una puerta de enlace mantenida por separado necesita que sus [reglas de reenvío se actualicen](/es/llm-gateway-protocol#forward-as-open-lists) a medida que esos encabezados y campos cambian con cada versión; la puerta de enlace de aplicaciones Claude se lanza con la CLI, por lo que no hay lista que mantener actualizada. Consulte [Disponibilidad y limitaciones](/es/claude-apps-gateway#availability-and-limitations) para el pequeño conjunto de características que se comportan de manera diferente en una sesión de puerta de enlace.

50 50 

hooks.md +82 −44

Details

16 Ciclo de vida de los hooks16 Ciclo de vida de los hooks

17</h2>17</h2>

18 18 

19Los hooks se activan en puntos específicos durante una sesión de Claude Code. Cuando se activa un evento y un matcher coincide, Claude Code pasa contexto JSON sobre el evento a su controlador de hook. Para hooks de comando, la entrada llega en stdin. Para hooks HTTP, llega como el cuerpo de la solicitud POST. Su controlador puede entonces inspeccionar la entrada, tomar medidas y opcionalmente devolver una decisión. Los eventos se dividen en tres cadencias: una vez por sesión (`SessionStart`, `SessionEnd`), una vez por turno (`UserPromptSubmit`, `Stop`, `StopFailure`) y en cada llamada a herramienta dentro del bucle agentico (`PreToolUse`, `PostToolUse`):19Los hooks se activan en puntos específicos durante una sesión de Claude Code. Cuando se activa un evento y un matcher coincide, Claude Code pasa contexto JSON sobre el evento a su controlador de hook. Para hooks de comando, la entrada llega en stdin. Para hooks HTTP, llega como el cuerpo de la solicitud POST. Su controlador puede entonces inspeccionar la entrada, tomar medidas y opcionalmente devolver una decisión.

20 

21Los eventos se dividen en tres cadencias:

22 

23* una vez por sesión: `SessionStart` y `SessionEnd`

24* una vez por turno: `UserPromptSubmit`, `Stop` y `StopFailure`

25* en cada llamada a herramienta dentro del bucle agentico: `PreToolUse` y `PostToolUse`

20 26 

21<div style={{maxWidth: "500px", margin: "0 auto"}}>27<div style={{maxWidth: "500px", margin: "0 auto"}}>

22 <Frame>28 <Frame>


182| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |188| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |

183| [Skill](/es/skills) o [agent](/es/sub-agents) frontmatter | Mientras el componente está activo | Sí, definido en el archivo del componente |189| [Skill](/es/skills) o [agent](/es/sub-agents) frontmatter | Mientras el componente está activo | Sí, definido en el archivo del componente |

184 190 

185Para obtener detalles sobre la resolución de archivos de configuración, consulte [settings](/es/settings). Los administradores empresariales pueden usar `allowManagedHooksOnly` para bloquear hooks de usuario, proyecto y plugin. Los hooks de plugins habilitados forzosamente en la configuración administrada `enabledPlugins` están exentos, por lo que los administradores pueden distribuir hooks verificados a través de un mercado de la organización. Consulte [Hook configuration](/es/settings#hook-configuration).191Para obtener detalles sobre la resolución de archivos de configuración, consulte [settings](/es/settings).

192 

193Los administradores empresariales pueden usar `allowManagedHooksOnly` para bloquear hooks de usuario, proyecto y plugin. Los hooks de plugins habilitados forzosamente en la configuración administrada `enabledPlugins` están exentos, por lo que los administradores pueden distribuir hooks verificados a través de un mercado de la organización. Consulte [Hook configuration](/es/settings#hook-configuration).

186 194 

187<h3 id="matcher-patterns">195<h3 id="matcher-patterns">

188 Patrones de matcher196 Patrones de matcher


214| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact` |222| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact` |

215| `Setup` | qué bandera CLI desencadenó la configuración | `init`, `maintenance` |223| `Setup` | qué bandera CLI desencadenó la configuración | `init`, `maintenance` |

216| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |224| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

217| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |225| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |

218| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nombres de agentes personalizados, o nombres con alcance de plugin como `^my-plugin:reviewer$` |226| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, nombres de agentes personalizados, o nombres con alcance de plugin como `^my-plugin:reviewer$` |

219| `PreCompact`, `PostCompact` | qué desencadenó la compactación | `manual`, `auto` |227| `PreCompact`, `PostCompact` | qué desencadenó la compactación | `manual`, `auto` |

220| `SubagentStop` | tipo de agente | los mismos valores que `SubagentStart` |228| `SubagentStop` | tipo de agente | los mismos valores que `SubagentStart` |


317 325 

318Todos los hooks coincidentes se ejecutan en paralelo, y los controladores idénticos se deduplicarán automáticamente. Los hooks de comando se deduplicarán por cadena de comando y `args`, y los hooks HTTP se deduplicarán por URL.326Todos los hooks coincidentes se ejecutan en paralelo, y los controladores idénticos se deduplicarán automáticamente. Los hooks de comando se deduplicarán por cadena de comando y `args`, y los hooks HTTP se deduplicarán por URL.

319 327 

320Los controladores se ejecutan en el directorio actual con el entorno de Claude Code. La variable de entorno `$CLAUDE_CODE_REMOTE` se establece en `"true"` en entornos web remotos y no se establece en la CLI local.328Los controladores se ejecutan en el directorio actual con el entorno de Claude Code. La variable de entorno `$CLAUDE_CODE_REMOTE` se establece en `"true"` en entornos web remotos y no se establece en la CLI local. {/* min-version: 2.1.199 */}A partir de v2.1.199, [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/es/env-vars) se establece en el ID de sesión de [Remote Control](/es/remote-control) mientras la sesión local tiene una conexión Remote Control activa.

321 329 

322<h4 id="common-fields">330<h4 id="common-fields">

323 Campos comunes331 Campos comunes


704El 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 prevenirse.712El 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 prevenirse.

705 713 

706| Evento de hook | ¿Puede bloquear? | Qué sucede en exit 2 |714| Evento de hook | ¿Puede bloquear? | Qué sucede en exit 2 |

707| :-------------------- | :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |715| :-------------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |

708| `PreToolUse` | Sí | Bloquea la llamada a herramienta |716| `PreToolUse` | Sí | Bloquea la llamada a herramienta |

709| `PermissionRequest` | Sí | Deniega el permiso |717| `PermissionRequest` | Sí | Deniega el permiso |

710| `UserPromptSubmit` | Sí | Bloquea el procesamiento del prompt y borra el prompt |718| `UserPromptSubmit` | Sí | Bloquea el procesamiento del prompt y borra el prompt |

711| `UserPromptExpansion` | Sí | Bloquea la expansión |719| `UserPromptExpansion` | Sí | Bloquea la expansión |

712| `Stop` | Sí | Evita que Claude se detenga, continúa la conversación |720| `Stop` | Sí | Evita que Claude se detenga, continúa la conversación |

713| `SubagentStop` | Sí | Evita que el subagente se detenga |721| `SubagentStop` | Sí | Evita que el subagente se detenga |

714| `TeammateIdle` | Sí | Evita que el compañero se quede inactivo (el compañero continúa trabajando) |722| `TeammateIdle` | Sí | Evita que el compañero se quede inactivo, por lo que continúa trabajando |

715| `TaskCreated` | Sí | Revierte la creación de la tarea |723| `TaskCreated` | Sí | Revierte la creación de la tarea |

716| `TaskCompleted` | Sí | Evita que la tarea se marque como completada |724| `TaskCompleted` | Sí | Evita que la tarea se marque como completada |

717| `ConfigChange` | Sí | Bloquea que el cambio de configuración tenga efecto (excepto `policy_settings`) |725| `ConfigChange` | Sí | Bloquea que el cambio de configuración tenga efecto (excepto `policy_settings`) |

718| `StopFailure` | No | La salida y el código de salida se ignoran |726| `StopFailure` | No | La salida y el código de salida se ignoran |

719| `PostToolUse` | No | Muestra stderr a Claude (la herramienta ya se ejecutó) |727| `PostToolUse` | No | Muestra stderr a Claude; la herramienta ya se ejecutó |

720| `PostToolUseFailure` | No | Muestra stderr a Claude (la herramienta ya falló) |728| `PostToolUseFailure` | No | Muestra stderr a Claude; la herramienta ya falló |

721| `PostToolBatch` | Sí | Detiene el bucle agentico antes de la siguiente llamada al modelo |729| `PostToolBatch` | Sí | Detiene el bucle agentico antes de la siguiente llamada al modelo |

722| `PermissionDenied` | No | El código de salida y stderr se ignoran (la denegación ya ocurrió). Use JSON `hookSpecificOutput.retry: true` para decirle al modelo que puede reintentar |730| `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 |

723| `Notification` | No | Muestra stderr solo al usuario |731| `Notification` | No | Muestra stderr solo al usuario |

724| `SubagentStart` | No | Muestra stderr solo al usuario |732| `SubagentStart` | No | Muestra stderr solo al usuario |

725| `SessionStart` | No | Muestra stderr solo al usuario |733| `SessionStart` | No | Muestra stderr solo al usuario |


736| `InstructionsLoaded` | No | El código de salida se ignora |744| `InstructionsLoaded` | No | El código de salida se ignora |

737| `MessageDisplay` | No | Se muestra el texto original |745| `MessageDisplay` | No | Se muestra el texto original |

738 746 

747Para `SessionStart`, `Setup` y `SubagentStart`, el stderr del código de salida 2 se renderiza en la transcripción como un aviso `<hook name> hook error`, de la misma manera que 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.

748 

749A partir de Claude Code v2.1.199, `SessionStart`, `Setup` y `SubagentStart` muestran stderr del código de salida 2 en la transcripción. Las versiones anteriores lo escribían solo en el registro de depuración.

750 

739<h3 id="http-response-handling">751<h3 id="http-response-handling">

740 Manejo de respuesta HTTP752 Manejo de respuesta HTTP

741</h3>753</h3>


963 Entrada de SessionStart975 Entrada de SessionStart

964</h4>976</h4>

965 977 

966Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionStart reciben `source` y opcionalmente `model`, `agent_type` y `session_title`. El campo `source` indica cómo comenzó la sesión: `"startup"` para nuevas sesiones, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear` o `"compact"` después de compactación. El campo `model` contiene el identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando se restaura una sesión a través de recuperación de conversación, así que verifique el campo antes de leerlo. Si inicia Claude Code con `claude --agent <name>`, un campo `agent_type` contiene el nombre del agente. El campo `session_title` lleva el título de sesión actual si ya está establecido, por ejemplo a través de `--name` o `/rename`. Un hook que emite `sessionTitle` puede verificar `session_title` primero para evitar sobrescribir un título que el usuario estableció explícitamente.978Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionStart reciben `source` y opcionalmente `model`, `agent_type` y `session_title`:

979 

980| Campo | Descripción |

981| :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

982| `source` | Cómo comenzó la sesión: `"startup"` para nuevas sesiones, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear` o `"compact"` después de compactación |

983| `model` | El identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando se restaura una sesión a través de recuperación de conversación, así que verifique el campo antes de leerlo |

984| `agent_type` | El nombre del agente, presente cuando inicia Claude Code con `claude --agent <name>` |

985| `session_title` | El título de sesión actual si ya está establecido, por ejemplo a través de `--name` o `/rename`. Un hook que emite `sessionTitle` puede verificar `session_title` primero para evitar sobrescribir un título que el usuario estableció explícitamente |

967 986 

968```json theme={null}987```json theme={null}

969{988{


983Cualquier texto que su script de hook imprima en stdout se agrega como contexto para Claude. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver estos campos específicos del evento:1002Cualquier texto que su script de hook imprima en stdout se agrega como contexto para Claude. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver estos campos específicos del evento:

984 1003 

985| Campo | Descripción |1004| Campo | Descripción |

986| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1005| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

987| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulte [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué poner en él |1006| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulte [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué poner en él |

988| `initialUserMessage` | Cadena utilizada como el primer mensaje de usuario de la sesión. Se aplica en [modo no interactivo](/es/headless) (`-p`), donde se convierte en el primer turno incluso si no se proporciona ningún prompt. Si se proporciona un prompt, sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, esto crea el turno |1007| `initialUserMessage` | Cadena utilizada como el primer mensaje de usuario de la sesión. Se aplica en [modo no interactivo](/es/headless) con la bandera `-p`, donde se convierte en el primer turno incluso si no se proporciona ningún prompt. Si se proporciona un prompt, sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, esto crea el turno |

989| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Use para nombrar sesiones automáticamente desde la carpeta de lanzamiento, rama de git o nombre de worktree. Se aplica solo cuando `source` es `"startup"` o `"resume"`; se ignora en `"clear"` y `"compact"` |1008| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Use para nombrar sesiones automáticamente desde la carpeta de lanzamiento, rama de git o nombre de worktree. Se aplica solo cuando `source` es `"startup"` o `"resume"`; se ignora en `"clear"` y `"compact"` |

990| `watchPaths` | Array de rutas absolutas para monitorear eventos [FileChanged](#filechanged) durante esta sesión |1009| `watchPaths` | Array de rutas absolutas para monitorear eventos [FileChanged](#filechanged) durante esta sesión |

991| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a escanear los directorios [skill](/es/skills) y de comandos después de que se completen los hooks SessionStart, por lo que las skills que instaló el hook están disponibles en la misma sesión, comenzando con el primer prompt |1010| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a escanear los directorios [skill](/es/skills) y de comandos después de que se completen los hooks SessionStart, por lo que las skills que instaló el hook están disponibles en la misma sesión, comenzando con el primer prompt |


1062 Setup1081 Setup

1063</h3>1082</h3>

1064 1083 

1065Se activa solo cuando inicia Claude Code con `--init-only`, o con `--init` o `--maintenance` en modo de impresión (`-p`). No se activa en el inicio normal. Úselo para instalación de dependencias única o limpieza programada que desencadena explícitamente desde CI o scripts, separado del inicio de sesión normal. Para inicialización por sesión, use [SessionStart](#sessionstart) en su lugar.1084Se activa solo cuando inicia Claude Code con `--init-only`, o con `--init` o `--maintenance` en [modo no interactivo](/es/headless) con la bandera `-p`. No se activa en el inicio normal. Úselo para instalación de dependencias única o limpieza programada que desencadena explícitamente desde CI o scripts, separado del inicio de sesión normal. Para inicialización por sesión, use [SessionStart](#sessionstart) en su lugar.

1066 1085 

1067El valor del matcher corresponde a la bandera CLI que desencadenó el hook:1086El valor del matcher corresponde a la bandera CLI que desencadenó el hook:

1068 1087 


1071| `init` | `claude --init-only` o `claude -p --init` |1090| `init` | `claude --init-only` o `claude -p --init` |

1072| `maintenance` | `claude -p --maintenance` |1091| `maintenance` | `claude -p --maintenance` |

1073 1092 

1074`--init-only` ejecuta hooks Setup y hooks SessionStart con el matcher `startup`, luego sale sin iniciar una conversación. `--init` y `--maintenance` activan hooks Setup solo cuando se combinan con `-p` (modo de impresión); en una sesión interactiva esas dos banderas actualmente no activan hooks Setup.1093`--init-only` ejecuta hooks Setup y hooks SessionStart con el matcher `startup`, luego sale sin iniciar una conversación. `--init` y `--maintenance` activan hooks Setup solo cuando se combinan con `-p`; en una sesión interactiva esas dos banderas actualmente no activan hooks Setup.

1075 1094 

1076Debido a que Setup no se activa en cada lanzamiento, un plugin que necesita una dependencia instalada no puede confiar solo en Setup. El patrón práctico es verificar la dependencia en el primer uso e instalar si falta, por ejemplo un hook o skill que pruebe `${CLAUDE_PLUGIN_DATA}/node_modules` y ejecute `npm install` si está ausente. Consulte el [directorio de datos persistentes](/es/plugins-reference#persistent-data-directory) para saber dónde almacenar dependencias instaladas.1095Debido a que Setup no se activa en cada lanzamiento, un plugin que necesita una dependencia instalada no puede confiar solo en Setup. El patrón práctico es verificar la dependencia en el primer uso e instalar si falta, por ejemplo un hook o skill que pruebe `${CLAUDE_PLUGIN_DATA}/node_modules` y ejecute `npm install` si está ausente. Consulte el [directorio de datos persistentes](/es/plugins-reference#persistent-data-directory) para saber dónde almacenar dependencias instaladas.

1077 1096 


1095 Control de decisión de Setup1114 Control de decisión de Setup

1096</h4>1115</h4>

1097 1116 

1098Los hooks Setup no pueden bloquear. En código de salida 2, stderr se muestra al usuario; en cualquier otro código de salida distinto de cero, stderr aparece solo cuando inicia con `--verbose`. En ambos casos la ejecución continúa. Para pasar información al contexto de Claude, devuelva `additionalContext` en salida JSON; el stdout plano se escribe solo en el registro de depuración. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver estos campos específicos del evento:1117Los hooks Setup no pueden bloquear. Cualquier código de salida distinto de cero, incluyendo 2, muestra stderr al usuario como un aviso de `<hook name> hook error`, y la ejecución continúa. En [modo no interactivo](/es/headless), la salida del hook aparece solo cuando inicia con `--verbose`.

1118 

1119Para pasar información al contexto de Claude, devuelva `additionalContext` en salida JSON; el stdout plano se escribe solo en el registro de depuración. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver estos campos específicos del evento:

1099 1120 

1100| Campo | Descripción |1121| Campo | Descripción |

1101| :------------------ | :---------------------------------------------------------------------------------- |1122| :------------------ | :---------------------------------------------------------------------------------- |


1191* **Stdout de texto plano**: cualquier texto que no sea JSON escrito en stdout se agrega como contexto1212* **Stdout de texto plano**: cualquier texto que no sea JSON escrito en stdout se agrega como contexto

1192* **JSON con `additionalContext`**: use el formato JSON a continuación para más control. El campo `additionalContext` se agrega como contexto1213* **JSON con `additionalContext`**: use el formato JSON a continuación para más control. El campo `additionalContext` se agrega como contexto

1193 1214 

1194El stdout plano se muestra como salida de hook en la transcripción. El campo `additionalContext` se agrega de forma más discreta.1215El stdout plano se muestra como salida de hook en la transcripción. El valor de `additionalContext` se inyecta como un recordatorio del sistema que Claude lee sin una entrada de transcripción visible.

1195 1216 

1196Para bloquear un prompt, devuelva un objeto JSON con `decision` establecido en `"block"`:1217Para bloquear un prompt, devuelva un objeto JSON con `decision` establecido en `"block"`:

1197 1218 


1215}1236}

1216```1237```

1217 1238 

1218<Note>

1219 El formato JSON no es necesario para casos de uso simples. Para agregar contexto, puede imprimir texto plano en stdout con código de salida 0. Use JSON cuando necesite bloquear prompts o desee un control más estructurado.

1220</Note>

1221 

1222<h3 id="userpromptexpansion">1239<h3 id="userpromptexpansion">

1223 UserPromptExpansion1240 UserPromptExpansion

1224</h3>1241</h3>


1545En `PostToolUse`, `tool_response` para una llamada Agent completada lleva el texto final del subagente junto con telemetría de uso. Lea estos campos para registrar el costo por subagente desde un hook:1562En `PostToolUse`, `tool_response` para una llamada Agent completada lleva el texto final del subagente junto con telemetría de uso. Lea estos campos para registrar el costo por subagente desde un hook:

1546 1563 

1547| Campo | Tipo | Ejemplo | Descripción |1564| Campo | Tipo | Ejemplo | Descripción |

1548| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |1565| :------------------ | :----- | :---------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1549| `status` | string | `"completed"` | `"completed"` para llamadas sincrónicas, `"async_launched"` para `run_in_background: true` |1566| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. {/* min-version: 2.1.198 */}A partir de v2.1.198, los subagentes se ejecutan en segundo plano por defecto, por lo que un `run_in_background` omitido también produce `"async_launched"` |

1550| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para la ejecución del subagente |1567| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para la ejecución del subagente |

1551| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente |1568| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente |

1552| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo en el que se ejecutó el subagente, que puede diferir del modelo solicitado. {/* min-version: 2.1.174 */}Requiere Claude Code v2.1.174 o posterior |1569| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo en el que se ejecutó el subagente, que puede diferir del modelo solicitado. {/* min-version: 2.1.174 */}Requiere Claude Code v2.1.174 o posterior |


1555| `totalToolUseCount` | number | `7` | Recuento de llamadas a herramientas que hizo el subagente |1572| `totalToolUseCount` | number | `7` | Recuento de llamadas a herramientas que hizo el subagente |

1556| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1573| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1557 1574 

1558Para llamadas `run_in_background: true`, la herramienta regresa inmediatamente después de lanzar el subagente, por lo que `tool_response` no lleva campos de uso. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.1575Para subagentes en segundo plano, la herramienta regresa inmediatamente después de lanzar, por lo que `tool_response` no lleva campos de uso. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` y `resolvedModel`.

1559 1576 

1560El campo `resolvedModel` nombra el modelo en el que se ejecuta realmente el subagente, que puede diferir del valor `model` en `tool_input`, como cuando `availableModels` u otra anulación se aplica. Requiere Claude Code v2.1.174 o posterior.1577El campo `resolvedModel` nombra el modelo en el que se ejecuta realmente el subagente, que puede diferir del valor `model` en `tool_input`, como cuando `availableModels` u otra anulación se aplica. Requiere Claude Code v2.1.174 o posterior.

1561 1578 


1593Los hooks `PreToolUse` pueden controlar si procede una llamada a herramienta. 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 control más rico: cuatro resultados (permitir, denegar, preguntar o diferir) más la capacidad de modificar la entrada de la herramienta antes de la ejecución.1610Los hooks `PreToolUse` pueden controlar si procede una llamada a herramienta. 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 control más rico: cuatro resultados (permitir, denegar, preguntar o diferir) más la capacidad de modificar la entrada de la herramienta antes de la ejecución.

1594 1611 

1595| Campo | Descripción |1612| Campo | Descripción |

1596| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1613| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1597| `permissionDecision` | `"allow"` omite el sistema de permisos. `"deny"` evita la llamada a herramienta. `"ask"` solicita al usuario que confirme. `"defer"` sale correctamente para que la herramienta pueda reanudarse más tarde. Las reglas [Deny and ask](/es/permissions#manage-permissions) aún se evalúan independientemente de lo que devuelva el hook |1614| `permissionDecision` | `"allow"` omite el sistema de permisos, excepto para [herramientas que requieren interacción del usuario](#pretooluse-decision-control). `"deny"` evita la llamada a herramienta. `"ask"` solicita al usuario que confirme. `"defer"` sale correctamente para que la herramienta pueda reanudarse más tarde. Las reglas [Deny and ask](/es/permissions#manage-permissions) aún se evalúan independientemente de lo que devuelva el hook |

1598| `permissionDecisionReason` | Para `"allow"` y `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"defer"`, se ignora |1615| `permissionDecisionReason` | Para `"allow"` y `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"defer"`, se ignora |

1599| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluya campos sin cambios junto con los modificados. Combinar con `"allow"` para aprobación automática, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |1616| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluya campos sin cambios junto con los modificados. Combinar con `"allow"` para aprobación automática, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |

1600| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Ignorado cuando `permissionDecision` es `"defer"`. Consulte [Agregar contexto para Claude](#add-context-for-claude) |1617| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Ignorado cuando `permissionDecision` es `"defer"`. Consulte [Agregar contexto para Claude](#add-context-for-claude) |


1619 1636 

1620`AskUserQuestion` y `ExitPlanMode` requieren interacción del usuario y normalmente se bloquean en [modo no interactivo](/es/headless) con la bandera `-p`. Devolver `permissionDecision: "allow"` junto con `updatedInput` satisface ese requisito: el hook lee la entrada de la herramienta desde stdin, recopila la respuesta a través de su propia interfaz de usuario y la devuelve en `updatedInput` para que la herramienta se ejecute sin solicitar. Devolver `"allow"` solo no es suficiente para estas herramientas. Para `AskUserQuestion`, repita el array `questions` original y agregue un objeto [`answers`](#askuserquestion) que asigne el texto de cada pregunta a la respuesta elegida.1637`AskUserQuestion` y `ExitPlanMode` requieren interacción del usuario y normalmente se bloquean en [modo no interactivo](/es/headless) con la bandera `-p`. Devolver `permissionDecision: "allow"` junto con `updatedInput` satisface ese requisito: el hook lee la entrada de la herramienta desde stdin, recopila la respuesta a través de su propia interfaz de usuario y la devuelve en `updatedInput` para que la herramienta se ejecute sin solicitar. Devolver `"allow"` solo no es suficiente para estas herramientas. Para `AskUserQuestion`, repita el array `questions` original y agregue un objeto [`answers`](#askuserquestion) que asigne el texto de cada pregunta a la respuesta elegida.

1621 1638 

1639A partir de v2.1.199, una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/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.

1640 

1622<Note>1641<Note>

1623 PreToolUse anteriormente usaba campos `decision` y `reason` de nivel superior, pero estos están deprecados para este evento. Use `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores deprecados `"approve"` y `"block"` se asignan a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop continúan usando `decision` y `reason` de nivel superior como su formato actual.1642 PreToolUse anteriormente usaba campos `decision` y `reason` de nivel superior, pero estos están deprecados para este evento. Use `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores deprecados `"approve"` y `"block"` se asignan a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop continúan usando `decision` y `reason` de nivel superior como su formato actual.

1624</Note>1643</Note>


2016 Notification2035 Notification

2017</h3>2036</h3>

2018 2037 

2019Se ejecuta cuando Claude Code envía notificaciones. Coincide en el tipo de notificación: `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`. Omita el matcher para ejecutar hooks para todos los tipos de notificación.2038Se ejecuta cuando Claude Code envía notificaciones. Coincide en el tipo de notificación. Omita el matcher para ejecutar hooks para todos los tipos de notificación.

2039 

2040| Matcher | Cuándo se activa |

2041| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |

2042| `permission_prompt` | Claude necesita que apruebe un uso de herramienta |

2043| `idle_prompt` | Claude está hecho y esperando su siguiente prompt |

2044| `auth_success` | La autenticación se completa |

2045| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación |

2046| `elicitation_complete` | Un formulario de elicitación MCP se envía o se descarta |

2047| `elicitation_response` | Una respuesta de elicitación MCP se envía de vuelta al servidor |

2048| `agent_needs_input` | Una sesión en segundo plano comienza a esperar su entrada. Se activa solo mientras [agent view](/es/agent-view) está abierto en una terminal |

2049| `agent_completed` | Una sesión en segundo plano termina o falla. Se activa solo mientras [agent view](/es/agent-view) está abierto en una terminal |

2050 

2051Los tipos `agent_needs_input` y `agent_completed` requieren Claude Code v2.1.198 o posterior.

2020 2052 

2021Use matchers separados para ejecutar diferentes controladores dependiendo del tipo de notificación. Esta configuración desencadena un script de alerta específico de permiso cuando Claude necesita aprobación de permiso y una notificación diferente cuando Claude ha estado inactivo:2053Use matchers separados para ejecutar diferentes controladores dependiendo del tipo de notificación. Esta configuración desencadena un script de alerta específico de permiso cuando Claude necesita aprobación de permiso y una notificación diferente cuando Claude ha estado inactivo:

2022 2054 


2079 Entrada de SubagentStart2111 Entrada de SubagentStart

2080</h4>2112</h4>

2081 2113 

2082Además de los [campos de entrada comunes](#common-input-fields), los hooks SubagentStart reciben `agent_id` con el identificador único para el subagente y `agent_type` con el nombre del agente (agentes integrados como `"general-purpose"`, `"Explore"`, `"Plan"` o nombres de agentes personalizados).2114Además de los [campos de entrada comunes](#common-input-fields), los hooks SubagentStart reciben `agent_id` con el identificador único para el subagente y `agent_type` con el nombre del agente que el matcher filtra.

2083 2115 

2084```json theme={null}2116```json theme={null}

2085{2117{


2561Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, los hooks CwdChanged pueden devolver `watchPaths` para establecer dinámicamente qué rutas de archivo [FileChanged](#filechanged) monitorea:2593Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, los hooks CwdChanged pueden devolver `watchPaths` para establecer dinámicamente qué rutas de archivo [FileChanged](#filechanged) monitorea:

2562 2594 

2563| Campo | Descripción |2595| Campo | Descripción |

2564| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2596| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2565| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de monitoreo dinámica actual (las rutas de su configuración de `matcher` siempre se monitorean). Devolver un array vacío borra la lista dinámica, que es típico al entrar en un nuevo directorio |2597| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de monitoreo dinámica actual. Las rutas de su configuración de `matcher` siempre se monitorean. Devolver un array vacío borra la lista dinámica, que es típico al entrar en un nuevo directorio |

2566 2598 

2567Los hooks CwdChanged no tienen control de decisión. No pueden bloquear el cambio de directorio.2599Los hooks CwdChanged no tienen control de decisión. No pueden bloquear el cambio de directorio.

2568 2600 


2586Además de los [campos de entrada comunes](#common-input-fields), los hooks FileChanged reciben `file_path` y `event`.2618Además de los [campos de entrada comunes](#common-input-fields), los hooks FileChanged reciben `file_path` y `event`.

2587 2619 

2588| Campo | Descripción |2620| Campo | Descripción |

2589| :---------- | :------------------------------------------------------------------------------------------------------ |2621| :---------- | :------------------------------------------------------------------------------------------------------------------------ |

2590| `file_path` | Ruta absoluta al archivo que cambió |2622| `file_path` | Ruta absoluta al archivo que cambió |

2591| `event` | Qué sucedió: `"change"` (archivo modificado), `"add"` (archivo creado) o `"unlink"` (archivo eliminado) |2623| `event` | Qué sucedió: `"change"` para un archivo modificado, `"add"` para un archivo creado o `"unlink"` para un archivo eliminado |

2592 2624 

2593```json theme={null}2625```json theme={null}

2594{2626{


2608Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, los hooks FileChanged pueden devolver `watchPaths` para actualizar dinámicamente qué rutas de archivo se monitorean:2640Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, los hooks FileChanged pueden devolver `watchPaths` para actualizar dinámicamente qué rutas de archivo se monitorean:

2609 2641 

2610| Campo | Descripción |2642| Campo | Descripción |

2611| :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2643| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2612| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de monitoreo dinámica actual (las rutas de su configuración de `matcher` siempre se monitorean). Use esto cuando su script de hook descubra archivos adicionales para monitorear basados en el archivo cambiado |2644| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de monitoreo dinámica actual. Las rutas de su configuración de `matcher` siempre se monitorean. Use esto cuando su script de hook descubra archivos adicionales para monitorear basados en el archivo cambiado |

2613 2645 

2614Los hooks FileChanged no tienen control de decisión. No pueden bloquear el cambio de archivo.2646Los hooks FileChanged no tienen control de decisión. No pueden bloquear el cambio de archivo.

2615 2647 


2617 WorktreeCreate2649 WorktreeCreate

2618</h3>2650</h3>

2619 2651 

2620Cuando ejecuta `claude --worktree` o un [subagente usa `isolation: "worktree"`](/es/sub-agents#choose-the-subagent-scope), Claude Code crea una copia de trabajo aislada usando `git worktree`. Si configura un hook WorktreeCreate, reemplaza el comportamiento predeterminado de git, permitiéndole usar un sistema de control de versiones diferente como SVN, Perforce o Mercurial.2652Se ejecuta cuando se está creando un worktree, ya sea desde `claude --worktree` o desde un [subagente usando `isolation: "worktree"`](/es/sub-agents#choose-the-subagent-scope). Por defecto Claude Code crea la copia de trabajo aislada con `git worktree`. Configurar un hook WorktreeCreate reemplaza ese comportamiento predeterminado de git, permitiéndole usar un sistema de control de versiones diferente como SVN, Perforce o Mercurial.

2621 2653 

2622Debido a que el hook reemplaza el comportamiento predeterminado completamente, [`.worktreeinclude`](/es/worktrees#copy-gitignored-files-into-worktrees) no se procesa. Si necesita copiar archivos de configuración local como `.env` en el nuevo worktree, hágalo dentro de su script de hook.2654Debido a que el hook reemplaza el comportamiento predeterminado completamente, [`.worktreeinclude`](/es/worktrees#copy-gitignored-files-into-worktrees) no se procesa. Si necesita copiar archivos de configuración local como `.env` en el nuevo worktree, hágalo dentro de su script de hook.

2623 2655 


2648 Entrada de WorktreeCreate2680 Entrada de WorktreeCreate

2649</h4>2681</h4>

2650 2682 

2651Además de los [campos de entrada comunes](#common-input-fields), los hooks WorktreeCreate reciben el campo `name`. Este es un identificador slug para el nuevo worktree, especificado por el usuario o generado automáticamente (por ejemplo, `bold-oak-a3f2`).2683Además de los [campos de entrada comunes](#common-input-fields), los hooks WorktreeCreate reciben el campo `name`. Este es un identificador slug para el nuevo worktree, especificado por el usuario o generado automáticamente, por ejemplo `bold-oak-a3f2`.

2652 2684 

2653```json theme={null}2685```json theme={null}

2654{2686{


2675 WorktreeRemove2707 WorktreeRemove

2676</h3>2708</h3>

2677 2709 

2678La contraparte de limpieza de [WorktreeCreate](#worktreecreate). Este hook se activa cuando se está eliminando un worktree, ya sea cuando sale de una sesión `--worktree` y elige eliminarlo, o cuando un subagente con `isolation: "worktree"` finaliza. Para worktrees basados en git, Claude maneja la limpieza automáticamente con `git worktree remove`. Si configuró un hook WorktreeCreate para un sistema de control de versiones que no es git, emparéjelo con un hook WorktreeRemove para manejar la limpieza. Sin uno, el directorio de worktree se deja en el disco.2710Se ejecuta cuando se está eliminando un worktree, ya sea cuando sale de una sesión `--worktree` y elige eliminarlo, o cuando un subagente con `isolation: "worktree"` finaliza. Esta es la contraparte de limpieza de [WorktreeCreate](#worktreecreate).

2711 

2712Para worktrees basados en git, Claude Code maneja la limpieza automáticamente con `git worktree remove`. Si configuró un hook WorktreeCreate para un sistema de control de versiones que no es git, emparéjelo con un hook WorktreeRemove para manejar la limpieza. Sin uno, el directorio de worktree se deja en el disco.

2679 2713 

2680Claude Code pasa la ruta devuelta por WorktreeCreate como `worktree_path` en la entrada del hook. Este ejemplo lee esa ruta y elimina el directorio:2714Claude Code pasa la ruta devuelta por WorktreeCreate como `worktree_path` en la entrada del hook. Este ejemplo lee esa ruta y elimina el directorio:

2681 2715 


3064 3098 

3065Si necesita un control más fino en cualquier evento, use un [hook de comando](#command-hook-fields) con los campos por evento descritos en [Control de decisión](#decision-control).3099Si necesita un control más fino en cualquier evento, use un [hook de comando](#command-hook-fields) con los campos por evento descritos en [Control de decisión](#decision-control).

3066 3100 

3067<h3 id="example-multi-criteria-stop-hook">3101<h3 id="check-multiple-conditions-before-stopping">

3068 Ejemplo: Hook Stop de múltiples criterios3102 Verificar múltiples condiciones antes de detener

3069</h3>3103</h3>

3070 3104 

3071Este hook `Stop` usa un prompt detallado para verificar tres condiciones antes de permitir que Claude se detenga. Si `"ok"` es `false`, Claude continúa trabajando con la razón proporcionada como su siguiente instrucción. Los hooks `SubagentStop` usan el mismo formato para evaluar si un [subagente](/es/sub-agents) debe detenerse:3105Este hook `Stop` usa un prompt detallado para verificar tres condiciones antes de permitir que Claude se detenga. Los hooks `SubagentStop` usan el mismo formato para evaluar si un [subagente](/es/sub-agents) debe detenerse. Si `"ok"` es `false`, Claude continúa trabajando con la razón proporcionada como su siguiente instrucción:

3072 3106 

3073```json theme={null}3107```json theme={null}

3074{3108{


3192 3226 

3193Las notificaciones de finalización de hooks asincronos se suprimen por defecto. Para verlas, habilite el modo detallado con `Ctrl+O` o inicie Claude Code con `--verbose`.3227Las notificaciones de finalización de hooks asincronos se suprimen por defecto. Para verlas, habilite el modo detallado con `Ctrl+O` o inicie Claude Code con `--verbose`.

3194 3228 

3195<h3 id="example-run-tests-after-file-changes">3229<h3 id="run-tests-after-file-changes">

3196 Ejemplo: ejecutar pruebas después de cambios de archivo3230 Ejecutar pruebas después de cambios de archivo

3197</h3>3231</h3>

3198 3232 

3199Este hook inicia un conjunto de pruebas en segundo plano cada vez que Claude escribe un archivo, luego reporta los resultados a Claude cuando las pruebas finalizan. Guarde este script en `.claude/hooks/run-tests-async.sh` en su proyecto y hágalo ejecutable con `chmod +x`:3233Este hook inicia un conjunto de pruebas en segundo plano cada vez que Claude escribe un archivo, luego reporta los resultados a Claude cuando las pruebas finalizan. Guarde este script en `.claude/hooks/run-tests-async.sh` en su proyecto y hágalo ejecutable con `chmod +x`:


3287 Herramienta PowerShell en Windows3321 Herramienta PowerShell en Windows

3288</h2>3322</h2>

3289 3323 

3290En Windows, puede ejecutar hooks individuales en PowerShell estableciendo `"shell": "powershell"` en un hook de comando. Los hooks generan PowerShell directamente, por lo que esto funciona independientemente de si `CLAUDE_CODE_USE_POWERSHELL_TOOL` está establecido. Claude Code detecta automáticamente `pwsh.exe` (PowerShell 7+) con un respaldo a `powershell.exe` (5.1).3324En Windows, puede ejecutar hooks individuales en PowerShell estableciendo `"shell": "powershell"` en un hook de comando. Los hooks generan PowerShell directamente, por lo que esto funciona independientemente de si `CLAUDE_CODE_USE_POWERSHELL_TOOL` está establecido. Claude Code detecta automáticamente `pwsh.exe`, el ejecutable de PowerShell 7 y posterior, y recurre a `powershell.exe` para Windows PowerShell 5.1.

3291 3325 

3292```json theme={null}3326```json theme={null}

3293{3327{


3308}3342}

3309```3343```

3310 3344 

3311Para hacer referencia al directorio raíz del proyecto desde un comando de forma shell de PowerShell, léalo como una variable de entorno con `$env:CLAUDE_PROJECT_DIR`. PowerShell trata la forma desnuda `${CLAUDE_PROJECT_DIR}` como una variable local, no como una búsqueda de entorno, y Claude Code sustituye ese marcador de posición en forma shell solo para [hooks de plugins](#reference-scripts-by-path). Para un hook definido en `settings.json`, use la forma `$env:` o cambie a [forma exec](#exec-form-and-shell-form), donde `${CLAUDE_PROJECT_DIR}` se sustituye en cada elemento `args` independientemente de dónde se defina el hook.3345Para hacer referencia al directorio raíz del proyecto desde un comando de forma shell de PowerShell, escriba `${CLAUDE_PROJECT_DIR}` o `$env:CLAUDE_PROJECT_DIR`. A partir de v2.1.198, Claude Code reescribe los marcadores de posición `${CLAUDE_PROJECT_DIR}`, `${CLAUDE_PLUGIN_ROOT}` y `${CLAUDE_PLUGIN_DATA}` en un comando de forma shell de PowerShell a la forma `${env:NAME}` de PowerShell, ya sea que el hook esté definido en `settings.json`, un plugin o una skill. PowerShell luego resuelve el valor del entorno exportado después del análisis, por lo que el marcador de posición funciona dentro de cadenas entre comillas dobles pero no dentro de cadenas entre comillas simples, donde PowerShell nunca expande variables.

3346 

3347Antes de v2.1.198, esta reescritura se aplicaba solo a hooks de plugins. En versiones anteriores, un hook de `settings.json` necesita la forma `$env:` o [forma exec](#exec-form-and-shell-form), donde `${CLAUDE_PROJECT_DIR}` se sustituye en cada elemento `args` independientemente de dónde se defina el hook.

3348 

3349No escriba la ortografía desnuda `$CLAUDE_PROJECT_DIR` en un hook de PowerShell. PowerShell la analiza como una variable local indefinida y la resuelve a `$null`, lo que deja la ruta del script sin su prefijo de directorio raíz del proyecto. Claude Code no reescribe esa forma; en su lugar, registra una advertencia en el [registro de depuración](#debug-hooks).

3312 3350 

3313El ejemplo a continuación muestra un hook de `settings.json` que ejecuta un script del proyecto con la forma `$env:`:3351El ejemplo a continuación muestra un hook de `settings.json` que ejecuta un script del proyecto con la forma `$env:`, que funciona en todas las versiones:

3314 3352 

3315```json theme={null}3353```json theme={null}

3316{3354{

hooks-guide.md +34 −30

Details

87 87 

88Los hooks te permiten ejecutar código en puntos clave del ciclo de vida de Claude Code: formatear archivos después de ediciones, bloquear comandos antes de que se ejecuten, enviar notificaciones cuando Claude necesita entrada, inyectar contexto al inicio de la sesión, y más. Para la lista completa de eventos de hook, consulta la [referencia de Hooks](/es/hooks#hook-lifecycle).88Los hooks te permiten ejecutar código en puntos clave del ciclo de vida de Claude Code: formatear archivos después de ediciones, bloquear comandos antes de que se ejecuten, enviar notificaciones cuando Claude necesita entrada, inyectar contexto al inicio de la sesión, y más. Para la lista completa de eventos de hook, consulta la [referencia de Hooks](/es/hooks#hook-lifecycle).

89 89 

90Cada ejemplo incluye un bloque de configuración listo para usar que añades a un [archivo de configuración](#configure-hook-location). Los patrones más comunes:90Cada ejemplo incluye un bloque de configuración listo para usar que añades a un [archivo de configuración](#configure-hook-location).

91 

92* [Recibe notificaciones cuando Claude necesita entrada](#get-notified-when-claude-needs-input)

93* [Formatea automáticamente el código después de ediciones](#auto-format-code-after-edits)

94* [Bloquea ediciones a archivos protegidos](#block-edits-to-protected-files)

95* [Reinyecta contexto después de compactación](#re-inject-context-after-compaction)

96* [Audita cambios de configuración](#audit-configuration-changes)

97* [Recarga el entorno cuando el directorio o los archivos cambian](#reload-environment-when-directory-or-files-change)

98* [Aprueba automáticamente avisos de permiso específicos](#auto-approve-specific-permission-prompts)

99 91 

100Para un ejemplo de producción de hooks que ejecutan una revisión de modelo separada y alimentan los hallazgos de vuelta a la sesión, consulta [cómo el plugin `security-guidance` se integra con Claude Code](/es/security-guidance#how-the-plugin-integrates-with-claude-code).92Para un ejemplo de producción de hooks que ejecutan una revisión de modelo separada y alimentan los hallazgos de vuelta a la sesión, consulta [cómo el plugin `security-guidance` se integra con Claude Code](/es/security-guidance#how-the-plugin-integrates-with-claude-code).

101 93 


182El matcher vacío se activa en todos los tipos de notificación. Para activarse solo en eventos específicos, establécelo en uno de estos valores:174El matcher vacío se activa en todos los tipos de notificación. Para activarse solo en eventos específicos, establécelo en uno de estos valores:

183 175 

184| Matcher | Se activa cuando |176| Matcher | Se activa cuando |

185| :--------------------- | :----------------------------------------------------------------- |177| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |

186| `permission_prompt` | Claude necesita que apruebes un uso de herramienta |178| `permission_prompt` | Claude necesita que apruebes un uso de herramienta |

187| `idle_prompt` | Claude ha terminado y está esperando tu siguiente solicitud |179| `idle_prompt` | Claude ha terminado y está esperando tu siguiente solicitud |

188| `auth_success` | La autenticación se completa |180| `auth_success` | La autenticación se completa |

189| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación |181| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación |

190| `elicitation_complete` | Un formulario de elicitación de MCP se envía o se descarta |182| `elicitation_complete` | Un formulario de elicitación de MCP se envía o se descarta |

191| `elicitation_response` | Una respuesta de elicitación de MCP se envía de vuelta al servidor |183| `elicitation_response` | Una respuesta de elicitación de MCP se envía de vuelta al servidor |

184| `agent_needs_input` | Una sesión en segundo plano comienza a esperar tu entrada. Se activa solo mientras la [vista de agente](/es/agent-view) está abierta |

185| `agent_completed` | Una sesión en segundo plano se completa o falla. Se activa solo mientras la [vista de agente](/es/agent-view) está abierta |

186 

187Los matchers `agent_needs_input` y `agent_completed` requieren Claude Code v2.1.198 o posterior.

192 188 

193Escribe `/hooks` y selecciona `Notification` para confirmar que el hook está registrado. Para el esquema de evento completo, consulta la [referencia de Notification](/es/hooks#notification).189Escribe `/hooks` y selecciona `Notification` para confirmar que el hook está registrado. Para el esquema de evento completo, consulta la [referencia de Notification](/es/hooks#notification).

194 190 


198 194 

199Ejecuta automáticamente [Prettier](https://prettier.io/) en cada archivo que Claude edita, para que el formato se mantenga consistente sin intervención manual.195Ejecuta automáticamente [Prettier](https://prettier.io/) en cada archivo que Claude edita, para que el formato se mantenga consistente sin intervención manual.

200 196 

201Este hook usa el evento `PostToolUse` con un matcher `Edit|Write`, por lo que se ejecuta solo después de herramientas de edición de archivos. {/* min-version: 2.1.191 */}En Claude Code v2.1.191 o posterior también puedes escribir el matcher como `Edit,Write`, ya que `|` y `,` son separadores de lista intercambiables para matchers de nombre de herramienta en esas versiones. El comando extrae la ruta del archivo editado con [`jq`](https://jqlang.github.io/jq/) y la pasa a Prettier. Añade esto a `.claude/settings.json` en la raíz de tu proyecto:197Este hook usa el evento `PostToolUse` con un matcher `Edit|Write`, por lo que se ejecuta solo después de herramientas de edición de archivos. El comando extrae la ruta del archivo editado con [`jq`](https://jqlang.github.io/jq/) y la pasa a Prettier. Añade esto a `.claude/settings.json` en la raíz de tu proyecto:

202 198 

203```json theme={null}199```json theme={null}

204{200{


218}214}

219```215```

220 216 

217En Claude Code v2.1.191 o posterior también puedes escribir el matcher como `Edit,Write`, ya que `|` y `,` son separadores de lista intercambiables para matchers de nombre de herramienta en esas versiones.

218 

221<Note>219<Note>

222 Los ejemplos de Bash en esta página usan `jq` para análisis JSON. Instálalo con `brew install jq` (macOS), `apt-get install jq` (Debian/Ubuntu), o consulta [descargas de `jq`](https://jqlang.github.io/jq/download/).220 Los ejemplos de Bash en esta página usan `jq` para análisis JSON. Instálalo con `brew install jq` en macOS, `apt-get install jq` en Debian y Ubuntu, o consulta [descargas de `jq`](https://jqlang.github.io/jq/download/).

223</Note>221</Note>

224 222 

225<h3 id="block-edits-to-protected-files">223<h3 id="block-edits-to-protected-files">


254 ```252 ```

255 </Step>253 </Step>

256 254 

257 <Step title="Haz el script ejecutable (macOS/Linux)">255 <Step title="Haz el script ejecutable en macOS y Linux">

258 Los scripts de hook deben ser ejecutables para que Claude Code los ejecute:256 Los scripts de hook deben ser ejecutables para que Claude Code los ejecute:

259 257 

260 ```bash theme={null}258 ```bash theme={null}


378 376 

379Ejecuta `direnv allow` una vez en cada directorio que tenga un `.envrc` para que direnv tenga permiso de cargarlo. Si usas devbox o nix en lugar de direnv, el mismo patrón funciona con `devbox shellenv` o `devbox global shellenv` en lugar de `direnv export bash`.377Ejecuta `direnv allow` una vez en cada directorio que tenga un `.envrc` para que direnv tenga permiso de cargarlo. Si usas devbox o nix en lugar de direnv, el mismo patrón funciona con `devbox shellenv` o `devbox global shellenv` en lugar de `direnv export bash`.

380 378 

381Para reaccionar a archivos específicos en lugar de cada cambio de directorio, usa `FileChanged` con un `matcher` listando los nombres de archivo a observar, separados por `|`. Para construir la lista de observación, este valor se divide en nombres de archivo literales en lugar de evaluarse como una expresión regular. Consulta [FileChanged](/es/hooks#filechanged) para cómo el mismo valor también filtra qué grupos de hooks se ejecutan cuando un archivo cambia. Este ejemplo observa `.envrc` y `.env` en el directorio de trabajo:379Para reaccionar a archivos específicos en lugar de cada cambio de directorio, usa `FileChanged` con un `matcher` listando los nombres de archivo a observar, separados por `|`. Cuando construyas la lista de observación, Claude Code divide este valor en nombres de archivo literales en lugar de evaluarlo como una expresión regular. Consulta [FileChanged](/es/hooks#filechanged) para cómo el mismo valor también filtra qué grupos de hooks se ejecutan cuando un archivo cambia. Este ejemplo observa `.envrc` y `.env` en el directorio de trabajo:

382 380 

383```json theme={null}381```json theme={null}

384{382{


564 Salida del hook562 Salida del hook

565</h4>563</h4>

566 564 

567Tu script le dice a Claude Code qué hacer a continuación escribiendo en stdout o stderr y saliendo con un código específico. Por ejemplo, un hook `PreToolUse` que quiere bloquear un comando:565Tu script le dice a Claude Code qué hacer a continuación escribiendo en stdout o stderr y saliendo con un código específico. El siguiente hook `PreToolUse` bloquea un comando:

568 566 

569```bash theme={null}567```bash theme={null}

570#!/bin/bash568#!/bin/bash


619 617 

620Otros eventos usan patrones de decisión diferentes. Por ejemplo, los hooks `PostToolUse` y `Stop` usan un campo `decision: "block"` de nivel superior, mientras que `PermissionRequest` usa `hookSpecificOutput.decision.behavior`. Consulta la [tabla de resumen](/es/hooks#decision-control) en la referencia para un desglose completo por evento.618Otros eventos usan patrones de decisión diferentes. Por ejemplo, los hooks `PostToolUse` y `Stop` usan un campo `decision: "block"` de nivel superior, mientras que `PermissionRequest` usa `hookSpecificOutput.decision.behavior`. Consulta la [tabla de resumen](/es/hooks#decision-control) en la referencia para un desglose completo por evento.

621 619 

622Para hooks `UserPromptSubmit`, usa `additionalContext` en su lugar para inyectar texto en el contexto de Claude. Los hooks basados en prompts (`type: "prompt"`) manejan la salida de manera diferente: consulta [Prompt-based hooks](#prompt-based-hooks).620Para hooks `UserPromptSubmit`, usa `additionalContext` en su lugar para inyectar texto en el contexto de Claude.

621 

622Los hooks con `type: "prompt"` manejan la salida de manera diferente: consulta [Prompt-based hooks](#prompt-based-hooks).

623 623 

624<h3 id="filter-hooks-with-matchers">624<h3 id="filter-hooks-with-matchers">

625 Filtra hooks con matchers625 Filtra hooks con matchers

626</h3>626</h3>

627 627 

628Sin un matcher, un hook se activa en cada ocurrencia de su evento. Los matchers te permiten estrecharlo. Por ejemplo, si quieres ejecutar un formateador solo después de ediciones de archivos (no después de cada llamada a herramienta), añade un matcher a tu hook `PostToolUse`:628Sin un matcher, un hook se activa en cada ocurrencia de su evento. Los matchers te permiten estrecharlo. Por ejemplo, si quieres ejecutar un formateador solo después de ediciones de archivos, no después de cada llamada a herramienta, añade un matcher a tu hook `PostToolUse`:

629 629 

630```json theme={null}630```json theme={null}

631{631{


656| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact` |656| `SessionStart` | cómo comenzó la sesión | `startup`, `resume`, `clear`, `compact` |

657| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |657| `Setup` | qué bandera CLI activó la configuración | `init`, `maintenance` |

658| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |658| `SessionEnd` | por qué terminó la sesión | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

659| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |659| `Notification` | tipo de notificación | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |

660| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, o nombres de agentes personalizados |660| `SubagentStart` | tipo de agente | `general-purpose`, `Explore`, `Plan`, o nombres de agentes personalizados |

661| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |661| `PreCompact`, `PostCompact` | qué activó la compactación | `manual`, `auto` |

662| `SubagentStop` | tipo de agente | los mismos valores que `SubagentStart` |662| `SubagentStop` | tipo de agente | los mismos valores que `SubagentStart` |


669| `UserPromptExpansion` | nombre del comando | tus nombres de skill o comando |669| `UserPromptExpansion` | nombre del comando | tus nombres de skill o comando |

670| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | sin soporte de matcher | siempre se activa en cada ocurrencia |670| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | sin soporte de matcher | siempre se activa en cada ocurrencia |

671 671 

672Algunos ejemplos más mostrando matchers en diferentes tipos de eventos:672Las pestañas a continuación muestran algunos matchers más en diferentes tipos de eventos.

673 673 

674<Tabs>674<Tabs>

675 <Tab title="Registra cada comando Bash">675 <Tab title="Registra cada comando Bash">


753 753 

754El campo `if` usa [sintaxis de regla de permiso](/es/permissions) para filtrar hooks por nombre de herramienta y argumentos juntos, para que el proceso del hook solo se genere cuando la llamada a herramienta coincida. Esto va más allá de `matcher`, que filtra a nivel de grupo solo por nombre de herramienta.754El campo `if` usa [sintaxis de regla de permiso](/es/permissions) para filtrar hooks por nombre de herramienta y argumentos juntos, para que el proceso del hook solo se genere cuando la llamada a herramienta coincida. Esto va más allá de `matcher`, que filtra a nivel de grupo solo por nombre de herramienta.

755 755 

756Por ejemplo, para ejecutar un hook solo cuando Claude usa comandos `git` en lugar de todos los comandos Bash:756Por ejemplo, esta configuración ejecuta un hook solo cuando Claude usa comandos `git` en lugar de todos los comandos Bash:

757 757 

758```json theme={null}758```json theme={null}

759{759{


805| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |805| [Plugin](/es/plugins) `hooks/hooks.json` | Cuando el plugin está habilitado | Sí, incluido con el plugin |

806| [Skill](/es/skills) o [agente](/es/sub-agents) frontmatter | Mientras el skill o agente está activo | Sí, definido en el archivo del componente |806| [Skill](/es/skills) o [agente](/es/sub-agents) frontmatter | Mientras el skill o agente está activo | Sí, definido en el archivo del componente |

807 807 

808Ejecuta [`/hooks`](/es/hooks#the-%2Fhooks-menu) en Claude Code para examinar todos los hooks configurados agrupados por evento. Para desactivar todos los hooks a la vez, establece `"disableAllHooks": true` en tu archivo de configuración. Los hooks configurados en configuración gestionada aún se ejecutan a menos que `disableAllHooks` también esté establecido allí.808Ejecuta [`/hooks`](/es/hooks#the-%2Fhooks-menu) en Claude Code para examinar todos los hooks configurados agrupados por evento.

809 

810Para desactivar hooks, establece `"disableAllHooks": true` en tu archivo de configuración. Los hooks configurados en configuración gestionada aún se ejecutan a menos que `disableAllHooks` también esté establecido allí.

809 811 

810Si editas archivos de configuración directamente mientras Claude Code está ejecutándose, el observador de archivos normalmente recoge cambios de hooks automáticamente.812Si editas archivos de configuración directamente mientras Claude Code está ejecutándose, el observador de archivos normalmente recoge cambios de hooks automáticamente.

811 813 


925 Limitaciones927 Limitaciones

926</h3>928</h3>

927 929 

930Tenga en cuenta estas restricciones al diseñar hooks:

931 

928* Los hooks de comando se comunican solo a través de stdout, stderr y códigos de salida. No pueden activar comandos `/` o llamadas a herramientas. El texto devuelto a través de `additionalContext` se inyecta como un recordatorio del sistema que Claude lee como texto plano. Los HTTP hooks se comunican a través del cuerpo de respuesta en su lugar.932* Los hooks de comando se comunican solo a través de stdout, stderr y códigos de salida. No pueden activar comandos `/` o llamadas a herramientas. El texto devuelto a través de `additionalContext` se inyecta como un recordatorio del sistema que Claude lee como texto plano. Los HTTP hooks se comunican a través del cuerpo de respuesta en su lugar.

929* Los tiempos de espera del hook varían según el tipo. Anule por hook con el campo `timeout` en segundos.933* Los tiempos de espera del hook varían según el tipo. Anule por hook con el campo `timeout` en segundos.

930 * `command`, `http`, `mcp_tool`: 10 minutos. `UserPromptSubmit` reduce estos a 30 segundos, y `MessageDisplay` los reduce a 10 segundos.934 * `command`, `http`, `mcp_tool`: 10 minutos. `UserPromptSubmit` reduce estos a 30 segundos, y `MessageDisplay` los reduce a 10 segundos.

931 * `prompt`: 30 segundos.935 * `prompt`: 30 segundos.

932 * `agent`: 60 segundos.936 * `agent`: 60 segundos.

933* Los hooks `PostToolUse` no pueden deshacer acciones ya que la herramienta ya se ha ejecutado.937* Los hooks `PostToolUse` no pueden deshacer acciones ya que la herramienta ya se ha ejecutado.

934* Los hooks `PermissionRequest` no se activan en [modo no interactivo](/es/headless) (`-p`). Usa hooks `PreToolUse` para decisiones de permiso automatizadas.938* Los hooks `PermissionRequest` no se activan en [modo no interactivo](/es/headless) con la bandera `-p`. Use hooks `PreToolUse` para decisiones de permiso automatizadas.

935* Los hooks `Stop` se activan cada vez que Claude termina de responder, no solo en la finalización de tareas. No se activan en interrupciones del usuario. Los errores de API activan [StopFailure](/es/hooks#stopfailure) en su lugar.939* Los hooks `Stop` se activan cada vez que Claude termina de responder, no solo en la finalización de tareas. No se activan en interrupciones del usuario. Los errores de API activan [StopFailure](/es/hooks#stopfailure) en su lugar.

936* Cuando múltiples hooks PreToolUse devuelven [`updatedInput`](/es/hooks#pretooluse) para reescribir los argumentos de una herramienta, el último en terminar gana. Como los hooks se ejecutan en paralelo, el orden es no determinista. Evita tener más de un hook modificando la entrada de la misma herramienta.940* Cuando múltiples hooks `PreToolUse` devuelven [`updatedInput`](/es/hooks#pretooluse) para reescribir los argumentos de una herramienta, el último en terminar gana. Como los hooks se ejecutan en paralelo, el orden es no determinista. Evite tener más de un hook modificando la entrada de la misma herramienta.

937 941 

938<h3 id="hooks-and-permission-modes">942<h3 id="hooks-and-permission-modes">

939 Hooks y modos de permiso943 Hooks y modos de permiso

940</h3>944</h3>

941 945 

942Los hooks PreToolUse se activan antes de cualquier verificación de modo de permiso. Un hook que devuelve `permissionDecision: "deny"` bloquea la herramienta incluso en modo `bypassPermissions` o con `--dangerously-skip-permissions`. Esto te permite aplicar política que los usuarios no pueden eludir cambiando su modo de permiso.946Los hooks `PreToolUse` se activan antes de cualquier verificación de modo de permiso. Un hook que devuelve `permissionDecision: "deny"` bloquea la herramienta incluso en modo `bypassPermissions` o con `--dangerously-skip-permissions`. Esto le permite aplicar política que los usuarios no pueden eludir cambiando su modo de permiso.

943 947 

944Lo inverso no es cierto: un hook que devuelve `"allow"` no elude reglas de negación de configuración. Los hooks pueden endurecer restricciones pero no relajarlas más allá de lo que las reglas de permiso permiten.948Lo inverso no es cierto: un hook que devuelve `"allow"` no elude reglas de negación de configuración. Los hooks pueden endurecer restricciones pero no relajarlas más allá de lo que las reglas de permiso permiten.

945 949 


950El hook está configurado pero nunca se ejecuta.954El hook está configurado pero nunca se ejecuta.

951 955 

952* Ejecuta `/hooks` y confirma que el hook aparece bajo el evento correcto956* Ejecuta `/hooks` y confirma que el hook aparece bajo el evento correcto

953* Verifica que el patrón del matcher coincida exactamente con el nombre de la herramienta (los matchers distinguen mayúsculas de minúsculas)957* Verifique que el patrón del matcher coincida exactamente con el nombre de la herramienta. Los matchers distinguen mayúsculas de minúsculas

954* Verifica que estés activando el tipo de evento correcto (por ejemplo, `PreToolUse` se activa antes de la ejecución de la herramienta, `PostToolUse` se activa después)958* Verifique que esté activando el tipo de evento correcto: `PreToolUse` se activa antes de la ejecución de la herramienta, `PostToolUse` se activa después

955* Si usas hooks `PermissionRequest` en modo no interactivo (`-p`), cambia a `PreToolUse` en su lugar959* Si usa hooks `PermissionRequest` en modo no interactivo con la bandera `-p`, cambie a `PreToolUse` en su lugar

956 960 

957<h3 id="hook-error-in-output">961<h3 id="hook-error-in-output">

958 Error de hook en la salida962 Error de hook en la salida


976Editaste un archivo de configuración pero los hooks no aparecen en el menú.980Editaste un archivo de configuración pero los hooks no aparecen en el menú.

977 981 

978* Las ediciones de archivos normalmente se recogen automáticamente. Si no han aparecido después de unos segundos, el observador de archivos puede haber perdido el cambio: reinicia tu sesión para forzar una recarga.982* Las ediciones de archivos normalmente se recogen automáticamente. Si no han aparecido después de unos segundos, el observador de archivos puede haber perdido el cambio: reinicia tu sesión para forzar una recarga.

979* Verifica que tu JSON sea válido (las comas finales y comentarios no están permitidos)983* Verifique que su JSON sea válido: las comas finales y comentarios no están permitidos

980* Confirma que el archivo de configuración está en la ubicación correcta: `.claude/settings.json` para hooks de proyecto, `~/.claude/settings.json` para hooks globales984* Confirma que el archivo de configuración está en la ubicación correcta: `.claude/settings.json` para hooks de proyecto, `~/.claude/settings.json` para hooks globales

981 985 

982<h3 id="stop-hook-hits-the-block-cap">986<h3 id="stop-hook-hits-the-block-cap">


985 989 

986Claude sigue trabajando en lugar de detenerse, luego termina el turno con una advertencia de que el hook Stop bloqueó demasiadas veces consecutivas.990Claude sigue trabajando en lugar de detenerse, luego termina el turno con una advertencia de que el hook Stop bloqueó demasiadas veces consecutivas.

987 991 

988Claude Code anula un hook Stop después de que bloquea 8 veces seguidas sin progreso. Tu script de hook necesita verificar si ya activó una continuación. Analiza el campo `stop_hook_active` de la entrada JSON y sal temprano si es `true`:992Claude Code anula un hook Stop después de que bloquea ocho veces seguidas sin progreso. Su script de hook necesita verificar si ya activó una continuación. Analice el campo `stop_hook_active` de la entrada JSON y salga temprano si es `true`:

989 993 

990```bash theme={null}994```bash theme={null}

991#!/bin/bash995#!/bin/bash


1004 1008 

1005Claude Code muestra un error de análisis JSON aunque tu script de hook produzca JSON válido.1009Claude Code muestra un error de análisis JSON aunque tu script de hook produzca JSON válido.

1006 1010 

1007Cuando Claude Code ejecuta un hook de comando en forma de shell (uno sin `args`), genera `sh -c` en macOS y Linux o Git Bash en Windows por defecto. Este shell es no interactivo, pero Git Bash y algunas configuraciones (como `BASH_ENV` apuntando a `~/.bashrc`) aún obtienen tu perfil. Si ese perfil contiene declaraciones `echo` incondicionales, la salida se antepone a tu JSON del hook:1011Cuando Claude Code ejecuta un hook de comando en forma de shell (uno sin `args`), genera `sh -c` en macOS y Linux o Git Bash en Windows por defecto. Este shell es no interactivo, pero Git Bash y algunas configuraciones, como `BASH_ENV` apuntando a `~/.bashrc`, aún obtienen su perfil. Si ese perfil contiene declaraciones `echo` incondicionales, la salida se antepone a su JSON del hook:

1008 1012 

1009```text theme={null}1013```text theme={null}

1010Shell ready on arm641014Shell ready on arm64

Details

210Los comandos integrados también lo guían a través de la configuración:210Los comandos integrados también lo guían a través de la configuración:

211 211 

212* `/init` lo guía a través de la creación de un CLAUDE.md para su proyecto212* `/init` lo guía a través de la creación de un CLAUDE.md para su proyecto

213* `/agents` lo ayuda a configurar subagents personalizados

214* `/doctor` diagnostica problemas comunes con su instalación213* `/doctor` diagnostica problemas comunes con su instalación

215 214 

216<h3 id="it’s-a-conversation">215<h3 id="it’s-a-conversation">

Details

106 Bloque de atribución del mensaje del sistema106 Bloque de atribución del mensaje del sistema

107</h2>107</h2>

108 108 

109Claude Code antepone un bloque de atribución corto al mensaje del sistema que contiene la versión del cliente y una huella digital derivada de la conversación. El punto final `api.anthropic.com` elimina el bloque antes de procesar, por lo que no afecta el almacenamiento en caché de solicitudes de primera parte; cualquier otro proveedor ascendente lo recibe como parte del mensaje. Anthropic y los puntos finales de Claude de los proveedores de nube lo leen para atribución, así que para omitirlo establezca [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/es/env-vars) en lugar de eliminarlo en la puerta de enlace.109Claude Code antepone un bloque de atribución corto al mensaje del sistema que contiene la versión del cliente y una huella digital derivada de la conversación. El punto final `api.anthropic.com` elimina el bloque antes de procesar cuando llega sin cambios como el primer bloque del sistema, por lo que no afecta el almacenamiento en caché de solicitudes de primera parte. Cualquier otro proveedor ascendente lo recibe como parte del mensaje.

110 

111La eliminación es posicional, por lo que solo funciona cuando la puerta de enlace reenvía la matriz `system` sin cambios. Para mantener el bloque fuera del mensaje sin perder otro contenido del sistema:

112 

113* Reenvíe la matriz `system` exactamente como se recibió, manteniendo el bloque primero: anteponer otro bloque del sistema, reordenar la matriz o convertirla en una sola cadena anula la eliminación, y el bloque luego llega al modelo y a la clave de caché de solicitud.

114* Mantenga el bloque en su propia entrada de matriz: el punto final trata un bloque fusionado que comienza con el encabezado de atribución como atribución en su totalidad y descarta todo lo fusionado en él, incluido el resto del mensaje del sistema.

115* Si su puerta de enlace debe remodelar el contenido del sistema, establezca [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/es/env-vars) para que Claude Code omita el bloque. Anthropic y los puntos finales de Claude de los proveedores de nube leen el bloque para atribución, así que omítalo en el cliente en lugar de eliminarlo o moverlo en la puerta de enlace.

116 

117Las solicitudes que llegan al punto final sin modificar no se ven afectadas.

110 118 

111{/* min-version: 2.1.181 */}Desde Claude Code v2.1.181, el bloque es estable para la vida útil de una conversación cuando las solicitudes se enrutan a través de una URL base personalizada, por lo que una caché de solicitud de puerta de enlace con clave en el cuerpo de solicitud completo funciona sin deshabilitarlo. Antes de v2.1.181, el bloque incluía un token por solicitud; en esas versiones, establezca `CLAUDE_CODE_ATTRIBUTION_HEADER=0` si su puerta de enlace implementa tal caché.119{/* min-version: 2.1.181 */}Desde Claude Code v2.1.181, el bloque es estable para la vida útil de una conversación cuando las solicitudes se enrutan a través de una URL base personalizada, por lo que una caché de solicitud de puerta de enlace con clave en el cuerpo de solicitud completo funciona sin deshabilitarlo. Antes de v2.1.181, el bloque incluía un token por solicitud; en esas versiones, establezca `CLAUDE_CODE_ATTRIBUTION_HEADER=0` si su puerta de enlace implementa tal caché.

112 120 

mcp.md +58 −15

Details

871</Tip>871</Tip>

872 872 

873<h2 id="use-mcp-servers-from-claude-ai">873<h2 id="use-mcp-servers-from-claude-ai">

874 Usar servidores MCP desde Claude.ai874 Usar servidores MCP desde claude.ai

875</h2>875</h2>

876 876 

877Si ha iniciado sesión en Claude Code con una cuenta de [Claude.ai](https://claude.ai), los servidores MCP que ha agregado en Claude.ai están automáticamente disponibles en Claude Code:877Si ha iniciado sesión en Claude Code con una cuenta de [claude.ai](https://claude.ai), los servidores MCP que ha agregado en claude.ai están automáticamente disponibles en Claude Code:

878 878 

879<Steps>879<Steps>

880 <Step title="Configurar servidores MCP en Claude.ai">880 <Step title="Configurar servidores MCP en claude.ai">

881 Agregue servidores en [claude.ai/customize/connectors](https://claude.ai/customize/connectors). En planes de Equipo y Empresa, solo los administradores pueden agregar servidores.881 Agregue servidores en [claude.ai/customize/connectors](https://claude.ai/customize/connectors). En planes de Equipo y Empresa, solo los administradores pueden agregar servidores.

882 </Step>882 </Step>

883 883 

884 <Step title="Autenticar el servidor MCP">884 <Step title="Autenticar el servidor MCP">

885 Complete los pasos de autenticación requeridos en Claude.ai.885 Complete los pasos de autenticación requeridos en claude.ai.

886 </Step>886 </Step>

887 887 

888 <Step title="Ver y gestionar servidores en Claude Code">888 <Step title="Ver y gestionar servidores en Claude Code">


892 /mcp892 /mcp

893 ```893 ```

894 894 

895 Los servidores de Claude.ai aparecen en la lista con indicadores que muestran que provienen de Claude.ai.895 Los servidores de claude.ai aparecen en la lista con indicadores que muestran que provienen de claude.ai.

896 </Step>896 </Step>

897</Steps>897</Steps>

898 898 

899A partir de v2.1.161, los conectores en los que nunca ha iniciado sesión se contraen detrás de una fila `Show unused connectors` al final de la sección de Claude.ai, por lo que una lista provista por la organización no llena el panel. Seleccione la fila para expandirlos. Un conector en el que inició sesión anteriormente permanece visible incluso cuando actualmente necesita reautenticación.899A partir de v2.1.161, los conectores en los que nunca ha iniciado sesión se contraen detrás de una fila `Show unused connectors` al final de la sección de claude.ai, por lo que una lista provista por la organización no llena el panel. Seleccione la fila para expandirlos. Un conector en el que inició sesión anteriormente permanece visible incluso cuando actualmente necesita reautenticación.

900 900 

901Los conectores de Claude.ai se obtienen solo cuando su [método de autenticación](/es/authentication#authentication-precedence) activo es su suscripción a Claude.ai. No se cargan cuando `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, o un proveedor de terceros como Bedrock o Vertex está activo, incluso si ejecutó previamente `/login`. Si `/mcp` no enumera un conector que agregó, ejecute `/status` para confirmar qué método de autenticación está activo, desestablezca esa variable de entorno o elimine la configuración `apiKeyHelper`, luego ejecute `/login` para seleccionar su cuenta de Claude.ai.901Los conectores de claude.ai se obtienen solo cuando su [método de autenticación](/es/authentication#authentication-precedence) activo es su suscripción a claude.ai. No se cargan cuando `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, `apiKeyHelper`, o un proveedor de terceros como Bedrock o Vertex está activo, incluso si ejecutó previamente `/login`. Si `/mcp` no enumera un conector que agregó, ejecute `/status` para confirmar qué método de autenticación está activo, desestablezca esa variable de entorno o elimine la configuración `apiKeyHelper`, luego ejecute `/login` para seleccionar su cuenta de claude.ai.

902 902 

903Un servidor que ha agregado en Claude Code tiene [precedencia](#scope-hierarchy-and-precedence) sobre un conector de Claude.ai que apunta a la misma URL. Cuando esto sucede, `/mcp` enumera el conector como oculto y muestra cómo eliminar el duplicado si prefiere usar el conector.903Un servidor que ha agregado en Claude Code tiene [precedencia](#scope-hierarchy-and-precedence) sobre un conector de claude.ai que apunta a la misma URL. Cuando esto sucede, `/mcp` enumera el conector como oculto y muestra cómo eliminar el duplicado si prefiere usar el conector.

904 904 

905Algunos conectores alojados por Anthropic, como Microsoft 365, Gmail y Google Calendar, no admiten OAuth local desde Claude Code porque el proveedor de identidad ascendente solo acepta la URL de redirección que registró claude.ai. A partir de v2.1.162, autenticar uno de estos hosts en `/mcp` muestra un mensaje que lo dirige a conectarlo en Configuración → Conectores en claude.ai en su lugar. Una vez conectado allí, el conector aparece en Claude Code automáticamente.905Algunos conectores alojados por Anthropic, como Microsoft 365, Gmail y Google Calendar, no admiten OAuth local desde Claude Code porque el proveedor de identidad ascendente solo acepta la URL de redirección que registró claude.ai. A partir de v2.1.162, autenticar uno de estos hosts en `/mcp` muestra un mensaje que lo dirige a conectarlo en Configuración → Conectores en claude.ai en su lugar. Una vez conectado allí, el conector aparece en Claude Code automáticamente.

906 906 


908 Desactivar conectores de claude.ai908 Desactivar conectores de claude.ai

909</h3>909</h3>

910 910 

911Para desactivar servidores MCP de Claude.ai en Claude Code, establezca [`disableClaudeAiConnectors`](/es/settings#available-settings) en `true` en cualquier ámbito de configuración:911Para desactivar servidores MCP de claude.ai en Claude Code, establezca [`disableClaudeAiConnectors`](/es/settings#available-settings) en `true` en cualquier ámbito de configuración:

912 912 

913```json theme={null}913```json theme={null}

914{914{


1039 Si frecuentemente encuentra advertencias de salida con servidores MCP específicos que no controla, considere aumentar el límite `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que pagine 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.1039 Si frecuentemente encuentra advertencias de salida con servidores MCP específicos que no controla, considere aumentar el límite `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que pagine 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.

1040</Warning>1040</Warning>

1041 1041 

1042<h2 id="tool-input-schemas-with-a-root-level-combinator">

1043 Esquemas de entrada de herramientas con un combinador a nivel raíz

1044</h2>

1045 

1046Algunos servidores MCP declaran el esquema de entrada de una herramienta como una unión de JSON Schema, con `anyOf`, `oneOf`, o `allOf` en el nivel superior del esquema. La API de Claude no acepta esas palabras clave en la raíz del esquema. Sí acepta combinadores anidados dentro de `properties`, que Claude Code envía sin cambios.

1047 

1048A partir de Claude Code v2.1.195, las herramientas con un combinador a nivel raíz permanecen disponibles. Antes de enviar la herramienta a la API, Claude Code aplana el esquema en un único objeto y antepone una oración a la descripción de la herramienta que le dice a Claude qué grupos de parámetros pertenecen juntos:

1049 

1050* `allOf`: las propiedades de cada rama se fusionan, y la lista `required` de cada rama aún se aplica

1051* `anyOf` y `oneOf`: las propiedades de cada rama se fusionan, y la lista `required` de cada rama se describe en la descripción de la herramienta en lugar de ser aplicada por el esquema

1052 

1053Su servidor recibe los argumentos que Claude eligió, así que siga validando la combinación del lado del servidor.

1054 

1055Cuando Claude Code no puede producir un esquema que la API acepte, o en una implementación que no recibe la configuración remota que habilita la reescritura, como una máquina sin conexión, omite esa herramienta, registra la razón en el registro del servidor, y deja disponibles las otras herramientas del servidor. Las versiones anteriores a v2.1.195 omiten cada herramienta cuyo esquema de entrada tiene un `anyOf`, `oneOf`, o `allOf` a nivel raíz.

1056 

1057<h2 id="require-approval-for-a-specific-tool">

1058 Requerir aprobación para una herramienta específica

1059</h2>

1060 

1061Si está construyendo un servidor MCP, puede marcar una herramienta como que requiere aprobación explícita en cada llamada estableciendo `_meta["anthropic/requiresUserInteraction"]` en `true` en la entrada de la herramienta en la respuesta `tools/list`. El valor debe ser el booleano JSON `true`; cualquier otro valor se ignora.

1062 

1063Claude Code muestra el indicador de permiso de esa herramienta en cada llamada, incluso en modos de permiso `acceptEdits`, `auto` y `bypassPermissions` [permission modes](/es/permissions#permission-modes), y no ofrece una opción "no preguntar de nuevo" para ella. Las [reglas de permiso](/es/permissions#permission-rule-syntax) que coinciden con la herramienta tampoco omiten el indicador. En modo `dontAsk`, que nunca solicita, Claude Code niega la llamada en su lugar.

1064 

1065El indicador tiene que llegar a una persona. En modo no interactivo con [`--permission-prompt-tool`](/es/cli-reference#cli-flags), un resultado `allow` del indicador de permiso para una herramienta marcada se convierte en una negación con el mensaje `MCP tool requires user interaction; not supported via --permission-prompt-tool`. La devolución de llamada [`canUseTool`](/es/agent-sdk/permissions) del Agent SDK sí recibe estas llamadas y puede aprobarlas, porque se espera que el host del SDK las muestre a un usuario.

1066 

1067Use esto para herramientas cuyo indicador de permiso es en sí el punto, como un paso de consentimiento o concesión de acceso donde la aprobación automática significaría que ningún humano nunca estuvo de acuerdo. Otras herramientas del mismo servidor mantienen su comportamiento de permiso normal.

1068 

1069La siguiente entrada `tools/list` marca una herramienta como siempre requiriendo aprobación.

1070 

1071```json theme={null}

1072{

1073 "name": "grant_access",

1074 "description": "Requests access to a protected resource",

1075 "_meta": {

1076 "anthropic/requiresUserInteraction": true

1077 }

1078}

1079```

1080 

1081La anotación `anthropic/requiresUserInteraction` requiere Claude Code v2.1.199 o posterior. Las versiones anteriores la ignoran y aplican el flujo de permiso estándar.

1082 

1083Cuando una sesión está conectada a [Remote Control](/es/remote-control) o a un host del SDK, Claude Code marca la solicitud de permiso como que requiere interacción del usuario, por lo que el cliente muestra el indicador de permiso de la herramienta para que usted responda en lugar de una acción de aprobación de un toque.

1084 

1042<h2 id="respond-to-mcp-elicitation-requests">1085<h2 id="respond-to-mcp-elicitation-requests">

1043 Responder a solicitudes de elicitación de MCP1086 Responder a solicitudes de elicitación de MCP

1044</h2>1087</h2>


1100</Tip>1143</Tip>

1101 1144 

1102<h2 id="scale-with-mcp-tool-search">1145<h2 id="scale-with-mcp-tool-search">

1103 Escalar con MCP Tool Search1146 Escalar con búsqueda de herramientas MCP

1104</h2>1147</h2>

1105 1148 

1106Tool Search mantiene el uso de contexto MCP bajo al diferir las definiciones de herramientas hasta que Claude las necesite. Solo los nombres de herramientas e instrucciones del servidor se cargan al iniciar 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.1149La búsqueda de herramientas mantiene el uso de contexto MCP bajo al diferir las definiciones de herramientas hasta que Claude las necesite. Solo los nombres de herramientas e instrucciones del servidor se cargan al iniciar 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.

1107 1150 

1108<h3 id="how-it-works">1151<h3 id="how-it-works">

1109 Cómo funciona1152 Cómo funciona

1110</h3>1153</h3>

1111 1154 

1112Tool Search está habilitado de forma predeterminada. Las herramientas MCP se difieren en lugar de cargarse en el contexto de antemano, y Claude usa una herramienta de búsqueda para descubrir las relevantes cuando una tarea las necesita. Solo las herramientas que Claude realmente usa entran en el contexto. Desde su perspectiva, las herramientas MCP funcionan exactamente como antes.1155La búsqueda de herramientas está habilitada de forma predeterminada. Las herramientas MCP se difieren en lugar de cargarse en el contexto de antemano, y Claude usa una herramienta de búsqueda para descubrir las relevantes cuando una tarea las necesita. Solo las herramientas que Claude realmente usa entran en el contexto. Desde su perspectiva, las herramientas MCP funcionan exactamente como antes.

1113 1156 

1114Si prefiere carga basada en umbral, establezca `ENABLE_TOOL_SEARCH=auto` para cargar esquemas de antemano cuando se ajusten dentro del 10% de la ventana de contexto y diferir solo el desbordamiento. Vea [Configurar búsqueda de herramientas](#configure-tool-search) para todas las opciones.1157Si prefiere carga basada en umbral, establezca `ENABLE_TOOL_SEARCH=auto` para cargar esquemas de antemano cuando se ajusten dentro del 10% de la ventana de contexto y diferir solo el desbordamiento. Vea [Configurar búsqueda de herramientas](#configure-tool-search) para todas las opciones.

1115 1158 


1117 Para autores de servidores MCP1160 Para autores de servidores MCP

1118</h3>1161</h3>

1119 1162 

1120Si está construyendo un servidor MCP, el campo de instrucciones del servidor se vuelve más útil con Tool Search habilitado. Las instrucciones del servidor ayudan a Claude a entender cuándo buscar sus herramientas, similar a cómo funcionan las [skills](/es/skills).1163Si está construyendo 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, similar a cómo funcionan las [skills](/es/skills).

1121 1164 

1122Agregue instrucciones claras y descriptivas del servidor que expliquen:1165Agregue instrucciones claras y descriptivas del servidor que expliquen:

1123 1166 


1131 Configurar búsqueda de herramientas1174 Configurar búsqueda de herramientas

1132</h3>1175</h3>

1133 1176 

1134Tool Search está habilitado de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code lo desactiva de forma predeterminada en Vertex AI. También se desactiva 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 cualquiera de estos comportamientos predeterminados.1177La búsqueda de herramientas está habilitada de forma predeterminada: las herramientas MCP se difieren y se descubren bajo demanda. Claude Code lo desactiva de forma predeterminada en Vertex AI. También se desactiva 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 cualquiera de estos comportamientos predeterminados.

1135 1178 

1136Tool Search requiere un modelo que admita bloques `tool_reference`. Los modelos Haiku no lo admiten. En Vertex AI, Tool Search se admite para Claude Sonnet 4.5 y posterior y Claude Opus 4.5 y posterior.1179La búsqueda de herramientas requiere un modelo que admita bloques `tool_reference`. Los modelos Haiku no lo admiten. En Vertex AI, la búsqueda de herramientas se admite para Claude Sonnet 4.5 y posterior y Claude Opus 4.5 y posterior.

1137 1180 

1138Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:1181Controle el comportamiento de búsqueda de herramientas con la variable de entorno `ENABLE_TOOL_SEARCH`:

1139 1182 

memory.md +1 −1

Details

235- Incluir comentarios de documentación OpenAPI235- Incluir comentarios de documentación OpenAPI

236```236```

237 237 

238Las 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 lee archivos que coinciden con el patrón, no en cada uso de herramienta.238Las 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 lee archivos que coinciden con el patrón, no en cada uso de herramienta. {/* min-version: 2.1.198 */}A partir de v2.1.198, la coincidencia también funciona cuando Claude alcanza un archivo a través de una ruta de proyecto vinculada simbólicamente, por ejemplo en un checkout vinculado simbólicamente.

239 239 

240Use patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:240Use patrones glob en el campo `paths` para hacer coincidir archivos por extensión, directorio o cualquier combinación:

241 241 

model-config.md +61 −8

Details

31 31 

32| Alias de modelo | Comportamiento |32| Alias de modelo | Comportamiento |

33| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |33| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

34| **`default`** | Valor especial que borra cualquier anulación de modelo y revierte al modelo recomendado para su tipo de cuenta. No es en sí mismo un alias de modelo |34| **`default`** | Valor especial que borra cualquier anulación de modelo y revierte al modelo recomendado para su tipo de cuenta, o al [modelo predeterminado de la organización](#organization-default-model) cuando un administrador ha establecido uno. No es en sí mismo un alias de modelo |

35| **`best`** | Utiliza Fable 5 donde su organización tiene acceso a él, de lo contrario el último modelo Opus |35| **`best`** | Utiliza Fable 5 donde su organización tiene acceso a él, de lo contrario el último modelo Opus |

36| **`fable`** | Utiliza Claude Fable 5 para sus tareas más difíciles y de mayor duración |36| **`fable`** | Utiliza Claude Fable 5 para sus tareas más difíciles y de mayor duración |

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


84* `Enter`: cambiar modelo y guardar como predeterminado84* `Enter`: cambiar modelo y guardar como predeterminado

85* `s`: cambiar modelo solo para esta sesión85* `s`: cambiar modelo solo para esta sesión

86 86 

87Escribir `/model <name>` directamente se comporta como `Enter`. La configuración del proyecto y administrada aún tiene prioridad y se reaplicará en el siguiente lanzamiento.87Escribir `/model <name>` directamente se comporta como `Enter`. La configuración del proyecto y administrada aún tiene prioridad y se reaplicará en el siguiente lanzamiento. {/* min-version: 2.1.196 */}Un [modelo predeterminado de la organización](#organization-default-model) que su administrador ha configurado para anular la selección del usuario también se reaplicará en el siguiente lanzamiento.

88 88 

89En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.89En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.

90 90 


130* **Modelo de sesión principal**: `/model`, la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, la configuración `model`, y el modelo restaurado cuando [se reanuda una sesión](#setting-your-model)130* **Modelo de sesión principal**: `/model`, la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, la configuración `model`, y el modelo restaurado cuando [se reanuda una sesión](#setting-your-model)

131* **Resolución de alias**: {/* min-version: 2.1.176 */}las variables de entorno `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, y `ANTHROPIC_DEFAULT_FABLE_MODEL` no pueden redirigir un alias permitido a un modelo fuera de la lista131* **Resolución de alias**: {/* min-version: 2.1.176 */}las variables de entorno `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, y `ANTHROPIC_DEFAULT_FABLE_MODEL` no pueden redirigir un alias permitido a un modelo fuera de la lista

132* **Modo rápido**: {/* min-version: 2.1.176 */}`/fast` se niega a cambiar cuando cambiaría implícitamente a un modelo Opus fuera de la lista, con el mensaje "no está en los modelos permitidos de su organización"132* **Modo rápido**: {/* min-version: 2.1.176 */}`/fast` se niega a cambiar cuando cambiaría implícitamente a un modelo Opus fuera de la lista, con el mensaje "no está en los modelos permitidos de su organización"

133* **Modelos de subagentes**: el campo `model` en [frontmatter de subagente](/es/sub-agents#choose-a-model), el parámetro `model` de la herramienta Agent, el selector de modelo en `/agents`, y `CLAUDE_CODE_SUBAGENT_MODEL`133* **Modelos de subagentes**: el campo `model` en [frontmatter de subagente](/es/sub-agents#choose-a-model), el parámetro `model` de la herramienta Agent, `CLAUDE_CODE_SUBAGENT_MODEL`, y, en v2.1.197 y anterior, el selector de modelo en el asistente `/agents` {/* max-version: 2.1.197 */}

134* **Modelo de habilidad y comando**: el frontmatter `model` en [habilidades y comandos](/es/skills)134* **Modelo de habilidad y comando**: el frontmatter `model` en [habilidades y comandos](/es/skills)

135* **Modelo de asesor**: la configuración [`advisorModel`](/es/advisor) configurada y la bandera `--advisor`135* **Modelo de asesor**: la configuración [`advisorModel`](/es/advisor) configurada y la bandera `--advisor`

136* **Modelo de agente de fondo**: el modelo seleccionado en el [selector de envío](/es/agent-view)136* **Modelo de agente de fondo**: el modelo seleccionado en el [selector de envío](/es/agent-view)

137 137 

138Cambiar a un modelo bloqueado con `/model` se rechaza con un error, mientras que una bandera `--model` bloqueada, `ANTHROPIC_MODEL`, o un valor de configuración `model` se reemplaza al inicio con una advertencia que nombra tanto los modelos solicitados como los sustituidos, y la sesión comienza en el modelo predeterminado. Una anulación de subagente, habilidad o comando bloqueada vuelve al modelo heredado o predeterminado en lugar de fallar la solicitud; una configuración `advisorModel` bloqueada desactiva el asesor para la sesión, mientras que una bandera `--advisor` bloqueada sale con un error al inicio. Los modelos excluidos se ocultan del selector `/model`.138Cambiar a un modelo bloqueado con `/model` se rechaza con un error, mientras que una bandera `--model` bloqueada, `ANTHROPIC_MODEL`, o un valor de configuración `model` se reemplaza al inicio con una advertencia que nombra tanto los modelos solicitados como los sustituidos, y la sesión comienza en el modelo predeterminado. Una anulación de subagente, habilidad o comando bloqueada vuelve al modelo heredado o predeterminado en lugar de fallar la solicitud; una configuración `advisorModel` bloqueada desactiva el asesor para la sesión, mientras que una bandera `--advisor` bloqueada sale con un error al inicio. Los modelos excluidos se ocultan del selector `/model`. {/* min-version: 2.1.199 */}A partir de v2.1.199, un ID de modelo completo en la lista que no tiene una fila de selector integrada, como una versión anterior que la lista fija, aparece en el selector `/model` como su propia fila etiquetada. En versiones anteriores, ese ID es seleccionable solo escribiendo `/model <id>`.

139 139 

140Los cambios automáticos de modelo se verifican de la misma manera: los elementos de una [cadena de modelo de reserva](#fallback-model-chains) fuera de la lista de permitidos se descartan, una actualización de modo de plan como [`opusplan`](#opusplan-model-setting) a un modelo excluido se omite para que la planificación continúe en el modelo de la sesión, y un [fallback automático de modelo](#automatic-model-fallback) cuyo destino está excluido no se ejecuta, por lo que la solicitud marcada termina con un rechazo. Habilitar [modo rápido](/es/fast-mode) se rechaza cuando el modelo en el que se ejecutaría la sesión después está fuera de la lista de permitidos.140Los cambios automáticos de modelo se verifican de la misma manera: los elementos de una [cadena de modelo de reserva](#fallback-model-chains) fuera de la lista de permitidos se descartan, una actualización de modo de plan como [`opusplan`](#opusplan-model-setting) a un modelo excluido se omite para que la planificación continúe en el modelo de la sesión, y un [fallback automático de modelo](#automatic-model-fallback) cuyo destino está excluido no se ejecuta, por lo que la solicitud marcada termina con un rechazo. Habilitar [modo rápido](/es/fast-mode) se rechaza cuando el modelo en el que se ejecutaría la sesión después está fuera de la lista de permitidos.

141 141 


184}184}

185```185```

186 186 

187Cuando el modelo predeterminado para el tipo de cuenta del usuario no está en la lista de permitidos, la opción Predeterminado se resuelve a la primera entrada `availableModels` que nombra un modelo permitido y disponible, y la fila Predeterminado del selector `/model` muestra ese modelo. Esto se aplica en todas partes donde se alcanza el valor predeterminado: inicio de sesión, seleccionar Predeterminado en `/model`, la palabra clave `"default"` en [cadenas de modelo de reserva](#fallback-model-chains), y el fallback utilizado cuando se descarta una selección excluida.187La opción Predeterminado se resuelve a la cuenta-tipo predeterminado, o al [modelo predeterminado de la organización](#organization-default-model) cuando un administrador ha establecido uno. Cuando ese modelo no está en la lista de permitidos, la opción Predeterminado se resuelve a la primera entrada `availableModels` que nombra un modelo permitido y disponible, y la fila Predeterminado del selector `/model` muestra ese modelo. Esto se aplica en todas partes donde se alcanza el valor predeterminado: inicio de sesión, seleccionar Predeterminado en `/model`, la palabra clave `"default"` en [cadenas de modelo de reserva](#fallback-model-chains), y el fallback utilizado cuando se descarta una selección excluida.

188 188 

189`enforceAvailableModels` no tiene efecto cuando `availableModels` no está establecido o está vacío: con `availableModels: []`, el modelo Predeterminado para el tipo de cuenta permanece utilizable, por lo que la configuración no puede bloquear a los usuarios de cada modelo. Cuando `availableModels` no está vacío pero ninguna entrada se resuelve a un modelo permitido y disponible, la aplicación se degrada y Predeterminado cae al valor predeterminado del tipo de cuenta, con una advertencia visible solo bajo `--debug`. Mantenga al menos una entrada garantizada disponible en la lista para evitar esto.189`enforceAvailableModels` no tiene efecto cuando `availableModels` no está establecido o está vacío: con `availableModels: []`, el modelo Predeterminado para el tipo de cuenta permanece utilizable, por lo que la configuración no puede bloquear a los usuarios de cada modelo. Cuando `availableModels` no está vacío pero ninguna entrada se resuelve a un modelo permitido y disponible, la aplicación se degrada y Predeterminado cae al valor predeterminado del tipo de cuenta, con una advertencia visible solo bajo `--debug`. Mantenga al menos una entrada garantizada disponible en la lista para evitar esto.

190 190 


244 244 

245Un modelo restringido se oculta del selector `/model`. Seleccionarlo por nombre con `--model`, la variable de entorno `ANTHROPIC_MODEL`, o la configuración `model` muestra el aviso `Model "<name>" is restricted by your organization's settings. Using <model> instead.` y la sesión comienza en un modelo permitido. Escribir `/model <name>` para un modelo restringido se rechaza con `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` y la sesión mantiene su modelo actual.245Un modelo restringido se oculta del selector `/model`. Seleccionarlo por nombre con `--model`, la variable de entorno `ANTHROPIC_MODEL`, o la configuración `model` muestra el aviso `Model "<name>" is restricted by your organization's settings. Using <model> instead.` y la sesión comienza en un modelo permitido. Escribir `/model <name>` para un modelo restringido se rechaza con `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` y la sesión mantiene su modelo actual.

246 246 

247Los dos mecanismos se componen: un modelo es seleccionable solo cuando está permitido por `availableModels` y no está restringido por la organización. Las restricciones de la organización se entregan a sesiones en la API de Anthropic e implementaciones de [puerta de enlace LLM](/es/llm-gateway). Las sesiones en Bedrock, Vertex AI, Foundry, y Claude Platform en AWS no las reciben, por lo que use `availableModels` en esos proveedores en su lugar.247Las restricciones se aplican org-wide o por rol:

248 

249* Desactivar un modelo a nivel de organización lo elimina para cada miembro.

250* El acceso a nivel de rol otorga diferentes modelos a diferentes roles personalizados, y un miembro que tiene varios roles puede usar cualquier modelo que uno de sus roles otorgue.

251* Los modelos Haiku siempre están disponibles y no se pueden desactivar, por lo que cada miembro mantiene al menos un modelo utilizable.

252* Un cambio de acceso toma efecto en nuevas solicitudes dentro de aproximadamente un minuto; el selector `/model` lo refleja la próxima vez que comienza una sesión.

253 

254Ambas restricciones se aplican juntas: un modelo es seleccionable solo cuando está permitido por `availableModels` y no está restringido por la organización. Las restricciones de la organización se entregan a sesiones en la API de Anthropic e implementaciones de [puerta de enlace LLM](/es/llm-gateway). Las sesiones en Bedrock, Vertex AI, Foundry, y Claude Platform en AWS no las reciben, por lo que use `availableModels` en esos proveedores en su lugar.

255 

256<h2 id="organization-default-model">

257 Modelo predeterminado de la organización

258</h2>

259 

260{/* plan-availability: feature=org-default-model plans=enterprise */}

261 

262Los administradores de la organización en planes Claude Enterprise pueden establecer un modelo predeterminado para los miembros de Claude Code desde la consola de administración de claude.ai, para toda la organización o por rol personalizado. Cuando se establece uno, la opción Predeterminado se resuelve a ese modelo en lugar del [predeterminado del tipo de cuenta](#default-model-setting). Requiere Claude Code v2.1.196 o posterior.

263 

264La fila Predeterminado en el selector `/model` muestra el nombre del modelo predeterminado de la organización con la etiqueta Predeterminado de org. La etiqueta lee Predeterminado de org ya sea que el administrador haya establecido el predeterminado para toda la organización o para su rol. Un predeterminado de rol cubre miembros de ese rol personalizado y tiene prioridad sobre el predeterminado de toda la organización; cuando varios de sus roles establecen diferentes predeterminados, se aplica el modelo más capaz.

265 

266El modelo predeterminado de la organización es un punto de partida, no una restricción, y cualquier otra selección de modelo tiene prioridad sobre él:

267 

268* la bandera `--model` y la variable de entorno `ANTHROPIC_MODEL`

269* un valor `model` en [configuración administrada](/es/settings#settings-files) o suministrado a través de `--settings`

270* un valor `model` en su configuración de usuario, proyecto o local, incluido un modelo que guarda con `/model`

271 

272Los administradores también pueden configurar el modelo predeterminado de la organización para anular la selección del usuario. Con la anulación activada, tiene prioridad sobre el valor `model` en la configuración de usuario, proyecto y local, por lo que un modelo que guarda con `/model` se aplica para la sesión actual y el modelo predeterminado de la organización regresa en el siguiente lanzamiento. Cuando su selección difiere, `/model` muestra `Your organization's default (<model>) applies on restart`. La bandera `--model`, `ANTHROPIC_MODEL`, la configuración administrada y `--settings` aún tienen prioridad incluso con la anulación activada. La anulación está disponible para un conjunto limitado de organizaciones; pregunte a su equipo de cuenta de Anthropic sobre disponibilidad.

273 

274Para limitar qué modelos pueden seleccionar los miembros, use [restricciones de modelo de organización](#organization-model-restrictions) o [`availableModels`](#restrict-model-selection) en su lugar.

275 

276Claude Code lee el modelo predeterminado de la organización una vez al inicio, por lo que un predeterminado que el administrador cambia a mitad de sesión toma efecto en el siguiente lanzamiento.

277 

278Cuando el modelo predeterminado de la organización no anula la selección del usuario, el primer lanzamiento interactivo después de que el administrador lo cambia borra la clave `model` de su configuración de usuario una vez, por lo que se aplica el nuevo predeterminado. No cambia nada más en el archivo, y un modelo que guarda con `/model` después de ese lanzamiento se mantiene.

279 

280El modelo predeterminado de la organización pasa a través de las mismas verificaciones de restricción que cualquier otro modelo Predeterminado antes de ser adoptado:

281 

282* [`availableModels`](#restrict-model-selection) por sí solo nunca limita la opción Predeterminado, por lo que un modelo predeterminado de la organización fuera de la lista de permitidos aún se aplica. Cuando [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) también está establecido, un modelo predeterminado de la organización fuera de la lista de permitidos se remapea a la primera entrada de la lista de permitidos, como cualquier otro Predeterminado

283* un modelo predeterminado de la organización que [restricciones de modelo de organización](#organization-model-restrictions) niegan para su cuenta se reemplaza por el modelo más nuevo permitido en su familia, o una familia de menor costo cuando cada versión de ella está restringida

284* un modelo predeterminado de la organización que no está disponible para su cuenta en absoluto, como Fable 5 bajo [retención de datos cero](/es/zero-data-retention), se omite, y la opción Predeterminado se resuelve al predeterminado del tipo de cuenta

285 

286A partir de v2.1.199, cuando el modelo predeterminado de la organización es una familia de modelo diferente del predeterminado habitual del tipo de cuenta, el selector `/model` mantiene una fila separada para esa familia habitual, por lo que aún puede cambiar a ella para una sesión. En v2.1.196 a v2.1.198 esa fila falta del selector.

287 

288El modelo predeterminado de la organización se entrega a sesiones autenticadas con la API de Anthropic. Las sesiones en implementaciones de [puerta de enlace LLM](/es/llm-gateway), Amazon Bedrock, Plataforma de Agentes de Google Cloud, Microsoft Foundry, y Claude Platform en AWS no lo reciben. Para establecer un predeterminado en esas implementaciones, use la clave `model` en [configuración administrada](/es/settings#settings-files) en su lugar.

289 

290<h2 id="organization-effort-limits">

291 Límites de esfuerzo de la organización

292</h2>

293 

294{/* plan-availability: feature=org-effort-limits plans=enterprise */}

295 

296Los administradores de la organización en planes Claude Enterprise pueden establecer un [nivel de esfuerzo](#adjust-effort-level) máximo por modelo para cada rol personalizado, junto con [restricciones de modelo de organización](#organization-model-restrictions) a nivel de rol. Los niveles por encima del límite no se ofrecen en el selector `/effort`, y nombrar un nivel más alto con `--effort` o `/effort` se ejecuta en el límite en su lugar. En sesiones interactivas y ejecuciones de `--print` de texto sin formato, una advertencia nombra los niveles solicitados y aplicados; con salida `json` o `stream-json` o en agentes de fondo, el límite se aplica silenciosamente. Los límites son por modelo, por lo que cambiar de modelos puede cambiar qué niveles están disponibles. Cuando varios de sus roles otorgan el mismo modelo, se aplica el límite menos restrictivo. Requiere Claude Code v2.1.195 o posterior.

297 

298Los límites de esfuerzo se entregan junto con [restricciones de modelo de organización](#organization-model-restrictions) y siguen la misma disponibilidad de proveedor: las sesiones en Amazon Bedrock, Plataforma de Agentes de Google Cloud, Microsoft Foundry, y Claude Platform en AWS no los reciben.

248 299 

249<h2 id="special-model-behavior">300<h2 id="special-model-behavior">

250 Comportamiento especial del modelo301 Comportamiento especial del modelo


263 314 

264Enterprise de pago por uso significa una organización Enterprise facturada por uso en lugar de por asiento de suscripción.315Enterprise de pago por uso significa una organización Enterprise facturada por uso en lugar de por asiento de suscripción.

265 316 

266Cuando la configuración administrada [aplica la lista de permitidos para el modelo predeterminado](#enforce-the-allowlist-for-the-default-model) y el predeterminado del tipo de cuenta no está en `availableModels`, `default` se resuelve al predeterminado aplicado en lugar del predeterminado del tipo de cuenta anterior.317Cuando un administrador ha establecido un [modelo predeterminado de la organización](#organization-default-model), `default` se resuelve a ese modelo en lugar del predeterminado del tipo de cuenta anterior. Requiere Claude Code v2.1.196 o posterior.

318 

319Cuando la configuración administrada [aplica la lista de permitidos para el modelo predeterminado](#enforce-the-allowlist-for-the-default-model) y el predeterminado del tipo de cuenta no está en `availableModels`, `default` se resuelve al predeterminado aplicado en lugar del predeterminado del tipo de cuenta anterior. Cuando ambos se aplican, el modelo predeterminado de la organización reemplaza el predeterminado del tipo de cuenta primero y la aplicación se aplica a él: un modelo predeterminado de la organización en la lista de permitidos se mantiene, mientras que uno fuera de la lista se resuelve al Predeterminado aplicado.

267 320 

268Fable 5 no es el modelo predeterminado en ningún tipo de cuenta. Las sesiones utilizan Fable 5 solo después de que lo elija, con `/model fable`, una configuración de `model`, o el alias `best` donde Fable 5 está disponible. Elegirlo con `/model` lo guarda como el modelo seleccionado en su configuración de usuario, por lo que las sesiones posteriores comienzan en Fable 5 hasta que cambie de modelos.321Fable 5 no es el modelo predeterminado en ningún tipo de cuenta. Las sesiones utilizan Fable 5 solo después de que lo elija, con `/model fable`, una configuración de `model`, o el alias `best` donde Fable 5 está disponible. Elegirlo con `/model` lo guarda como el modelo seleccionado en su configuración de usuario, por lo que las sesiones posteriores comienzan en Fable 5 hasta que cambie de modelos.

269 322 


379| Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |432| Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

380| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |433| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |

381 434 

382Si establece un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableció. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6.435Si establece un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableció. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Su organización también puede limitar qué niveles están disponibles para un modelo; consulte [Límites de esfuerzo de la organización](#organization-effort-limits).

383 436 

384El esfuerzo predeterminado es `high` en Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 y Sonnet 4.6, y `xhigh` en Opus 4.7.437El esfuerzo predeterminado es `high` en Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 y Sonnet 4.6, y `xhigh` en Opus 4.7.

385 438 

Details

1186 1186 

1187Claude Code reintenta solicitudes de API fallidas internamente y emite un único evento `claude_code.api_error` solo después de rendirse, por lo que el evento en sí es la señal terminal para esa solicitud. Los intentos de reintento intermedios no se registran como eventos separados.1187Claude Code reintenta solicitudes de API fallidas internamente y emite un único evento `claude_code.api_error` solo después de rendirse, por lo que el evento en sí es la señal terminal para esa solicitud. Los intentos de reintento intermedios no se registran como eventos separados.

1188 1188 

1189El atributo `attempt` en el evento registra cuántos intentos se realizaron en total. `CLAUDE_CODE_MAX_RETRIES` tiene un valor predeterminado de 10 y está limitado a 15. Cuando la solicitud agota todos los reintentos en un error transitorio, `attempt` es igual a uno más que ese límite efectivo: 11 por defecto, y nunca más de 16. Un valor más bajo indica un error no reintentable como una respuesta `400`.1189El atributo `attempt` en el evento registra el número total de intentos. `CLAUDE_CODE_MAX_RETRIES` tiene un valor predeterminado de 10 y está limitado a 15; {/* min-version: 2.1.199 */}a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Cuando la solicitud agota todos los reintentos en un error transitorio, `attempt` es igual a uno más que ese límite efectivo: 11 por defecto, y nunca más de 16 a menos que el vigilante esté configurado. Un valor más bajo indica un error no reintentable como una respuesta `400`.

1190 1190 

1191Para distinguir una sesión que se recuperó de una que se estancó, agrupe eventos por `session.id` y verifique si existe un evento `api_request` posterior después del error.1191Para distinguir una sesión que se recuperó de una que se estancó, agrupe eventos por `session.id` y verifique si existe un evento `api_request` posterior después del error.

1192 1192 

Details

237* Push forzado, o empujar directamente a `main`237* Push forzado, o empujar directamente a `main`

238* {/* min-version: 2.1.182 */}`git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, o `git stash clear`, que el clasificador presume que descartaría cambios sin confirmar238* {/* min-version: 2.1.182 */}`git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, o `git stash clear`, que el clasificador presume que descartaría cambios sin confirmar

239* `git commit --amend` cuando la confirmación en HEAD no fue creada en esta sesión239* `git commit --amend` cuando la confirmación en HEAD no fue creada en esta sesión

240* {/* min-version: 2.1.198 */}Desde v2.1.198, `git commit --amend` cuando la confirmación en HEAD ya ha sido empujada. Un reword solo de mensaje no se bloquea: `--amend -m` sin nada recién preparado, en una confirmación que Claude creó durante esta sesión

240* `terraform destroy`, `pulumi destroy`, `cdk destroy`, o `terragrunt destroy`, y aplicar un plan que destruye recursos241* `terraform destroy`, `pulumi destroy`, `cdk destroy`, o `terragrunt destroy`, y aplicar un plan que destruye recursos

241 242 

242Claude Code v2.1.195 y posterior bloquean más categorías por defecto. Varias dependen de entradas de [entorno](/es/auto-mode-config#define-trusted-infrastructure), como objetivos remotos sensibles y alcances de IaC protegidos, que puede reducir a nombres concretos.243Claude Code v2.1.195 y posterior bloquean más categorías por defecto. Varias dependen de entradas de [entorno](/es/auto-mode-config#define-trusted-infrastructure), como objetivos remotos sensibles y alcances de IaC protegidos, que puede reducir a nombres concretos.


251* Shells interactivos o port-forwards en un objetivo remoto sensible252* Shells interactivos o port-forwards en un objetivo remoto sensible

252* Abrir un túnel o shell inverso que hace que un servicio local sea alcanzable desde internet pública253* Abrir un túnel o shell inverso que hace que un servicio local sea alcanzable desde internet pública

253* Imprimir una credencial o token en vivo en la transcripción o un archivo254* Imprimir una credencial o token en vivo en la transcripción o un archivo

254* Acceder a una ubicación de PII o datos regulados, o copiar datos fuera de una255* Acceder a una ubicación listada como ubicación de datos sensibles en su [entorno](/es/auto-mode-config#define-trusted-infrastructure), o copiar datos fuera de una. {/* min-version: 2.1.198 */}A partir de v2.1.198 esto también bloquea enviar datos de una a una audiencia que la entrada excluye

255* Enrutar una instalación de paquete alrededor de su registro de paquetes interno a un registro público256* Enrutar una instalación de paquete alrededor de su registro de paquetes interno a un registro público. {/* min-version: 2.1.198 */}A partir de v2.1.198, esto también se aplica cuando le ha dicho a Claude que existe un registro interno o espejo en la conversación, no solo cuando uno está listado en su entorno

256* Ejecutar un comando con una bandera que desactiva una protección de seguridad, como `--insecure`257* Ejecutar un comando con una bandera que desactiva una protección de seguridad, como `--insecure`

258* Lanzar un bucle de agente autónomo que se ejecuta sin aprobación humana o sandbox, como uno iniciado con `--dangerously-skip-permissions` o `--no-sandbox`. {/* min-version: 2.1.198 */}A partir de v2.1.198 esto también cubre ejecutar un agente de terceros o harness de evaluación con aislamiento y aprobación por acción deshabilitados, como un ejecutor iniciado con `--yes-always`

257* Acciones del navegador de [Claude en Chrome](/es/chrome) que podrían enviar contenido de página, cookies, o credenciales fuera de origen259* Acciones del navegador de [Claude en Chrome](/es/chrome) que podrían enviar contenido de página, cookies, o credenciales fuera de origen

258 260 

261Claude Code v2.1.198 y posterior también bloquean estos por defecto:

262 

263* Eliminar archivos en `/tmp`, `$TMPDIR`, u otro directorio compartido de scratch o caché por comodín, glob, o filtro de edad en lugar de por una ruta nombrada específica

264* Incluir detalles sensibles en contenido enviado, cargado, publicado, o escrito a otras personas o sistemas compartidos, cuando su propio mensaje no autorizó esos detalles para ese destinatario

265* Enviar pulsaciones de teclas al propio panel tmux de Claude Code para conducir su propia interfaz, que el clasificador trata como Claude cambiando sus propios permisos u supervisión

266 

259**Permitido por defecto**:267**Permitido por defecto**:

260 268 

261* Operaciones de archivos locales en su directorio de trabajo269* Operaciones de archivos locales en su directorio de trabajo


272* Enviar datos a los dominios confiables, depósitos, y servicios que lista en [`environment`](/es/auto-mode-config#define-trusted-infrastructure). Esto cubre solo el flujo de datos, no operaciones destructivas o de credenciales en la misma infraestructura280* Enviar datos a los dominios confiables, depósitos, y servicios que lista en [`environment`](/es/auto-mode-config#define-trusted-infrastructure). Esto cubre solo el flujo de datos, no operaciones destructivas o de credenciales en la misma infraestructura

273* Navegación de [Claude en Chrome](/es/chrome) a un dominio interno confiable, localhost, o una URL que nombró281* Navegación de [Claude en Chrome](/es/chrome) a un dominio interno confiable, localhost, o una URL que nombró

274 282 

275Las solicitudes de acceso de red de sandbox se enrutan a través del clasificador en lugar de permitirse por defecto. Ejecute `claude auto-mode defaults` para ver las listas de reglas completas. Si las acciones rutinarias se bloquean, un administrador puede añadir repositorios confiables, depósitos y servicios a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/es/auto-mode-config).283Las solicitudes de acceso de red de sandbox se enrutan a través del clasificador en lugar de permitirse por defecto. {/* min-version: 2.1.198 */}A partir de v2.1.198, el clasificador reutiliza su veredicto para un host y puerto de red en lugar de re-ejecutarse en cada conexión:

284 

285* Un permiso se reutiliza hasta que nuevo contenido entra en la conversación, en cuyo punto ese host se verifica nuevamente

286* En la CLI interactiva, una denegación se descarta cuando el turno termina

287* En [modo no interactivo](/es/headless) y sesiones de Agent SDK no hay límite de turno, por lo que una denegación se reutiliza para el resto de la ejecución

288* Cambiar su modo de permisos o reglas descarta todos los veredictos en caché

289 

290Ejecute `claude auto-mode defaults` para ver las listas de reglas completas. Si las acciones rutinarias se bloquean, un administrador puede añadir repositorios confiables, depósitos y servicios a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/es/auto-mode-config).

276 291 

277<h3 id="boundaries-you-state-in-conversation">292<h3 id="boundaries-you-state-in-conversation">

278 Límites que establece en la conversación293 Límites que establece en la conversación


300 315 

301 1. Las acciones que coinciden con sus [reglas de permitir o denegar](/es/permissions#manage-permissions) se resuelven inmediatamente, excepto escrituras en [rutas protegidas](#protected-paths), que se enrutan al clasificador incluso cuando una regla de permitir coincide316 1. Las acciones que coinciden con sus [reglas de permitir o denegar](/es/permissions#manage-permissions) se resuelven inmediatamente, excepto escrituras en [rutas protegidas](#protected-paths), que se enrutan al clasificador incluso cuando una regla de permitir coincide

302 2. Las acciones de solo lectura y ediciones de archivos en su directorio de trabajo se auto-aprueban, excepto escrituras en [rutas protegidas](#protected-paths)317 2. Las acciones de solo lectura y ediciones de archivos en su directorio de trabajo se auto-aprueban, excepto escrituras en [rutas protegidas](#protected-paths)

303 3. Todo lo demás va al clasificador318 3. Todo lo demás va al clasificador. {/* min-version: 2.1.199 */}A partir de v2.1.199, una herramienta MCP marcada con [`_meta["anthropic/requiresUserInteraction"]`](/es/mcp#require-approval-for-a-specific-tool) omite el clasificador y le solicita directamente, por lo que un paso de consentimiento nunca se auto-aprueba en nombre del autor de la herramienta

304 4. Si el clasificador bloquea, Claude recibe la razón e intenta una alternativa319 4. Si el clasificador bloquea, Claude recibe la razón e intenta una alternativa

305 320 

306 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:321 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:


326 </Accordion>341 </Accordion>

327 342 

328 <Accordion title="Costo y latencia">343 <Accordion title="Costo y latencia">

329 El clasificador se ejecuta en un modelo configurado por servidor que es independiente de su selección de `/model`, por lo que cambiar modelos no cambia la disponibilidad del clasificador. Las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, añadiendo un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red.344 El clasificador se ejecuta en un modelo configurado por servidor que es independiente de su selección de `/model`, por lo que cambiar modelos no cambia la disponibilidad del clasificador. Las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, añadiendo un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red. {/* min-version: 2.1.198 */}A partir de v2.1.198, un veredicto de red de sandbox para un host y puerto se reutiliza en lugar de re-clasificarse en cada conexión, por lo que las conexiones repetidas al mismo host no añaden cada una una verificación. [Qué bloquea el clasificador por defecto](#what-the-classifier-blocks-by-default) describe cuánto tiempo dura un permiso y una denegación.

330 </Accordion>345 </Accordion>

331</AccordionGroup>346</AccordionGroup>

332 347 


334 Permitir solo herramientas preaprobadas con modo dontAsk349 Permitir solo herramientas preaprobadas con modo dontAsk

335</h2>350</h2>

336 351 

337El modo `dontAsk` auto-deniega cada llamada de herramienta que de otro modo solicitaría. Solo las acciones que coinciden con tus reglas `permissions.allow` y [comandos Bash de solo lectura](/es/permissions#read-only-commands) pueden ejecutarse; las reglas [`ask` explícitas](/es/permissions#manage-permissions) se deniegan en lugar de solicitar. Esto hace que el modo sea completamente no interactivo para tuberías de CI o entornos restringidos donde predefines exactamente qué puede hacer Claude. Las sesiones en la nube en [Claude Code en la web](/es/claude-code-on-the-web) ignoran `defaultMode: "dontAsk"`; consulta [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) para obtener más detalles.352El modo `dontAsk` auto-deniega cada llamada de herramienta que de otro modo solicitaría. La barra de estado muestra `⏵⏵ don't ask on` mientras este modo está activo. Solo las acciones que coinciden con tus reglas `permissions.allow` y [comandos Bash de solo lectura](/es/permissions#read-only-commands) pueden ejecutarse; las reglas [`ask` explícitas](/es/permissions#manage-permissions) se deniegan en lugar de solicitar. {/* min-version: 2.1.199 */}A partir de v2.1.199, una herramienta MCP marcada con [`_meta["anthropic/requiresUserInteraction"]`](/es/mcp#require-approval-for-a-specific-tool) también se deniega en este modo incluso cuando una regla de permiso coincide, porque su tarjeta de aprobación necesita una respuesta que este modo nunca recopila. Esto hace que el modo sea completamente no interactivo para tuberías de CI o entornos restringidos donde predefines exactamente qué puede hacer Claude. Las sesiones en la nube en [Claude Code en la web](/es/claude-code-on-the-web) ignoran `defaultMode: "dontAsk"`; consulta [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) para obtener más detalles.

338 353 

339Establécelo al inicio con la bandera:354Establécelo al inicio con la bandera:

340 355 


346 Omitir todas las verificaciones con modo bypassPermissions361 Omitir todas las verificaciones con modo bypassPermissions

347</h2>362</h2>

348 363 

349El modo `bypassPermissions` desactiva los avisos de permisos y las verificaciones de seguridad para que las llamadas de herramientas se ejecuten inmediatamente. A partir de v2.1.126, esto incluye escrituras en [rutas protegidas](#protected-paths), que las versiones anteriores aún solicitaban. Las [reglas ask](/es/permissions#manage-permissions) explícitas aún fuerzan un aviso en este modo, y las eliminaciones dirigidas al directorio raíz del sistema de archivos o al directorio de inicio, como `rm -rf /` y `rm -rf ~`, aún solicitan como un cortacircuitos contra errores del modelo. Use este modo solo en entornos aislados como contenedores, máquinas virtuales, o dev containers sin acceso a internet, donde Claude Code no puede dañar su sistema anfitrión.364El modo `bypassPermissions` desactiva los avisos de permisos y las verificaciones de seguridad para que las llamadas de herramientas se ejecuten inmediatamente. A partir de v2.1.126, esto incluye escrituras en [rutas protegidas](#protected-paths), que las versiones anteriores aún solicitaban. Las [reglas ask](/es/permissions#manage-permissions) explícitas aún fuerzan un aviso en este modo, y las eliminaciones dirigidas al directorio raíz del sistema de archivos o al directorio de inicio, como `rm -rf /` y `rm -rf ~`, aún solicitan como un cortacircuitos contra errores del modelo. {/* min-version: 2.1.199 */}A partir de v2.1.199, las herramientas MCP marcadas con [`_meta["anthropic/requiresUserInteraction"]`](/es/mcp#require-approval-for-a-specific-tool) también aún solicitan. Use este modo solo en entornos aislados como contenedores, máquinas virtuales, o dev containers sin acceso a internet, donde Claude Code no puede dañar su sistema anfitrión.

350 365 

351No puede entrar en `bypassPermissions` desde una sesión que se inició sin una de las banderas de habilitación; reinicie con una para habilitarlo:366No puede entrar en `bypassPermissions` desde una sesión que se inició sin una de las banderas de habilitación; reinicie con una para habilitarlo:

352 367 

permissions.md +14 −3

Details

272Las reglas Read y Edit siguen la especificación [gitignore](https://git-scm.com/docs/gitignore) con cuatro tipos de patrones distintos:272Las reglas Read y Edit siguen la especificación [gitignore](https://git-scm.com/docs/gitignore) con cuatro tipos de patrones distintos:

273 273 

274| Patrón | Significado | Ejemplo | Coincide |274| Patrón | Significado | Ejemplo | Coincide |

275| ----------------- | --------------------------------------------------- | -------------------------------- | ------------------------------ |275| ----------------- | --------------------------------------------------- | -------------------------------- | --------------------------------------------------------- |

276| `//path` | Ruta absoluta desde la raíz del sistema de archivos | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |276| `//path` | Ruta absoluta desde la raíz del sistema de archivos | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

277| `~/path` | Ruta desde el directorio home | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |277| `~/path` | Ruta desde el directorio home | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

278| `/path` | Ruta relativa a la raíz del proyecto | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |278| `/path` | Ruta relativa a la fuente de configuración | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` en configuración de proyecto |

279| `path` o `./path` | Ruta relativa al directorio actual | `Read(*.env)` | `<cwd>/*.env` |279| `path` o `./path` | Ruta relativa al directorio actual | `Read(*.env)` | `<cwd>/*.env` |

280 280 

281<Warning>281<Warning>

282 Un patrón como `/Users/alice/file` NO es una ruta absoluta. Es relativa a la raíz del proyecto. Use `//Users/alice/file` para rutas absolutas.282 Un patrón como `/Users/alice/file` no es una ruta absoluta. La barra diagonal inicial única se ancla en la fuente de configuración, no en la raíz del sistema de archivos. Use `//Users/alice/file` para rutas absolutas.

283</Warning>283</Warning>

284 284 

285Un patrón `/path` se ancla en el directorio asociado con el archivo de configuración que lo define, por lo que la misma regla coincide con diferentes ubicaciones dependiendo de dónde la coloque:

286 

287| Regla definida en | `/path` se resuelve a |

288| :-------------------------------------------------------------- | :------------------------- |

289| Configuración de proyecto o local, como `.claude/settings.json` | `<project root>/path` |

290| Configuración de usuario en `~/.claude/settings.json` | `~/.claude/path` |

291| Un archivo pasado con `--settings <file>` | `<directory of file>/path` |

292| Banderas CLI, `/permissions` o reglas de sesión | `<original cwd>/path` |

293 

294Una regla de negación como `Read(/secrets/**)` en configuración de usuario bloquea `~/.claude/secrets/**`, no un directorio `secrets` en su proyecto. Para escribir una regla en configuración de usuario que se aplique dentro de cada proyecto, use una ruta absoluta `//` o una ruta relativa a home `~/` en su lugar.

295 

285En Windows, las rutas se normalizan a forma POSIX antes de coincidir. `C:\Users\alice` se convierte en `/c/Users/alice`, así que use `//c/**/.env` para coincidir con archivos `.env` en cualquier lugar de esa unidad. Para coincidir en todas las unidades, use `//**/.env`.296En Windows, las rutas se normalizan a forma POSIX antes de coincidir. `C:\Users\alice` se convierte en `/c/Users/alice`, así que use `//c/**/.env` para coincidir con archivos `.env` en cualquier lugar de esa unidad. Para coincidir en todas las unidades, use `//**/.env`.

286 297 

287Ejemplos:298Ejemplos:

plugins.md +2 −2

Details

352A medida que haga cambios en su plugin, ejecute `/reload-plugins` para recoger las actualizaciones sin reiniciar. Esto recarga plugins, skills, agentes, hooks, servidores MCP de plugin y servidores LSP de plugin. Pruebe los componentes de su plugin:352A medida que haga cambios en su plugin, ejecute `/reload-plugins` para recoger las actualizaciones sin reiniciar. Esto recarga plugins, skills, agentes, hooks, servidores MCP de plugin y servidores LSP de plugin. Pruebe los componentes de su plugin:

353 353 

354* Pruebe sus skills con `/plugin-name:skill-name`354* Pruebe sus skills con `/plugin-name:skill-name`

355* Verifique que los agentes aparezcan en `/agents`355* Verifique que los agentes aparezcan en `/context` bajo Agentes Personalizados, o mencione uno con @-mention por su nombre con alcance

356* Verifique que los hooks funcionen como se espera356* Verifique que los hooks funcionen como se espera

357 357 

358<Tip>358<Tip>


502 claude --plugin-dir ./my-plugin502 claude --plugin-dir ./my-plugin

503 ```503 ```

504 504 

505 Pruebe cada componente: ejecute sus comandos, verifique que los agentes aparezcan en `/agents` y verifique que los hooks se activen correctamente.505 Pruebe cada componente: ejecute sus comandos, verifique que los agentes aparezcan en `/context`, y verifique que los hooks se activen correctamente.

506 </Step>506 </Step>

507</Steps>507</Steps>

508 508 

Details

79 79 

80**Puntos de integración**:80**Puntos de integración**:

81 81 

82* Los agents aparecen en la interfaz `/agents`82* Los agents aparecen en la interfaz [@-mention typeahead](/es/sub-agents#invoke-subagents-explicitly) bajo su nombre con alcance, como `my-plugin:code-reviewer`, una vez que el plugin está habilitado

83* Claude puede invocar agents automáticamente según el contexto de la tarea83* Claude puede invocar agents automáticamente según el contexto de la tarea

84* Los agents pueden ser invocados manualmente por los usuarios84* Los agents pueden ser invocados manualmente por los usuarios

85* Los agents del plugin funcionan junto con los agents integrados de Claude85* Los agents del plugin funcionan junto con los agents integrados de Claude

sandboxing.md +43 −5

Details

199 Proteger credenciales199 Proteger credenciales

200</h3>200</h3>

201 201 

202La configuración `sandbox.credentials` declara archivos de credenciales y variables de entorno a las que los comandos aislados no deben acceder. Las rutas de archivo enumeradas se deniegan para lecturas dentro del sandbox, el mismo bloque que aplica `filesystem.denyRead`, y las variables de entorno enumeradas se desactivan antes de que se ejecute cada comando aislado. El bloque dedicado `credentials` mantiene las reglas de credenciales agrupadas con la desactivación de variables de entorno y separadas de las reglas generales del sistema de archivos. Requiere Claude Code v2.1.187 o posterior.202La configuración `sandbox.credentials` declara archivos de credenciales y variables de entorno a proteger de los comandos aislados. Cada entrada nombra una ruta de archivo o una variable de entorno y un `mode`. El bloque dedicado `credentials` mantiene las reglas de credenciales agrupadas juntas y separadas de las reglas generales del sistema de archivos. Requiere Claude Code v2.1.187 o posterior.

203 

204Para entradas con `"mode": "deny"`, las rutas de archivo se deniegan para lecturas dentro del sandbox, la misma restricción que aplica `filesystem.denyRead`, y las variables de entorno se desactivan antes de que se ejecute cada comando aislado.

203 205 

204El ejemplo a continuación bloquea las lecturas del archivo de credenciales de AWS y el directorio SSH y elimina `GITHUB_TOKEN` y `NPM_TOKEN` del entorno de los comandos aislados:206El ejemplo a continuación bloquea las lecturas del archivo de credenciales de AWS y el directorio SSH y elimina `GITHUB_TOKEN` y `NPM_TOKEN` del entorno de los comandos aislados:

205 207 


221}223}

222```224```

223 225 

224Cada entrada lleva `"mode": "deny"`, que es el único valor admitido. El campo `mode` explícito mantiene el esquema compatible hacia adelante con modos futuros. Las rutas de archivo siguen las mismas [reglas de prefijo](/es/settings#sandbox-path-prefixes) que las configuraciones `sandbox.filesystem.*`, y las entradas de cada [ámbito de configuración](/es/settings#settings-precedence) se fusionan. Debido a que el único modo es `deny`, cualquier ámbito puede agregar restricciones pero ninguno puede eliminarlas.226Las entradas de archivo admiten solo `"mode": "deny"`. Las entradas de variables de entorno también aceptan `"mode": "mask"`, descrito a continuación.

227 

228Las rutas de archivo siguen las mismas [reglas de prefijo](/es/settings#sandbox-path-prefixes) que las configuraciones `sandbox.filesystem.*`, y las entradas `deny` de cada [ámbito de configuración](/es/settings#settings-precedence) se fusionan. Una entrada `deny` solo estrecha el acceso, por lo que cualquier ámbito puede agregar una, pero ningún ámbito puede eliminar una que otro ámbito haya agregado.

225 229 

226No hay una lista de denegación de credenciales integrada, por lo que solo los archivos y variables que enumere están restringidos. La configuración afecta solo a los comandos Bash aislados. Para eliminar las credenciales de Anthropic y del proveedor de nube de todos los subprocesos independientemente del sandboxing, establezca [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/es/env-vars).230No hay una lista de denegación de credenciales integrada, por lo que solo los archivos y variables que enumere están restringidos. La configuración afecta solo a los comandos Bash aislados. Para eliminar las credenciales de Anthropic y del proveedor de nube de todos los subprocesos independientemente del sandboxing, establezca [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/es/env-vars).

227 231 

232<h4 id="mask-environment-variables">

233 Enmascarar variables de entorno

234</h4>

235 

236`"mode": "mask"` protege una credencial mientras mantiene funcionando las herramientas que se autentican con ella. `deny` elimina la variable por completo, lo que también rompe las herramientas que la necesitan, como `gh` o `npm`. Requiere Claude Code v2.1.199 o posterior.

237 

238Con `mask`, el comando aislado ve un valor centinela por sesión en lugar del real. Cuando una solicitud sale del sandbox para uno de los `injectHosts` de la credencial, el [proxy del sandbox](#network-isolation) reemplaza el centinela con el valor real. El comando y cualquier cosa que registre nunca contienen la credencial real, pero sus solicitudes aún se autentican.

239 

240El proxy sustituye la credencial dentro del contenido de la solicitud, por lo que tiene que verla. Establezca [`network.tlsTerminate`](/es/settings#sandbox-settings) para que el proxy termine HTTPS por sí mismo. Sin él, el enmascaramiento falla cerrado: el comando aún ve solo el centinela, pero el centinela llega al servidor sin cambios y la autenticación falla. Claude Code reporta esta configuración incorrecta al inicio y en `/doctor`.

241 

242El ejemplo a continuación enmascara dos tokens. `GH_TOKEN` se sustituye solo en solicitudes a `api.github.com`, mientras que `NPM_TOKEN` no tiene `injectHosts` y se sustituye en solicitudes a cada host en `network.allowedDomains`. Cada entrada `injectHosts` debe estar cubierta por `network.allowedDomains`.

243 

244```json theme={null}

245{

246 "sandbox": {

247 "enabled": true,

248 "network": {

249 "tlsTerminate": {},

250 "allowedDomains": ["*.github.com", "registry.npmjs.org"]

251 },

252 "credentials": {

253 "envVars": [

254 { "name": "GH_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] },

255 { "name": "NPM_TOKEN", "mode": "mask" }

256 ]

257 }

258 }

259}

260```

261 

262A diferencia de `deny`, el enmascaramiento autoriza al proxy a enviar su credencial real a los hosts enumerados, por lo que se honra solo desde configuraciones que usted o su administrador controlan: configuración de usuario, configuración administrada y la bandera CLI `--settings`. Las entradas `mask`, `network.tlsTerminate` y [`credentials.allowPlaintextInject`](/es/settings#sandbox-settings) en el `.claude/settings.json` o `.claude/settings.local.json` de un repositorio se ignoran.

263 

264Cuando la misma variable se enumera con `deny` en cualquier ámbito, `deny` tiene prioridad.

265 

228<h2 id="how-sandboxing-works">266<h2 id="how-sandboxing-works">

229 Cómo funciona el sandboxing267 Cómo funciona el sandboxing

230</h2>268</h2>


255* **Cobertura integral**: las restricciones se aplican a todos los scripts, programas y subprocesos generados por comandos293* **Cobertura integral**: las restricciones se aplican a todos los scripts, programas y subprocesos generados por comandos

256 294 

257<Note>295<Note>

258 El proxy integrado aplica la lista de permitidos basada en el nombre de host solicitado y no termina ni inspecciona el tráfico TLS. Consulte [Limitaciones de seguridad](#security-limitations) para las implicaciones de este diseño, y [Configuración de proxy personalizado](#custom-proxy-configuration) si su modelo de amenaza requiere inspección de TLS.296 El proxy integrado aplica la lista de permitidos basada en el nombre de host solicitado y, de forma predeterminada, no termina ni inspecciona el tráfico TLS. {/* min-version: 2.1.199 */}La configuración experimental [`network.tlsTerminate`](/es/settings#sandbox-settings), disponible en Claude Code v2.1.199 y posterior, hace que el proxy integrado termine TLS por sí mismo, lo que requieren las entradas de credenciales [`mask`](#protect-credentials). Consulte [Limitaciones de seguridad](#security-limitations) para las implicaciones del comportamiento predeterminado, y [Configuración de proxy personalizado](#custom-proxy-configuration) si su modelo de amenaza requiere inspección de TLS.

259</Note>297</Note>

260 298 

261<h3 id="os-level-enforcement">299<h3 id="os-level-enforcement">


412 Limitaciones de seguridad450 Limitaciones de seguridad

413</h3>451</h3>

414 452 

415* **Filtrado de red**: el sistema de filtrado de red funciona restringiendo los dominios a los que se permite que se conecten los procesos. El proxy integrado no termina ni realiza inspección de TLS en el tráfico saliente, por lo que el contenido de las conexiones cifradas no se examina. Usted es responsable de asegurarse de que solo se permitan dominios confiables en su política.453* **Filtrado de red**: el sandbox restringe los dominios a los que se permite que se conecten los procesos. De forma predeterminada, el proxy integrado no termina ni inspecciona TLS en el tráfico saliente, por lo que el contenido de las conexiones cifradas no se examina. La configuración experimental [`network.tlsTerminate`](/es/settings#sandbox-settings) termina TLS en el proxy para [sustitución de credenciales `mask`](#protect-credentials) pero no añade filtrado de contenido. Usted es responsable de asegurarse de que solo se permitan dominios confiables en su política.

416 454 

417<Warning>455<Warning>

418 Permitir dominios amplios como `github.com` puede crear caminos para exfiltración de datos. Porque el proxy toma su decisión de permitir del nombre de host suministrado por el cliente sin inspeccionar TLS, el código que se ejecuta dentro del sandbox puede potencialmente usar [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) u técnicas similares para alcanzar hosts fuera de la lista de permitidos. Si su modelo de amenaza requiere garantías más fuertes, configure un [proxy personalizado](#custom-proxy-configuration) que termine TLS e inspeccione tráfico, e instale su certificado CA dentro del sandbox. El aislamiento de red consciente de TLS más fuerte es un área activa de desarrollo.456 Permitir dominios amplios como `github.com` puede crear caminos para exfiltración de datos. Porque el proxy toma su decisión de permitir del nombre de host suministrado por el cliente sin inspeccionar TLS, el código que se ejecuta dentro del sandbox puede potencialmente usar [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) u técnicas similares para alcanzar hosts fuera de la lista de permitidos. Si su modelo de amenaza requiere garantías más fuertes, configure un [proxy personalizado](#custom-proxy-configuration) que termine TLS e inspeccione tráfico, e instale su certificado CA dentro del sandbox. El aislamiento de red consciente de TLS más fuerte es un área activa de desarrollo.


440 478 

441* **Herramientas de archivo integradas**: Read, Edit y Write usan el sistema de permisos directamente en lugar de ejecutarse a través del sandbox. Consulte [permisos](/es/permissions).479* **Herramientas de archivo integradas**: Read, Edit y Write usan el sistema de permisos directamente en lugar de ejecutarse a través del sandbox. Consulte [permisos](/es/permissions).

442* **Uso de computadora**: cuando Claude abre aplicaciones y controla su pantalla, se ejecuta en su escritorio real en lugar de en un entorno aislado. Las solicitudes de permiso por aplicación controlan cada aplicación. Consulte [uso de computadora en CLI](/es/computer-use) o [uso de computadora en Desktop](/es/desktop#let-claude-use-your-computer).480* **Uso de computadora**: cuando Claude abre aplicaciones y controla su pantalla, se ejecuta en su escritorio real en lugar de en un entorno aislado. Las solicitudes de permiso por aplicación controlan cada aplicación. Consulte [uso de computadora en CLI](/es/computer-use) o [uso de computadora en Desktop](/es/desktop#let-claude-use-your-computer).

443* **Variables de entorno**: los comandos Bash aislados heredan el entorno del proceso padre de forma predeterminada, incluidas las credenciales establecidas allí. Use [`sandbox.credentials`](#protect-credentials) para eliminar variables específicas para comandos aislados, o establezca [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/es/env-vars) para eliminar credenciales de Anthropic y proveedores de nube de todos los subprocesos.481* **Variables de entorno**: los comandos Bash aislados heredan el entorno del proceso padre de forma predeterminada, incluidas las credenciales establecidas allí. Use [`sandbox.credentials`](#protect-credentials) para desactivar o enmascarar variables específicas para comandos aislados, o establezca [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/es/env-vars) para eliminar credenciales de Anthropic y proveedores de nube de todos los subprocesos.

444* **Subagentes**: los [subagentes](/es/sub-agents) se ejecutan en el mismo proceso que la sesión padre y usan la misma configuración de sandbox. Los comandos Bash dentro de un subagente están aislados cuando el sandboxing está habilitado en la sesión padre.482* **Subagentes**: los [subagentes](/es/sub-agents) se ejecutan en el mismo proceso que la sesión padre y usan la misma configuración de sandbox. Los comandos Bash dentro de un subagente están aislados cuando el sandboxing está habilitado en la sesión padre.

445 483 

446<Warning>484<Warning>

Details

153 153 

154La configuración administrada por servidor y la [configuración administrada por endpoint](/es/settings#settings-files) ocupan el nivel más alto en la [jerarquía de configuración](/es/settings#settings-precedence) de Claude Code. Ningún otro nivel de configuración puede anularlas, incluidos los argumentos de línea de comandos.154La configuración administrada por servidor y la [configuración administrada por endpoint](/es/settings#settings-files) ocupan el nivel más alto en la [jerarquía de configuración](/es/settings#settings-precedence) de Claude Code. Ningún otro nivel de configuración puede anularlas, incluidos los argumentos de línea de comandos.

155 155 

156Dentro del nivel administrado, una [policyHelper](/es/settings#compute-managed-settings-with-a-policy-helper) configurada tiene prioridad sobre todas las demás fuentes administradas, incluida la configuración administrada por servidor: su salida se convierte en la única configuración administrada para la ejecución. De lo contrario, la primera fuente que entrega una configuración no vacía gana. La configuración administrada por servidor se verifica primero, luego la configuración administrada por endpoint. Las fuentes no se fusionan: si la configuración administrada por servidor entrega alguna clave, la configuración administrada por endpoint se ignora completamente. Se aplica una excepción: un pequeño conjunto de [claves de bloqueo entre fuentes](/es/settings#settings-precedence), como los bloqueos de lista de permitidos de sandbox, se respeta cuando cualquier fuente administrada controlada por administrador los establece; el nivel de registro HKCU escribible por el usuario se excluye. Si la configuración administrada por servidor no entrega nada, se aplica la configuración administrada por endpoint.156Dentro del nivel administrado, una [policyHelper](/es/settings#compute-managed-settings-with-a-policy-helper) configurada tiene prioridad sobre todas las demás fuentes administradas, incluida la configuración administrada por servidor: su salida se convierte en la única configuración administrada para la ejecución.

157 

158De lo contrario, Claude Code utiliza la primera fuente que entrega una configuración no vacía. La configuración administrada por servidor se verifica primero, luego la configuración administrada por endpoint. Las fuentes no se fusionan: si la configuración administrada por servidor entrega alguna clave, la configuración administrada por endpoint se ignora. Si la configuración administrada por servidor no entrega nada, se aplica la configuración administrada por endpoint.

159 

160Se aplica una excepción: un pequeño conjunto de [claves de bloqueo entre fuentes](/es/settings#settings-precedence), como los bloqueos de lista de permitidos de sandbox, se respeta cuando cualquier fuente administrada controlada por administrador los establece; el nivel de registro HKCU escribible por el usuario se excluye.

157 161 

158Si borra su configuración administrada por servidor en la consola de administración con la intención de volver a una política plist administrada por endpoint o de registro, tenga en cuenta que la [configuración en caché](#fetch-and-caching-behavior) persiste en máquinas cliente hasta la siguiente obtención exitosa. Ejecute `/status` para ver qué fuente administrada está activa.162Si borra su configuración administrada por servidor en la consola de administración con la intención de volver a una política plist administrada por endpoint o de registro, tenga en cuenta que la [configuración en caché](#fetch-and-caching-behavior) persiste en máquinas cliente hasta la siguiente obtención exitosa. Ejecute `/status` para ver qué fuente administrada está activa.

159 163 


171 175 

172**Lanzamientos posteriores con configuración en caché:**176**Lanzamientos posteriores con configuración en caché:**

173 177 

174* La configuración en caché se aplica inmediatamente al inicio178* La configuración en caché se aplica inmediatamente al inicio, excepto para las variables de entorno de transporte, enrutamiento y autenticación descritas a continuación

175* Claude Code obtiene configuración nueva en segundo plano179* Claude Code obtiene configuración nueva en segundo plano

176* La configuración en caché persiste a través de fallos de red180* La configuración en caché persiste a través de fallos de red. Las variables retenidas permanecen retenidas hasta que una obtención se realiza correctamente

181 

182A partir de v2.1.198, Claude Code retiene tres categorías de variables en el bloque `env` en caché hasta que el servidor confirma la carga útil para la sesión. Esto evita que un valor de proxy, autoridad de certificación, endpoint o credencial en caché redirija, intercepte o reautentique la obtención de configuración que confirma la carga útil. El endurecimiento se aplica solo a la caché de configuración obtenida del servidor: la [configuración administrada por endpoint](/es/settings#settings-files) implementada a través de MDM o `managed-settings.json` no se ve afectada. Las categorías retenidas son:

183 

184* Configuración de proxy y TLS, como `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` y las variables de certificado de cliente mTLS `CLAUDE_CODE_CLIENT_CERT` y `CLAUDE_CODE_CLIENT_KEY`

185* Enrutamiento de API y selección de proveedor, incluido `ANTHROPIC_BASE_URL`, las variables de selección de proveedor como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, y las URL de endpoint del proveedor como `ANTHROPIC_BEDROCK_BASE_URL`

186* Credenciales de autenticación, como `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` y `CLAUDE_CODE_OAUTH_TOKEN`

187 

188Todas las demás claves en el bloque `env` en caché, como la telemetría y la configuración de OpenTelemetry, se aplican al inicio como antes. Una vez que la obtención se realiza correctamente, las variables retenidas se aplican para el resto de la sesión.

189 

190Si su organización necesita un proxy para llegar a `api.anthropic.com`, establézcalo en el entorno de shell o en la [configuración del usuario](/es/settings#settings-files) en lugar de solo en el bloque `env` administrado. El primer lanzamiento no tiene caché, por lo que esas fuentes ya eran necesarias para la obtención inicial.

177 191 

178Claude Code aplica actualizaciones de configuración automáticamente sin reinicio, excepto para configuraciones avanzadas como la configuración de OpenTelemetry, que requieren un reinicio completo para tomar efecto.192Claude Code aplica actualizaciones de configuración automáticamente sin reinicio, excepto para configuraciones avanzadas como la configuración de OpenTelemetry, que requieren un reinicio completo para tomar efecto.

179 193 


217 Diálogos de aprobación de seguridad231 Diálogos de aprobación de seguridad

218</h3>232</h3>

219 233 

220Ciertas configuraciones que podrían presentar riesgos de seguridad requieren aprobación explícita del usuario antes de ser aplicadas:234Ciertas configuraciones que podrían presentar riesgos de seguridad requieren aprobación explícita del usuario antes de que Claude Code las aplique:

221 235 

222* **Configuraciones de comandos de shell**: configuraciones que ejecutan comandos de shell236* **Configuraciones de comandos de shell**: configuraciones que ejecutan comandos de shell

223* **Variables de entorno personalizadas**: variables que no están en la lista de permitidos conocida y segura237* **Variables de entorno personalizadas**: variables que no están en la lista de permitidos conocida y segura


234 Disponibilidad de plataforma248 Disponibilidad de plataforma

235</h2>249</h2>

236 250 

237La configuración administrada por servidor requiere una conexión directa a `api.anthropic.com`, y la entrega requiere que la sesión se autentique con un inicio de sesión OAuth de organización o una clave API configurada directamente: las claves devueltas por un script [`apiKeyHelper`](/es/settings#available-settings) no activan la búsqueda de configuración. La configuración administrada por servidor no está disponible cuando se utilizan proveedores de modelos de terceros:251La configuración administrada por servidor requiere una conexión directa a `api.anthropic.com`, y la entrega requiere que la sesión se autentique con un inicio de sesión OAuth de organización o una clave API configurada directamente. Las claves devueltas por un script [`apiKeyHelper`](/es/settings#available-settings) no activan la búsqueda de configuración.

252 

253La configuración administrada por servidor no está disponible cuando se utilizan proveedores de modelos de terceros:

238 254 

239* Amazon Bedrock255* Amazon Bedrock

240* Google Vertex AI256* Google Vertex AI


259La configuración administrada por servidor proporciona aplicación de políticas centralizada, pero funciona como un control del lado del cliente, no como un límite de seguridad. En dispositivos no administrados, un usuario no necesita acceso de administrador o sudo para omitirla.275La configuración administrada por servidor proporciona aplicación de políticas centralizada, pero funciona como un control del lado del cliente, no como un límite de seguridad. En dispositivos no administrados, un usuario no necesita acceso de administrador o sudo para omitirla.

260 276 

261| Escenario | Comportamiento |277| Escenario | Comportamiento |

262| :-------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |278| :-------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

263| El usuario edita el archivo de configuración en caché | El archivo manipulado se aplica al inicio, pero la configuración correcta se restaura en la siguiente obtención del servidor |279| El usuario edita el archivo de configuración en caché | El archivo manipulado se aplica al inicio, pero la configuración correcta se restaura en la siguiente obtención del servidor. {/* min-version: 2.1.198 */}A partir de v2.1.198, las variables de entorno de transporte, enrutamiento de API y autenticación en el bloque `env` se [retienen hasta que el servidor confirma la carga útil](#fetch-and-caching-behavior) |

264| El usuario elimina el archivo de configuración en caché | Ocurre el comportamiento del primer lanzamiento: la configuración se obtiene de forma asincrónica con una breve ventana no aplicada |280| El usuario elimina el archivo de configuración en caché | Ocurre el comportamiento del primer lanzamiento: la configuración se obtiene de forma asincrónica con una breve ventana no aplicada |

265| 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 |281| 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 |

266| 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 |282| 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 |

267| La API no está disponible | La configuración en caché se aplica si está disponible, de lo contrario, la configuración administrada no se aplica hasta la siguiente obtención exitosa. Con `forceRemoteSettingsRefresh: true`, la CLI se cierra en lugar de continuar, excepto para [subcomandos `claude auth`](#enforce-fail-closed-startup) |283| La API no está disponible | La configuración en caché se aplica si está disponible, de lo contrario, la configuración administrada no se aplica hasta la siguiente obtención exitosa. {/* min-version: 2.1.198 */}A partir de v2.1.198, las variables de entorno de transporte, enrutamiento de API y autenticación en el bloque `env` en caché se [retienen en caso de fallo de obtención](#fetch-and-caching-behavior); el resto de la caché se sigue aplicando. Con `forceRemoteSettingsRefresh: true`, la CLI se cierra en lugar de continuar, excepto para [subcomandos `claude auth`](#enforce-fail-closed-startup) |

268| El usuario se autentica con una organización diferente | La configuración no se entrega para cuentas fuera de la organización administrada |284| El usuario se autentica con una organización diferente | La configuración no se entrega para cuentas fuera de la organización administrada |

269| 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 |285| 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 |

270| 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 |286| 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 |

sessions.md +2 −0

Details

97/branch try-streaming-approach97/branch try-streaming-approach

98```98```

99 99 

100Si omite el nombre, Claude Code nombra la nueva rama después del primer mensaje en la conversación. A partir de v2.1.198 esto también se aplica después de [compactación](/es/how-claude-code-works#when-context-fills-up); las versiones anteriores recurrieron al nombre literal `Branched conversation` en lugar de mirar más allá del resumen de compactación al mensaje original.

101 

100Desde la línea de comandos, combine `--continue` o `--resume` con `--fork-session`:102Desde la línea de comandos, combine `--continue` o `--resume` con `--fork-session`:

101 103 

102```bash theme={null}104```bash theme={null}

settings.md +17 −4

Details

398Configure el comportamiento avanzado de sandboxing. El sandboxing aísla comandos bash de su sistema de archivos y red. Consulte [Sandboxing](/es/sandboxing) para obtener detalles.398Configure el comportamiento avanzado de sandboxing. El sandboxing aísla comandos bash de su sistema de archivos y red. Consulte [Sandboxing](/es/sandboxing) para obtener detalles.

399 399 

400| Claves | Descripción | Ejemplo |400| Claves | Descripción | Ejemplo |

401| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |401| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |

402| `enabled` | Habilitar sandboxing de bash (macOS, Linux y WSL2). Predeterminado: false | `true` |402| `enabled` | Habilitar sandboxing de bash (macOS, Linux y WSL2). Predeterminado: false | `true` |

403| `failIfUnavailable` | Salir con un error al inicio si `sandbox.enabled` es true pero el sandbox no puede iniciarse (dependencias faltantes o plataforma no compatible). Cuando es false (predeterminado), se muestra una advertencia y los comandos se ejecutan sin sandbox. Destinado a implementaciones de configuraciones administradas que requieren sandboxing como una puerta dura | `true` |403| `failIfUnavailable` | Salir con un error al inicio si `sandbox.enabled` es true pero el sandbox no puede iniciarse (dependencias faltantes o plataforma no compatible). Cuando es false (predeterminado), se muestra una advertencia y los comandos se ejecutan sin sandbox. Destinado a implementaciones de configuraciones administradas que requieren sandboxing como una puerta dura | `true` |

404| `autoAllowBashIfSandboxed` | Aprobar automáticamente comandos bash cuando están en sandbox. Predeterminado: true | `true` |404| `autoAllowBashIfSandboxed` | Aprobar automáticamente comandos bash cuando están en sandbox. Predeterminado: true | `true` |


409| `filesystem.denyRead` | Rutas donde los comandos en sandbox no pueden leer. Las matrices se fusionan en todos los ámbitos de configuración. También se fusionan con rutas de reglas de permiso `Read(...)` denegadas. | `["~/.aws/credentials"]` |409| `filesystem.denyRead` | Rutas donde los comandos en sandbox no pueden leer. Las matrices se fusionan en todos los ámbitos de configuración. También se fusionan con rutas de reglas de permiso `Read(...)` denegadas. | `["~/.aws/credentials"]` |

410| `filesystem.allowRead` | Rutas para permitir nuevamente la lectura dentro de regiones `denyRead`. Tiene precedencia sobre `denyRead`. Las matrices se fusionan en todos los ámbitos de configuración. Use esto para crear patrones de acceso de lectura solo para el espacio de trabajo. | `["."]` |410| `filesystem.allowRead` | Rutas para permitir nuevamente la lectura dentro de regiones `denyRead`. Tiene precedencia sobre `denyRead`. Las matrices se fusionan en todos los ámbitos de configuración. Use esto para crear patrones de acceso de lectura solo para el espacio de trabajo. | `["."]` |

411| `filesystem.allowManagedReadPathsOnly` | (Solo configuraciones administradas) Solo se respetan rutas `allowRead` de configuraciones administradas. Las entradas `denyRead` aún se fusionan desde todas las fuentes. Predeterminado: false | `true` |411| `filesystem.allowManagedReadPathsOnly` | (Solo configuraciones administradas) Solo se respetan rutas `allowRead` de configuraciones administradas. Las entradas `denyRead` aún se fusionan desde todas las fuentes. Predeterminado: false | `true` |

412| `credentials.files` | Archivos o directorios de credenciales que los comandos en sandbox no pueden leer. Aplica el mismo bloqueo de lectura que `filesystem.denyRead`; la clave separada mantiene las rutas de credenciales agrupadas con `credentials.envVars` y aparte de las reglas generales del sistema de archivos. Cada entrada es `{ "path": "...", "mode": "deny" }`. Las rutas usan los mismos [prefijos](#sandbox-path-prefixes) que configuraciones `filesystem.*`. Las matrices se fusionan en todos los ámbitos de configuración. Solo se admite `deny`. Requiere Claude Code v2.1.187 o posterior. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |412| `credentials.files` | {/* min-version: 2.1.187 */}Archivos o directorios de credenciales que los comandos en sandbox no pueden leer. Aplica el mismo bloqueo de lectura que `filesystem.denyRead`; la clave separada mantiene las rutas de credenciales agrupadas con `credentials.envVars` y aparte de las reglas generales del sistema de archivos. Cada entrada es `{ "path": "...", "mode": "deny" }`. Las rutas usan los mismos [prefijos](#sandbox-path-prefixes) que configuraciones `filesystem.*`. Las matrices se fusionan en todos los ámbitos de configuración. Solo se admite `deny`. Requiere Claude Code v2.1.187 o posterior. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |

413| `credentials.envVars` | Variables de entorno a desestablecer antes de ejecutar comandos en sandbox. Cada entrada es `{ "name": "...", "mode": "deny" }`. Las matrices se fusionan en todos los ámbitos de configuración. Solo se admite `deny`. Requiere Claude Code v2.1.187 o posterior. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |413| `credentials.envVars` | {/* min-version: 2.1.187 */}Variables de entorno a [proteger de comandos en sandbox](/es/sandboxing#protect-credentials). Cada entrada tiene un `name` y un `mode`; el nombre debe comenzar con una letra o guion bajo y contener solo letras, dígitos y guiones bajos. `deny` elimina la variable del entorno de comandos en sandbox. Requiere Claude Code v2.1.187 o posterior. {/* min-version: 2.1.199 */}}`mask` reemplaza la variable con un valor centinela por sesión dentro del sandbox mientras el proxy del sandbox sustituye el valor real en solicitudes salientes a los `injectHosts` de esa entrada; requiere `network.tlsTerminate` y Claude Code v2.1.199 o posterior. Las entradas `mask` solo se honran desde configuraciones de usuario, administradas o CLI `--settings`, no desde `.claude/settings.json` o `.claude/settings.local.json`. Las matrices se fusionan en todos los ámbitos de configuración, y `deny` tiene precedencia cuando la misma variable aparece con ambos modos. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |

414| `credentials.envVars[].injectHosts` | Hosts donde el proxy del sandbox sustituye el valor real de una entrada `mask`. Cada host también debe estar cubierto por `network.allowedDomains`, ya sea exactamente o por un comodín. Cuando no está definido, el proxy sustituye el valor en solicitudes a cada host en `network.allowedDomains`. Se acepta pero se ignora cuando `mode` es `deny`. Requiere Claude Code v2.1.199 o posterior. {/* min-version: 2.1.199 */} | `["api.github.com"]` |

415| `credentials.allowPlaintextInject` | Permitir sustitución `mask` en solicitudes HTTP simples así como HTTPS terminado por TLS. En HTTP simple la identidad ascendente no se verifica y la credencial viaja en texto plano, así que deje esto desactivado fuera de redes de prueba confiables. Solo se honra desde configuraciones de usuario, administradas o CLI `--settings`, no desde `.claude/settings.json` o `.claude/settings.local.json`. Predeterminado: false. Requiere Claude Code v2.1.199 o posterior. {/* min-version: 2.1.199 */} | `true` |

414| `network.allowUnixSockets` | (Solo macOS) Rutas de socket Unix accesibles en sandbox. Se ignora en Linux y WSL2, donde el filtro seccomp no puede inspeccionar rutas de socket; use `allowAllUnixSockets` en su lugar. | `["~/.ssh/agent-socket"]` |416| `network.allowUnixSockets` | (Solo macOS) Rutas de socket Unix accesibles en sandbox. Se ignora en Linux y WSL2, donde el filtro seccomp no puede inspeccionar rutas de socket; use `allowAllUnixSockets` en su lugar. | `["~/.ssh/agent-socket"]` |

415| `network.allowAllUnixSockets` | Permitir todas las conexiones de socket Unix en sandbox. En Linux y WSL2 esta es la única forma de permitir sockets Unix, ya que omite el filtro seccomp que de otra manera bloquea llamadas `socket(AF_UNIX, ...)`. Predeterminado: false | `true` |417| `network.allowAllUnixSockets` | Permitir todas las conexiones de socket Unix en sandbox. En Linux y WSL2 esta es la única forma de permitir sockets Unix, ya que omite el filtro seccomp que de otra manera bloquea llamadas `socket(AF_UNIX, ...)`. Predeterminado: false | `true` |

416| `network.allowLocalBinding` | Permitir vinculación a puertos localhost (solo macOS). Predeterminado: false | `true` |418| `network.allowLocalBinding` | Permitir vinculación a puertos localhost (solo macOS). Predeterminado: false | `true` |


420| `network.allowManagedDomainsOnly` | (Solo configuraciones administradas) Solo se respetan `allowedDomains` y reglas de permiso `WebFetch(domain:...)` permitidas de configuraciones administradas. Los dominios de configuraciones de usuario, proyecto y local se ignoran. Los dominios no permitidos se bloquean automáticamente sin solicitar al usuario. Los dominios denegados aún se respetan desde todas las fuentes. Predeterminado: false | `true` |422| `network.allowManagedDomainsOnly` | (Solo configuraciones administradas) Solo se respetan `allowedDomains` y reglas de permiso `WebFetch(domain:...)` permitidas de configuraciones administradas. Los dominios de configuraciones de usuario, proyecto y local se ignoran. Los dominios no permitidos se bloquean automáticamente sin solicitar al usuario. Los dominios denegados aún se respetan desde todas las fuentes. Predeterminado: false | `true` |

421| `network.httpProxyPort` | Puerto de proxy HTTP usado si desea traer su propio proxy. Si no se especifica, Claude ejecutará su propio proxy. | `8080` |423| `network.httpProxyPort` | Puerto de proxy HTTP usado si desea traer su propio proxy. Si no se especifica, Claude ejecutará su propio proxy. | `8080` |

422| `network.socksProxyPort` | Puerto de proxy SOCKS5 usado si desea traer su propio proxy. Si no se especifica, Claude ejecutará su propio proxy. | `8081` |424| `network.socksProxyPort` | Puerto de proxy SOCKS5 usado si desea traer su propio proxy. Si no se especifica, Claude ejecutará su propio proxy. | `8081` |

425| `network.tlsTerminate` | Experimental. Terminar TLS dentro del proxy del sandbox para que pueda leer el contenido de solicitudes HTTPS. Requerido para sustitución de credenciales `mask` [](/es/sandboxing#protect-credentials). Establezca `{}` para generar una autoridad de certificación efímera para la sesión, o establezca `caCertPath` y `caKeyPath` para usar la suya propia. Solo se honra desde configuraciones de usuario, administradas o CLI `--settings`, no desde `.claude/settings.json` o `.claude/settings.local.json`. Requiere Claude Code v2.1.199 o posterior. {/* min-version: 2.1.199 */} | `{}` |

423| `enableWeakerNestedSandbox` | Habilitar sandbox más débil para entornos Docker sin privilegios (solo Linux y WSL2). **Reduce la seguridad.** Predeterminado: false | `true` |426| `enableWeakerNestedSandbox` | Habilitar sandbox más débil para entornos Docker sin privilegios (solo Linux y WSL2). **Reduce la seguridad.** Predeterminado: false | `true` |

424| `enableWeakerNetworkIsolation` | (Solo macOS) Permitir acceso al servicio de confianza TLS del sistema (`com.apple.trustd.agent`) en el sandbox. Requerido para herramientas basadas en Go como `gh`, `gcloud` y `terraform` para verificar certificados TLS cuando se usa `httpProxyPort` con un proxy MITM y CA personalizada. **Reduce la seguridad** al abrir una posible ruta de exfiltración de datos. Predeterminado: false | `true` |427| `enableWeakerNetworkIsolation` | (Solo macOS) Permitir acceso al servicio de confianza TLS del sistema (`com.apple.trustd.agent`) en el sandbox. Requerido para herramientas basadas en Go como `gh`, `gcloud` y `terraform` para verificar certificados TLS cuando se usa `httpProxyPort` con un proxy MITM y CA personalizada. **Reduce la seguridad** al abrir una posible ruta de exfiltración de datos. Predeterminado: false | `true` |

425| `allowAppleEvents` | (Solo macOS) Permitir que comandos en sandbox envíen Apple Events. Requerido para `open`, `osascript` y herramientas que abren URLs en un navegador, que de otra manera fallan con error `-600`. **Elimina el aislamiento de ejecución de código.** Los comandos en sandbox pueden lanzar otras aplicaciones sin sandbox sin solicitud del usuario; también pueden enviar comandos AppleScript a aplicaciones en ejecución como Terminal, sujeto al aviso de consentimiento de automatización por aplicación de macOS (TCC). Solo se honra desde configuraciones de usuario, administradas o CLI, no desde configuraciones de proyecto. Predeterminado: false | `true` |428| `allowAppleEvents` | (Solo macOS) Permitir que comandos en sandbox envíen Apple Events. Requerido para `open`, `osascript` y herramientas que abren URLs en un navegador, que de otra manera fallan con error `-600`. **Elimina el aislamiento de ejecución de código.** Los comandos en sandbox pueden lanzar otras aplicaciones sin sandbox sin solicitud del usuario; también pueden enviar comandos AppleScript a aplicaciones en ejecución como Terminal, sujeto al aviso de consentimiento de automatización por aplicación de macOS (TCC). Solo se honra desde configuraciones de usuario, administradas o CLI, no desde configuraciones de proyecto. Predeterminado: false | `true` |


6601. **Configuraciones administradas** ([administradas por servidor](/es/server-managed-settings), [políticas de MDM/nivel de SO](#configuration-scopes), o [configuraciones administradas](/es/settings#settings-files))6631. **Configuraciones administradas** ([administradas por servidor](/es/server-managed-settings), [políticas de MDM/nivel de SO](#configuration-scopes), o [configuraciones administradas](/es/settings#settings-files))

661 * Políticas implementadas por TI a través de entrega de servidor, perfiles de configuración MDM, políticas de registro o archivos de configuración administrados664 * Políticas implementadas por TI a través de entrega de servidor, perfiles de configuración MDM, políticas de registro o archivos de configuración administrados

662 * No pueden ser anuladas por ningún otro nivel, incluyendo argumentos de línea de comandos665 * No pueden ser anuladas por ningún otro nivel, incluyendo argumentos de línea de comandos

663 * Dentro del nivel administrado, la precedencia es: salida de [`policyHelper`](#compute-managed-settings-with-a-policy-helper), que cuando se configura es la única fuente administrada utilizada > remota (configuraciones administradas por servidor de claude.ai o políticas entregadas por [puerta de aplicaciones Claude](/es/claude-apps-gateway)) > políticas de MDM/nivel de SO > basada en archivos (`managed-settings.d/*.json` + `managed-settings.json`) > registro HKCU (solo Windows). Solo se usa una fuente administrada; las fuentes no se fusionan entre niveles, con una excepción: las claves de bloqueo de sandbox `sandbox.network.allowManagedDomainsOnly` y `sandbox.filesystem.allowManagedReadPathsOnly`, con sus listas blancas asociadas, `allowAllClaudeAiMcps`, y las rutas binarias de sandbox `sandbox.bwrapPath` y `sandbox.socatPath` se honran cuando cualquier fuente administrada controlada por administrador las establece; el nivel HKCU escribible por el usuario se excluye. Dentro del nivel basado en archivos, los archivos de entrega y el archivo base se fusionan juntos.666 * Dentro del nivel administrado, solo se usa una fuente y las otras se ignoran en lugar de fusionarse. Precedencia, de mayor a menor:

667 * Salida de [`policyHelper`](#compute-managed-settings-with-a-policy-helper): cuando se configura, esta es la única fuente administrada utilizada

668 * Remota (configuraciones administradas por servidor de claude.ai o políticas entregadas por [puerta de aplicaciones Claude](/es/claude-apps-gateway))

669 * Políticas de MDM/nivel de SO

670 * Basada en archivos (`managed-settings.d/*.json` y `managed-settings.json`, fusionadas juntas)

671 * Registro HKCU (solo Windows)

672 * Algunas claves son excepciones, honradas cuando cualquier fuente administrada controlada por administrador las establece en lugar de solo la fuente ganadora. La fuente de registro HKCU escribible por el usuario se excluye. Las claves de excepción son:

673 * las claves de bloqueo de sandbox `sandbox.network.allowManagedDomainsOnly` y `sandbox.filesystem.allowManagedReadPathsOnly`, con sus listas blancas asociadas

674 * `allowAllClaudeAiMcps`

675 * las rutas binarias de sandbox `sandbox.bwrapPath` y `sandbox.socatPath`

676 * [`forceRemoteSettingsRefresh`](/es/server-managed-settings)

664 * Los hosts de incrustación como Claude Desktop pueden suministrar política a través de la opción SDK `managedSettings`. De forma predeterminada, esto se ignora cuando está presente cualquier fuente administrada implementada por administrador: configuraciones administradas por servidor, una política de MDM o nivel de SO, o un archivo de configuración administrado. El fallback de registro HKCU escribible por el usuario no cuenta como una fuente administrada implementada por administrador. Los administradores pueden optar por establecer [`parentSettingsBehavior`](#available-settings) en `"merge"`. Los valores del incrustador se filtran para que puedan restringir la política administrada pero no flexibilizarla.677 * Los hosts de incrustación como Claude Desktop pueden suministrar política a través de la opción SDK `managedSettings`. De forma predeterminada, esto se ignora cuando está presente cualquier fuente administrada implementada por administrador: configuraciones administradas por servidor, una política de MDM o nivel de SO, o un archivo de configuración administrado. El fallback de registro HKCU escribible por el usuario no cuenta como una fuente administrada implementada por administrador. Los administradores pueden optar por establecer [`parentSettingsBehavior`](#available-settings) en `"merge"`. Los valores del incrustador se filtran para que puedan restringir la política administrada pero no flexibilizarla.

665 678 

6662. **Argumentos de línea de comandos**6792. **Argumentos de línea de comandos**

setup.md +1 −1

Details

453 Instalar con npm453 Instalar con npm

454</h3>454</h3>

455 455 

456También puede instalar Claude Code como un paquete npm global. El paquete requiere [Node.js 18 o posterior](https://nodejs.org/en/download).456También puede instalar Claude Code como un paquete npm global. A partir de v2.1.198, el paquete npm requiere [Node.js 22 o posterior](https://nodejs.org/en/download). En una versión anterior de Node.js, npm imprime una advertencia `EBADENGINE` durante la instalación en lugar de fallar; la instalación se completa y `claude` aún se ejecuta, ya que el paquete descarga un binario nativo que no utiliza su Node.js en tiempo de ejecución.

457 457 

458```bash theme={null}458```bash theme={null}

459npm install -g @anthropic-ai/claude-code459npm install -g @anthropic-ai/claude-code

skills.md +6 −0

Details

443 443 

444Si invoca un skill con argumentos pero el skill no incluye `$ARGUMENTS`, Claude Code añade `ARGUMENTS: <your input>` al final del contenido del skill para que Claude siga viendo lo que escribió.444Si invoca un skill con argumentos pero el skill no incluye `$ARGUMENTS`, Claude Code añade `ARGUMENTS: <your input>` al final del contenido del skill para que Claude siga viendo lo que escribió.

445 445 

446También puede apilar varios skills al inicio de un mensaje. A partir de v2.1.199, escribir `/code-review /fix-issue 123` carga ambos skills y pasa el texto final `123` como `$ARGUMENTS` a cada uno de ellos. En versiones anteriores, solo el primer skill se cargaba y recibía `/fix-issue 123` como texto de argumento literal.

447 

448Claude Code expande el primer skill más hasta cinco más apilados después de él. La expansión se detiene en el primer token que no es un skill invocable en línea por el usuario, por lo que un skill que se ejecuta como un [subagent bifurcado](#run-skills-in-a-subagent) o uno cuyos argumentos pueden comenzar con un comando de barra, como `/loop`, también termina allí; ese token y todo lo que viene después se convierte en el texto de argumento para cada skill expandido.

449 

446Para acceder a argumentos individuales por posición, utilice `$ARGUMENTS[N]` o la forma más corta `$N`:450Para acceder a argumentos individuales por posición, utilice `$ARGUMENTS[N]` o la forma más corta `$N`:

447 451 

448```yaml theme={null}452```yaml theme={null}


624| `"user-invocable-only"` | Oculto | Sí |628| `"user-invocable-only"` | Oculto | Sí |

625| `"off"` | Oculto | Oculto |629| `"off"` | Oculto | Oculto |

626 630 

631A partir de v2.1.199, `"off"` también oculta el skill de las listas de comandos anunciadas a clientes de [Remote Control](/es/remote-control) y a llamadores de [Agent SDK](/es/agent-sdk/slash-commands), no solo el menú `/` de terminal. Invocar un skill oculto por su nombre completo aún devuelve el error `skillOverrides` en lugar de ejecutarlo.

632 

627Un skill que está ausente de `skillOverrides` se trata como `"on"`. El ejemplo a continuación colapsa un skill a su nombre y desactiva otro por completo:633Un skill que está ausente de `skillOverrides` se trata como `"on"`. El ejemplo a continuación colapsa un skill a su nombre y desactiva otro por completo:

628 634 

629```json theme={null}635```json theme={null}

sub-agents.md +84 −66

Details

24 24 

25Claude utiliza la descripción de cada subagente para decidir cuándo delegar tareas. Cuando crea un subagente, escriba una descripción clara para que Claude sepa cuándo usarlo.25Claude utiliza la descripción de cada subagente para decidir cuándo delegar tareas. Cuando crea un subagente, escriba una descripción clara para que Claude sepa cuándo usarlo.

26 26 

27Claude Code incluye varios subagentes integrados como **Explore**, **Plan** y **general-purpose**. También puede crear subagentes personalizados para manejar tareas específicas.27Claude Code incluye varios subagentes integrados como Explore, Plan y general-purpose. También puede crear subagentes personalizados para manejar tareas específicas.

28 28 

29<h2 id="built-in-subagents">29<h2 id="built-in-subagents">

30 Subagentes integrados30 Subagentes integrados


38 <Tab title="Explore">38 <Tab title="Explore">

39 Un agente rápido y de solo lectura optimizado para buscar y analizar bases de código.39 Un agente rápido y de solo lectura optimizado para buscar y analizar bases de código.

40 40 

41 * **Modelo**: Haiku, que es rápido y de baja latencia41 * **Modelo**: hereda de la conversación principal, limitado a Opus en la API de Claude, por lo que Explore nunca se ejecuta en un modelo más costoso que el que ya eligió para la sesión

42 * **Herramientas**: herramientas de solo lectura; Write y Edit están denegados42 * **Herramientas**: herramientas de solo lectura; Write y Edit están denegados

43 * **Propósito**: descubrimiento de archivos, búsqueda de código, exploración de base de código43 * **Propósito**: descubrimiento de archivos, búsqueda de código, exploración de base de código

44 44 

45 {/* min-version: 2.1.198 */}A partir de v2.1.198, Explore hereda el modelo de la conversación principal en lugar de ejecutarse siempre en Haiku. En la API de Claude, el modelo heredado está limitado a Opus: una conversación principal en un nivel superior ejecuta Explore en Opus, y una conversación principal en Sonnet o Haiku ejecuta Explore en ese mismo modelo. En cualquier otro proveedor, como [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o Claude Platform en AWS](/es/third-party-integrations), Explore hereda el modelo de la conversación principal directamente.

46 

47 Un [subagente de usuario o proyecto](#choose-the-subagent-scope) llamado `Explore` anula el integrado y mantiene su propio campo `model`, así que defina uno con `model: haiku` para mantener la exploración en un modelo de menor costo.

48 

45 Claude delega en Explore cuando necesita buscar o entender una base de código sin hacer cambios. Esto mantiene los resultados de exploración fuera del contexto de su conversación principal.49 Claude delega en Explore cuando necesita buscar o entender una base de código sin hacer cambios. Esto mantiene los resultados de exploración fuera del contexto de su conversación principal.

46 50 

47 Al invocar Explore, Claude especifica un nivel de minuciosidad: **quick** para búsquedas dirigidas, **medium** para exploración equilibrada, o **very thorough** para análisis exhaustivo.51 Al invocar Explore, Claude especifica un nivel de minuciosidad: **quick** para búsquedas dirigidas, **medium** para exploración equilibrada, o **very thorough** para análisis exhaustivo.


77 </Tab>81 </Tab>

78</Tabs>82</Tabs>

79 83 

80Los subagentes integrados siempre se registran en sesiones interactivas. Para restringirlos:84Los subagentes integrados se registran por defecto en sesiones interactivas. Para restringirlos:

81 85 

82* Para bloquear un tipo integrado específico, agréguelo a `permissions.deny` como se muestra en [Deshabilitar subagentes específicos](#disable-specific-subagents).86* Para bloquear un tipo integrado específico, agréguelo a `permissions.deny` como se muestra en [Deshabilitar subagentes específicos](#disable-specific-subagents).

83* Para evitar que Claude delegue a cualquier subagente, deniegue la herramienta `Agent` en sí con [`permissions.deny`](/es/permissions#tool-specific-permission-rules).87* Para evitar que Claude delegue a cualquier subagente, deniegue la herramienta `Agent` en sí con [`permissions.deny`](/es/permissions#tool-specific-permission-rules).

88* {/* min-version: 2.1.198 */}Para eliminar solo los subagentes integrados `Explore` y `Plan`, establezca [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/es/env-vars). Claude lee y explora archivos directamente en lugar de delegarlos. Requiere Claude Code v2.1.198 o posterior.

84* En [modo no interactivo](/es/headless) y el [Agent SDK](/es/agent-sdk/overview), establezca [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/es/env-vars) para eliminar todos los tipos integrados y proporcionar solo los suyos.89* En [modo no interactivo](/es/headless) y el [Agent SDK](/es/agent-sdk/overview), establezca [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/es/env-vars) para eliminar todos los tipos integrados y proporcionar solo los suyos.

85 90 

86Más allá de estos subagentes integrados, puede crear los suyos propios con mensajes personalizados, restricciones de herramientas, modos de permisos, hooks y skills. Las siguientes secciones muestran cómo comenzar y personalizar subagentes.91Más allá de estos subagentes integrados, puede crear los suyos propios con mensajes personalizados, restricciones de herramientas, modos de permisos, hooks y skills. Las siguientes secciones muestran cómo comenzar y personalizar subagentes.


89 Inicio rápido: crear su primer subagente94 Inicio rápido: crear su primer subagente

90</h2>95</h2>

91 96 

92Los subagentes se definen en archivos Markdown con frontmatter YAML. Puede [crearlos manualmente](#write-subagent-files) o usar el comando `/agents`.97Los subagentes son archivos Markdown con frontmatter YAML. Para crear uno, pida a Claude que lo escriba por usted, o [escriba el archivo usted mismo](#write-subagent-files).

98 

99{/* min-version: 2.1.198 */}A partir de v2.1.198, el comando `/agents` ya no abre el asistente de creación interactivo; ejecutarlo imprime un recordatorio para pedir a Claude o editar `.claude/agents/` directamente. Los archivos de subagentes, los campos de frontmatter y las ubicaciones `.claude/agents/` y `~/.claude/agents/` no cambian; solo se elimina el asistente de terminal.

93 100 

94Este tutorial lo guía a través de la creación de un subagente a nivel de usuario con el comando `/agents`. El subagente revisa código y sugiere mejoras para la base de código.101Este tutorial crea un subagente a nivel de usuario que revisa código y sugiere mejoras.

95 102 

96<Steps>103<Steps>

97 <Step title="Abrir la interfaz de subagentes">104 <Step title="Pida a Claude que cree el subagente">

98 En Claude Code, ejecute:105 En Claude Code, describa el subagente que desea y dónde guardarlo:

99 106 

100 ```text wrap theme={null}107 ```text wrap theme={null}

101 /agents108 Create a personal code-improver subagent in ~/.claude/agents/ that scans

109 files and suggests improvements for readability, performance, and best

110 practices. It should explain each issue, show the current code, and

111 provide an improved version. Make it read-only and have it use Sonnet.

102 ```112 ```

103 </Step>

104 113 

105 <Step title="Elegir una ubicación">114 Claude escribe el archivo con un `name`, una `description`, una lista de `tools`, un `model` y un mensaje del sistema.

106 Cambie a la pestaña **Library**, seleccione **Create new agent**, luego elija **Personal**. Esto guarda el subagente en `~/.claude/agents/` para que esté disponible en todos sus proyectos.

107 </Step>115 </Step>

108 116 

109 <Step title="Generar con Claude">117 <Step title="Revise el archivo">

110 Seleccione **Generate with Claude**. Cuando se le solicite, describa el subagente:118 Abra `~/.claude/agents/code-improver.md` y confirme que el frontmatter coincida con lo que pidió. El resultado se ve así:

111 119 

112 ```text wrap theme={null}120 ```markdown theme={null}

113 A code improvement agent that scans files and suggests improvements121 ---

114 for readability, performance, and best practices. It should explain122 name: code-improver

115 each issue, show the current code, and provide an improved version.123 description: Scans files and suggests improvements for readability, performance, and best practices. Use after writing or modifying code.

124 tools: Read, Grep, Glob

125 model: sonnet

126 ---

127 

128 You are a code improvement specialist. For each issue you find, explain

129 the problem, show the current code, and provide an improved version.

116 ```130 ```

117 131 

118 Claude genera el identificador, descripción y mensaje del sistema para usted.132 Debido a que el archivo se encuentra en `~/.claude/agents/`, el subagente está disponible en cada proyecto en su máquina. Para limitarlo a un proyecto, muévalo al directorio `.claude/agents/` de ese proyecto. [Elija el alcance del subagente](#choose-the-subagent-scope) compara los dos.

119 </Step>

120 

121 <Step title="Seleccionar herramientas">

122 Para un revisor de solo lectura, deseleccione todo excepto **Read-only tools**. Si mantiene todas las herramientas seleccionadas, el subagente hereda todas las herramientas disponibles para la conversación principal.

123 </Step>133 </Step>

124 134 

125 <Step title="Seleccionar modelo">135 <Step title="Pruébelo">

126 Elija qué modelo usa el subagente. Para este agente de ejemplo, seleccione **Sonnet**, que equilibra capacidad y velocidad para analizar patrones de código.136 Pida a Claude que delegue en el nuevo subagente:

127 </Step>

128 

129 <Step title="Elegir un color">

130 Elija un color de fondo para el subagente. Esto le ayuda a identificar qué subagente se está ejecutando en la interfaz de usuario.

131 </Step>

132 

133 <Step title="Configurar memoria">

134 Seleccione **User scope** para dar al subagente un [directorio de memoria persistente](#enable-persistent-memory) en `~/.claude/agent-memory/`. El subagente usa esto para acumular insights entre conversaciones, como patrones de base de código y problemas recurrentes. Seleccione **None** si no desea que el subagente persista aprendizajes.

135 </Step>

136 

137 <Step title="Guardar e intentarlo">

138 Revise el resumen de configuración. Presione `s` o `Enter` para guardar, o presione `e` para guardar y editar el archivo en su editor. El subagente está disponible inmediatamente. Intente:

139 137 

140 ```text wrap theme={null}138 ```text wrap theme={null}

141 Use the code-improver agent to suggest improvements in this project139 Use the code-improver agent to suggest improvements in this project

142 ```140 ```

143 141 

144 Claude delega en su nuevo subagente, que escanea la base de código y devuelve sugerencias de mejora.142 Claude delega en su nuevo subagente, que escanea la base de código y devuelve sugerencias de mejora.

143 

144 Si Claude no puede encontrar el nuevo subagente, reinicie Claude Code e intente de nuevo. Esto sucede solo cuando `~/.claude/agents/` no existía antes de que la sesión comenzara, porque una sesión en ejecución no detecta un directorio `agents` recién creado.

145 </Step>145 </Step>

146</Steps>146</Steps>

147 147 

148Ahora tiene un subagente que puede usar en cualquier proyecto en su máquina para analizar bases de código y sugerir mejoras.148Ahora tiene un subagente que puede usar en cualquier proyecto en su máquina para analizar bases de código y sugerir mejoras.

149 149 

150También puede crear subagentes manualmente como archivos Markdown, definirlos mediante banderas CLI, o distribuirlos a través de plugins. Las siguientes secciones cubren todas las opciones de configuración.150También puede escribir archivos de subagentes a mano, definirlos mediante banderas CLI, o distribuirlos a través de plugins. Las siguientes secciones cubren todas las opciones de configuración.

151 

152<Note>

153 En Claude Code v2.1.197 y anteriores, `/agents` abre un asistente interactivo con una pestaña **Running** que enumera los subagentes activos y una pestaña **Library** para crearlos, editarlos y eliminarlos. {/* max-version: 2.1.197 */}

154</Note>

151 155 

152<h2 id="configure-subagents">156<h2 id="configure-subagents">

153 Configurar subagentes157 Configurar subagentes

154</h2>158</h2>

155 159 

156<h3 id="use-the-/agents-command">160La ubicación del archivo de un subagente determina quién tiene acceso a él, y su frontmatter determina qué puede hacer. Esta sección cubre dónde viven los archivos de subagentes y cada campo que soportan.

157 Usar el comando /agents

158</h3>

159 

160El comando `/agents` abre una interfaz con pestañas para administrar subagentes. La pestaña **Running** muestra subagentes activos y recientemente finalizados y le permite abrirlos o detenerlos. La pestaña **Library** le permite:

161 

162* Ver todos los subagentes disponibles (integrados, usuario, proyecto y plugin)

163* Crear nuevos subagentes con configuración guiada o generación de Claude

164* Editar la configuración de subagentes existentes y el acceso a herramientas

165* Eliminar subagentes personalizados

166* Ver qué subagentes están activos cuando existen duplicados

167 

168Esta es la forma recomendada de crear y administrar subagentes. Para creación manual o automatización, también puede agregar archivos de subagentes directamente.

169 161 

170<h3 id="choose-the-subagent-scope">162<h3 id="choose-the-subagent-scope">

171 Elegir el alcance del subagente163 Elegir el alcance del subagente

172</h3>164</h3>

173 165 

174Los subagentes son archivos Markdown con frontmatter YAML. Guárdelos en diferentes ubicaciones según el alcance. Cuando múltiples subagentes comparten el mismo nombre, Claude Code usa el de la ubicación de mayor prioridad.166Almacene archivos de subagentes en diferentes ubicaciones según el alcance. Cuando múltiples subagentes comparten el mismo nombre, Claude Code usa el de la ubicación de mayor prioridad.

175 167 

176| Ubicación | Alcance | Prioridad | Cómo crear |168| Ubicación | Alcance | Prioridad | Cómo crear |

177| :------------------------------ | :------------------------------ | :----------- | :------------------------------------------------------------------ |169| :------------------------------ | :------------------------------ | :----------- | :------------------------------------------------------------------ |

178| Configuración administrada | Toda la organización | 1 (más alta) | Implementado a través de [configuración administrada](/es/settings) |170| Configuración administrada | Toda la organización | 1 (más alta) | Implementado a través de [configuración administrada](/es/settings) |

179| Bandera CLI `--agents` | Sesión actual | 2 | Pasar JSON al lanzar Claude Code |171| Bandera CLI `--agents` | Sesión actual | 2 | Pasar JSON al lanzar Claude Code |

180| `.claude/agents/` | Proyecto actual | 3 | Interactivo o manual |172| `.claude/agents/` | Proyecto actual | 3 | Pedir a Claude, o crear el archivo manualmente |

181| `~/.claude/agents/` | Todos sus proyectos | 4 | Interactivo o manual |173| `~/.claude/agents/` | Todos sus proyectos | 4 | Pedir a Claude, o crear el archivo manualmente |

182| Directorio `agents/` del plugin | Donde el plugin está habilitado | 5 (más baja) | Instalado con [plugins](/es/plugins) |174| Directorio `agents/` del plugin | Donde el plugin está habilitado | 5 (más baja) | Instalado con [plugins](/es/plugins) |

183 175 

184**Los subagentes de proyecto** (`.claude/agents/`) son ideales para subagentes específicos de una base de código. Verifíquelos en control de versiones para que su equipo pueda usarlos y mejorarlos colaborativamente.176**Los subagentes de proyecto** (`.claude/agents/`) son ideales para subagentes específicos de una base de código. Verifíquelos en control de versiones para que su equipo pueda usarlos y mejorarlos colaborativamente.


239 231 

240**Los subagentes administrados** son implementados por administradores de la organización. Coloque archivos markdown en `.claude/agents/` dentro del [directorio de configuración administrada](/es/settings#settings-files), usando el mismo formato de frontmatter que los subagentes de proyecto y usuario. Las definiciones administradas tienen precedencia sobre los subagentes de proyecto y usuario con el mismo nombre.232**Los subagentes administrados** son implementados por administradores de la organización. Coloque archivos markdown en `.claude/agents/` dentro del [directorio de configuración administrada](/es/settings#settings-files), usando el mismo formato de frontmatter que los subagentes de proyecto y usuario. Las definiciones administradas tienen precedencia sobre los subagentes de proyecto y usuario con el mismo nombre.

241 233 

242**Los subagentes de plugin** provienen de [plugins](/es/plugins) que ha instalado. Aparecen en `/agents` junto a sus subagentes personalizados. Consulte la [referencia de componentes de plugin](/es/plugins-reference#agents) para obtener detalles sobre la creación de subagentes de plugin.234**Los subagentes de plugin** provienen de [plugins](/es/plugins) que ha instalado. Se cargan junto a sus subagentes personalizados y aparecen en la lista de @-mention bajo su nombre con alcance. Consulte la [referencia de componentes de plugin](/es/plugins-reference#agents) para obtener detalles sobre la creación de subagentes de plugin.

243 235 

244<Note>236<Note>

245 Por razones de seguridad, los subagentes de plugin no soportan los campos de frontmatter `hooks`, `mcpServers`, o `permissionMode`. Estos campos se ignoran al cargar agentes desde un plugin. Si los necesita, copie el archivo del agente en `.claude/agents/` o `~/.claude/agents/`. También puede agregar reglas a [`permissions.allow`](/es/settings#permission-settings) en `settings.json` o `settings.local.json`, pero estas reglas se aplican a toda la sesión, no solo al subagente del plugin.237 Por razones de seguridad, los subagentes de plugin no soportan los campos de frontmatter `hooks`, `mcpServers`, o `permissionMode`. Estos campos se ignoran al cargar agentes desde un plugin. Si los necesita, copie el archivo del agente en `.claude/agents/` o `~/.claude/agents/`. También puede agregar reglas a [`permissions.allow`](/es/settings#permission-settings) en `settings.json` o `settings.local.json`, pero estas reglas se aplican a toda la sesión, no solo al subagente del plugin.


254Los archivos de subagentes usan frontmatter YAML para configuración, seguido del mensaje del sistema en Markdown:246Los archivos de subagentes usan frontmatter YAML para configuración, seguido del mensaje del sistema en Markdown:

255 247 

256<Note>248<Note>

257 Los subagentes se cargan al inicio de la sesión. Si agrega o edita un archivo de subagente directamente en el disco, reinicie su sesión para cargarlo. Los subagentes creados a través de la interfaz `/agents` tienen efecto inmediatamente sin necesidad de reinicio.249 Claude Code observa `~/.claude/agents/` y `.claude/agents/`. Cuando agrega o edita un archivo de subagente en disco, o pide a Claude que escriba uno para usted, Claude Code detecta el cambio dentro de unos pocos segundos y la siguiente delegación usa la definición actualizada, sin necesidad de reinicio.

250 

251 Dos casos aún necesitan un reinicio:

252 

253 * El observador cubre solo directorios que existían cuando comenzó la sesión, por lo que después de crear el primer archivo de agente de un alcance en un nuevo directorio `agents`, reinicie para cargarlo.

254 * Las sesiones iniciadas con `--disable-slash-commands` no observan estos directorios en absoluto.

258</Note>255</Note>

259 256 

260```markdown theme={null}257```markdown theme={null}


292| `mcpServers` | No | [Servidores MCP](/es/mcp) disponibles para este subagente. Cada entrada es un nombre de servidor que hace referencia a un servidor ya configurado (por ejemplo, `"slack"`) o una definición en línea con el nombre del servidor como clave y una [configuración completa del servidor MCP](/es/mcp#installing-mcp-servers) como valor. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |289| `mcpServers` | No | [Servidores MCP](/es/mcp) disponibles para este subagente. Cada entrada es un nombre de servidor que hace referencia a un servidor ya configurado (por ejemplo, `"slack"`) o una definición en línea con el nombre del servidor como clave y una [configuración completa del servidor MCP](/es/mcp#installing-mcp-servers) como valor. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

293| `hooks` | No | [Hooks de ciclo de vida](#define-hooks-for-subagents) limitados a este subagente. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |290| `hooks` | No | [Hooks de ciclo de vida](#define-hooks-for-subagents) limitados a este subagente. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

294| `memory` | No | [Alcance de memoria persistente](#enable-persistent-memory): `user`, `project`, o `local`. Habilita aprendizaje entre sesiones |291| `memory` | No | [Alcance de memoria persistente](#enable-persistent-memory): `user`, `project`, o `local`. Habilita aprendizaje entre sesiones |

295| `background` | No | Establecer en `true` para ejecutar siempre este subagente como una [tarea de fondo](#run-subagents-in-foreground-or-background). Por defecto: `false` |292| `background` | No | Establecer en `true` para ejecutar siempre este subagente como una [tarea de fondo](#run-subagents-in-foreground-or-background), incluso cuando Claude necesita su resultado de inmediato. Cuando no se establece, Claude elige, y {/* min-version: 2.1.198 */}a partir de v2.1.198 ejecuta subagentes en segundo plano por defecto |

296| `effort` | No | Nivel de esfuerzo cuando este subagente está activo. Anula el nivel de esfuerzo de la sesión. Por defecto: hereda de la sesión. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo |293| `effort` | No | Nivel de esfuerzo cuando este subagente está activo. Anula el nivel de esfuerzo de la sesión. Por defecto: hereda de la sesión. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo |

297| `isolation` | No | Establecer en `worktree` para ejecutar el subagente en un [git worktree](/es/worktrees) temporal, dándole una copia aislada del repositorio ramificada por defecto desde su [rama predeterminada](/es/worktrees#choose-the-base-branch) en lugar del `HEAD` de la sesión principal. El worktree se limpia automáticamente si el subagente no realiza cambios |294| `isolation` | No | Establecer en `worktree` para ejecutar el subagente en un [git worktree](/es/worktrees) temporal, dándole una copia aislada del repositorio ramificada por defecto desde su [rama predeterminada](/es/worktrees#choose-the-base-branch) en lugar del `HEAD` de la sesión principal. El worktree se limpia automáticamente si el subagente no realiza cambios |

298| `color` | No | Color de visualización para el subagente en la lista de tareas y transcripción. Acepta `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan` |295| `color` | No | Color de visualización para el subagente en la lista de tareas y transcripción. Acepta `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan` |


318 315 

319{/* min-version: 2.1.196 */}A partir de v2.1.196, establecer `CLAUDE_CODE_SUBAGENT_MODEL` en `inherit` es lo mismo que dejarlo sin establecer: la resolución continúa con el parámetro `model` por invocación, luego el frontmatter. En versiones anteriores, `inherit` forzaba subagentes al modelo de la conversación principal e ignoraba ambas fuentes.316{/* min-version: 2.1.196 */}A partir de v2.1.196, establecer `CLAUDE_CODE_SUBAGENT_MODEL` en `inherit` es lo mismo que dejarlo sin establecer: la resolución continúa con el parámetro `model` por invocación, luego el frontmatter. En versiones anteriores, `inherit` forzaba subagentes al modelo de la conversación principal e ignoraba ambas fuentes.

320 317 

321La variable de entorno, el parámetro por invocación y los valores de frontmatter se verifican contra la lista de permitidos [`availableModels`](/es/model-config#restrict-model-selection) de su organización. Un valor que se resuelve a un modelo excluido no se usa y el subagente se ejecuta en el modelo heredado en su lugar.318Claude Code verifica la variable de entorno, el parámetro por invocación y los valores de frontmatter contra la lista de permitidos [`availableModels`](/es/model-config#restrict-model-selection) de su organización. Un valor que se resuelve a un modelo excluido no se usa y el subagente se ejecuta en el modelo heredado en su lugar.

319 

320{/* min-version: 2.1.198 */}A partir de v2.1.198, los subagentes también heredan la configuración de [pensamiento extendido](/es/model-config#extended-thinking) de la conversación principal: si el pensamiento está activado en su sesión, está activado para el subagente, y si está desactivado, permanece desactivado. No hay una configuración de pensamiento por subagente. Antes de v2.1.198, los subagentes se ejecutaban con pensamiento extendido deshabilitado independientemente de la configuración de la conversación principal.

322 321 

323<h3 id="control-subagent-capabilities">322<h3 id="control-subagent-capabilities">

324 Controlar capacidades de subagentes323 Controlar capacidades de subagentes


432Use the Playwright tools to navigate, screenshot, and interact with pages.431Use the Playwright tools to navigate, screenshot, and interact with pages.

433```432```

434 433 

435Las definiciones en línea usan el mismo esquema que las entradas del servidor `.mcp.json` (`stdio`, `http`, `sse`, `ws`), con clave del nombre del servidor.434Las definiciones en línea usan el mismo esquema que las entradas del servidor `.mcp.json`, con clave del nombre del servidor, y soportan los tipos `stdio`, `http`, `sse` y `ws`.

436 435 

437Para mantener un servidor MCP fuera de la conversación principal por completo y evitar que sus descripciones de herramientas consuman contexto allí, defínalo en línea aquí en lugar de en `.mcp.json`. El subagente obtiene las herramientas; la conversación principal no.436Para mantener un servidor MCP fuera de la conversación principal por completo y evitar que sus descripciones de herramientas consuman contexto allí, defínalo en línea aquí en lugar de en `.mcp.json`. El subagente obtiene las herramientas; la conversación principal no.

438 437 


528 Consejos de memoria persistente527 Consejos de memoria persistente

529</h5>528</h5>

530 529 

531* `project` es el alcance predeterminado recomendado. Hace que el conocimiento del subagente sea compartible a través de control de versiones. Use `user` cuando el conocimiento del subagente es ampliamente aplicable en proyectos, o `local` cuando el conocimiento no debe ser verificado en control de versiones.530* `project` es el alcance predeterminado recomendado. Hace que el conocimiento del subagente sea compartible a través de control de versiones.

532* Pida al subagente que consulte su memoria antes de comenzar el trabajo: "Review this PR, and check your memory for patterns you've seen before."531* Pida al subagente que consulte su memoria antes de comenzar el trabajo: "Review this PR, and check your memory for patterns you've seen before."

533* Pida al subagente que actualice su memoria después de completar una tarea: "Now that you're done, save what you learned to your memory." Con el tiempo, esto construye una base de conocimiento que hace que el subagente sea más efectivo.532* Pida al subagente que actualice su memoria después de completar una tarea: "Now that you're done, save what you learned to your memory." Con el tiempo, esto construye una base de conocimiento que hace que el subagente sea más efectivo.

534* Incluya instrucciones de memoria directamente en el archivo markdown del subagente para que mantenga proactivamente su propia base de conocimiento:533* Incluya instrucciones de memoria directamente en el archivo markdown del subagente para que mantenga proactivamente su propia base de conocimiento:


776* **Subagentes en primer plano** bloquean la conversación principal hasta completarse. Las solicitudes de permiso se le pasan a usted a medida que surgen.775* **Subagentes en primer plano** bloquean la conversación principal hasta completarse. Las solicitudes de permiso se le pasan a usted a medida que surgen.

777* **Subagentes en fondo** se ejecutan concurrentemente mientras continúa trabajando. {/* min-version: 2.1.186 */}A partir de v2.1.186, cuando un subagente en fondo alcanza una llamada de herramienta que necesita permiso, la solicitud aparece en su sesión principal y nombra el subagente que está preguntando. Apruebe para permitir que el subagente continúe, o presione Esc para denegar esa llamada de herramienta sin detener el subagente. Antes de v2.1.186, los subagentes en fondo denegaban automáticamente cualquier llamada de herramienta que habría solicitado.776* **Subagentes en fondo** se ejecutan concurrentemente mientras continúa trabajando. {/* min-version: 2.1.186 */}A partir de v2.1.186, cuando un subagente en fondo alcanza una llamada de herramienta que necesita permiso, la solicitud aparece en su sesión principal y nombra el subagente que está preguntando. Apruebe para permitir que el subagente continúe, o presione Esc para denegar esa llamada de herramienta sin detener el subagente. Antes de v2.1.186, los subagentes en fondo denegaban automáticamente cualquier llamada de herramienta que habría solicitado.

778 777 

779Claude decide si ejecutar subagentes en primer plano o fondo basado en la tarea. También puede:778{/* min-version: 2.1.198 */}A partir de v2.1.198, los subagentes se ejecutan en el fondo de forma predeterminada. Claude ejecuta un subagente en primer plano cuando necesita el resultado antes de continuar. El valor predeterminado cambia dónde se ejecuta un subagente, no qué se le permite hacer: los subagentes en fondo aún muestran cada solicitud de permiso en su sesión principal. Antes de v2.1.198, Claude elegía entre primer plano y fondo basado en la tarea.

779 

780También puede dirigir esto usted mismo:

780 781 

781* Pedir a Claude que "run this in the background"782* Pida a Claude que ejecute una tarea en el fondo o en primer plano

782* Presionar **Ctrl+B** para poner en fondo una tarea en ejecución783* Presione **Ctrl+B** para poner en fondo una tarea en ejecución

783 784 

784Para deshabilitar toda la funcionalidad de tareas en fondo, establezca la variable de entorno `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1`. Consulte [Variables de entorno](/es/env-vars).785Para deshabilitar toda la funcionalidad de tareas en fondo, establezca la variable de entorno `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` en `1`. Consulte [Variables de entorno](/es/env-vars).

785 786 

786Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) está establecido en `1`, cada generación de subagente se ejecuta en el fondo independientemente del campo `background`. Las solicitudes de permiso de estos subagentes en fondo aparecen en su sesión principal como se describe arriba.787Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) está establecido en `1`, cada generación de subagente se ejecuta en el fondo y el campo frontmatter `background` no tiene efecto, porque el modo fork elimina el parámetro `run_in_background` de la herramienta `Agent`. `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` tiene precedencia sobre el modo fork y mantiene las generaciones de subagentes en primer plano.

788 

789<h3 id="api-errors-in-subagents">

790 Errores de API en subagentes

791</h3>

792 

793{/* min-version: 2.1.199 */}A partir de v2.1.199, un subagente cuya ejecución termina en un error de API, como un límite de uso o un error de servidor repetido, reporta esa falla de vuelta a Claude en lugar de devolver el texto de error como si fueran los hallazgos del subagente. Lo que Claude recibe depende de dónde se ejecutó el subagente:

794 

795* **Primer plano**: si un límite de velocidad, sobrecarga o error de servidor corta un subagente que ya produjo salida, la herramienta Agent devuelve esa salida parcial con una nota de que el subagente fue cortado y no completó su tarea. De lo contrario, la llamada de herramienta falla con [`Agent terminated early due to an API error`](/es/errors#agent-terminated-early-due-to-an-api-error), seguido del detalle del error.

796* **Fondo**: el subagente se marca como fallido, y el mensaje que Claude recibe cuando termina nombra el error de API e incluye la última salida del subagente, por lo que el trabajo parcial no se pierde.

797 

798Una vez que el error de API subyacente se resuelve, pida a Claude que reintente la tarea o [reanude el subagente](#resume-subagents).

787 799 

788<h3 id="common-patterns">800<h3 id="common-patterns">

789 Patrones comunes801 Patrones comunes


854 866 

855{/* min-version: 2.1.172 */}A partir de Claude Code v2.1.172, un subagente puede generar sus propios subagentes. Use esto cuando una tarea delegada se divide en subtareas paralelas, como un subagente revisor que distribuye un verificador por hallazgo, de modo que la salida intermedia nunca llegue a su conversación principal. Solo el resumen del subagente de nivel superior regresa a usted.867{/* min-version: 2.1.172 */}A partir de Claude Code v2.1.172, un subagente puede generar sus propios subagentes. Use esto cuando una tarea delegada se divide en subtareas paralelas, como un subagente revisor que distribuye un verificador por hallazgo, de modo que la salida intermedia nunca llegue a su conversación principal. Solo el resumen del subagente de nivel superior regresa a usted.

856 868 

857Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). El panel de subagentes debajo de la entrada de solicitud muestra el árbol completo: cada fila muestra un recuento `(+N)` de descendientes, y {/* min-version: 2.1.193 */}a partir de v2.1.193, abrir una fila muestra los hermanos de ese subagente e hijos directos con una ruta de regreso a `main`. La pestaña Running en [`/agents`](#use-the-%2Fagents-command) lista los subagentes en ejecución como una lista plana.869Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). El panel de subagentes debajo de la entrada de solicitud muestra el árbol completo: cada fila muestra un recuento `(+N)` de descendientes, y {/* min-version: 2.1.193 */}a partir de v2.1.193, abrir una fila muestra los hermanos de ese subagente e hijos directos con una ruta de regreso a `main`.

858 870 

859La profundidad se cuenta como el número de niveles de subagentes debajo de la conversación principal, independientemente de si cada nivel se ejecuta en [primer plano o fondo](#run-subagents-in-foreground-or-background). Un subagente a profundidad cinco no recibe la herramienta Agent y no puede generar más. El límite es fijo y no configurable.871La profundidad se cuenta como el número de niveles de subagentes debajo de la conversación principal, independientemente de si cada nivel se ejecuta en [primer plano o fondo](#run-subagents-in-foreground-or-background). Un subagente a profundidad cinco no recibe la herramienta Agent y no puede generar más. El límite es fijo y no configurable.

860 872 


896 908 

897Cuando un subagente se completa, Claude recibe su ID de agente. Los agentes integrados Explore y Plan son de una sola ejecución y no devuelven ID de agente, por lo que no pueden reanudarse; use `general-purpose` o un subagente personalizado cuando necesite continuar el trabajo.909Cuando un subagente se completa, Claude recibe su ID de agente. Los agentes integrados Explore y Plan son de una sola ejecución y no devuelven ID de agente, por lo que no pueden reanudarse; use `general-purpose` o un subagente personalizado cuando necesite continuar el trabajo.

898 910 

899Claude usa la herramienta `SendMessage` con el ID del agente como campo `to` para reanudarlo. La herramienta `SendMessage` siempre está disponible para reanudar subagentes por ID de agente o nombre. Los mensajes de protocolo de equipo estructurados como `shutdown_request` y `plan_approval_response` requieren que [equipos de agentes](/es/agent-teams) estén habilitados.911Claude usa la herramienta `SendMessage` con el ID del agente o nombre como campo `to` para reanudarlo. `SendMessage` no requiere que [equipos de agentes](/es/agent-teams) estén habilitados; solo los mensajes de protocolo de equipo estructurados como `shutdown_request` y `plan_approval_response` lo hacen.

900 912 

901Para reanudar un subagente, pida a Claude que continúe el trabajo anterior:913Para reanudar un subagente, pida a Claude que continúe el trabajo anterior:

902 914 


910 922 

911Si un subagente detenido recibe un `SendMessage`, se reanuda automáticamente en el fondo sin requerir una nueva invocación de `Agent`.923Si un subagente detenido recibe un `SendMessage`, se reanuda automáticamente en el fondo sin requerir una nueva invocación de `Agent`.

912 924 

925{/* min-version: 2.1.199 */}A partir de v2.1.199, `SendMessage` verifica que un nombre aún se refiera al mismo agente que alcanzó anteriormente en la conversación. Si un agente más nuevo ha tomado el nombre, como un subagente en fondo re-generado que lo reutilizó, Claude Code rechaza el envío en lugar de entregarlo al agente incorrecto, y el error reporta qué agente el nombre ahora alcanza para que Claude pueda redirigirse. Para alcanzar el agente anterior mientras aún se está ejecutando, Claude lo dirige por el ID del agente del resultado de generación. La verificación se limita a la conversación actual y se reinicia en `/clear`.

926 

927{/* min-version: 2.1.198 */}A partir de v2.1.198, un subagente trata los mensajes del agente que lo lanzó como dirección de tarea normal, incluyendo correcciones de curso a mitad de tarea, y actúa sobre ellos dentro de su propia configuración de permisos. Dos límites aún se mantienen independientemente de quién envió el mensaje: ningún mensaje de ningún agente cuenta como su aprobación para una solicitud de permiso pendiente, y ningún mensaje de agente puede cambiar la configuración de permisos de un subagente, `CLAUDE.md` o configuración. Solo el sistema de permisos o sus propios mensajes pueden otorgar aprobación.

928 

913También puede pedir a Claude el ID del agente si desea referenciarlo explícitamente, o encontrar IDs en los archivos de transcripción en `~/.claude/projects/{project}/{sessionId}/subagents/`. Cada transcripción se almacena como `agent-{agentId}.jsonl`.929También puede pedir a Claude el ID del agente si desea referenciarlo explícitamente, o encontrar IDs en los archivos de transcripción en `~/.claude/projects/{project}/{sessionId}/subagents/`. Cada transcripción se almacena como `agent-{agentId}.jsonl`.

914 930 

915Las transcripciones de subagentes persisten independientemente de la conversación principal:931Las transcripciones de subagentes persisten independientemente de la conversación principal:


977| `x` | Descartar un fork terminado o detener uno en ejecución |993| `x` | Descartar un fork terminado o detener uno en ejecución |

978| `Esc` | Devolver el enfoque a la entrada de solicitud |994| `Esc` | Devolver el enfoque a la entrada de solicitud |

979 995 

996Con la transcripción de un fork o subagente abierta, los mensajes de seguimiento y las [skills](/es/skills) van a ese agente, pero los comandos integrados aún se ejecutan en su conversación principal. {/* min-version: 2.1.199 */}A partir de v2.1.199, escribir `/model` o `/fast` en esa vista muestra un aviso de que cambia el modelo de la conversación principal o el modo rápido, no el del agente visto, en lugar de ejecutarlo silenciosamente.

997 

980<h3 id="how-forks-differ-from-named-subagents">998<h3 id="how-forks-differ-from-named-subagents">

981 Cómo los forks difieren de los subagentes nombrados999 Cómo los forks difieren de los subagentes nombrados

982</h3>1000</h3>


1020 Revisor de código1038 Revisor de código

1021</h3>1039</h3>

1022 1040 

1023Un subagente de solo lectura que revisa código sin modificarlo. Este ejemplo muestra cómo diseñar un subagente enfocado con acceso limitado a herramientas (sin Edit o Write) y un mensaje detallado que especifica exactamente qué buscar y cómo formatear la salida.1041Un subagente de solo lectura que revisa código sin modificarlo. Este ejemplo muestra cómo diseñar un subagente enfocado con acceso limitado a herramientas que excluye Edit y Write, y un mensaje detallado que especifica exactamente qué buscar y cómo formatear la salida.

1024 1042 

1025```markdown theme={null}1043```markdown theme={null}

1026---1044---

Details

196 196 

197* [Claude for Teams o Enterprise](/es/authentication#claude-for-teams-or-enterprise)197* [Claude for Teams o Enterprise](/es/authentication#claude-for-teams-or-enterprise)

198* [Anthropic Console](/es/authentication#claude-console-authentication)198* [Anthropic Console](/es/authentication#claude-console-authentication)

199* [Claude apps gateway](/es/claude-apps-gateway), una puerta de enlace autohospedada que añade inicio de sesión de IdP frente a Amazon Bedrock, Google Vertex AI, Microsoft Foundry o la API de Anthropic199* [Claude apps gateway](/es/claude-apps-gateway), una puerta de enlace autohospedada que añade inicio de sesión de IdP frente a Amazon Bedrock, Claude Platform on AWS, Google Vertex AI, Microsoft Foundry o la API de Anthropic

200* [Amazon Bedrock](/es/amazon-bedrock)200* [Amazon Bedrock](/es/amazon-bedrock)

201* [Claude Platform on AWS](/es/claude-platform-on-aws)201* [Claude Platform on AWS](/es/claude-platform-on-aws)

202* [Google Vertex AI](/es/google-vertex-ai)202* [Google Vertex AI](/es/google-vertex-ai)

tools-reference.md +21 −11

Details

11Para agregar herramientas personalizadas, conecte un [servidor MCP](/es/mcp). Para extender Claude con flujos de trabajo basados en prompts reutilizables, escriba una [skill](/es/skills), que se ejecuta a través de la herramienta `Skill` existente en lugar de agregar una nueva entrada de herramienta.11Para agregar herramientas personalizadas, conecte un [servidor MCP](/es/mcp). Para extender Claude con flujos de trabajo basados en prompts reutilizables, escriba una [skill](/es/skills), que se ejecuta a través de la herramienta `Skill` existente en lugar de agregar una nueva entrada de herramienta.

12 12 

13| Herramienta | Descripción | Permiso requerido |13| Herramienta | Descripción | Permiso requerido |

14| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------- |14| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------- |

15| `Agent` | Genera un [subagent](/es/sub-agents) con su propia ventana de contexto para manejar una tarea. Consulte [comportamiento de la herramienta Agent](#agent-tool-behavior) | No |15| `Agent` | Genera un [subagent](/es/sub-agents) con su propia ventana de contexto para manejar una tarea. Consulte [comportamiento de la herramienta Agent](#agent-tool-behavior) | No |

16| `Artifact` | Publica un archivo HTML o Markdown como un [artifact](/es/artifacts): una página privada e interactiva en claude.ai. En planes Team y Enterprise, puede compartirlo dentro de su organización. {/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}Requiere un plan Pro, Max, Team o Enterprise y autenticación `/login`; consulte [Disponibilidad](/es/artifacts#availability) | Sí |16| `Artifact` | Publica un archivo HTML o Markdown como un [artifact](/es/artifacts): una página privada e interactiva en claude.ai. En planes Team y Enterprise, puede compartirlo dentro de su organización. {/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}Requiere un plan Pro, Max, Team o Enterprise y autenticación `/login`; consulte [Disponibilidad](/es/artifacts#availability) | Sí |

17| `AskUserQuestion` | Hace preguntas de opción múltiple para recopilar requisitos o aclarar ambigüedades | No |17| `AskUserQuestion` | Hace preguntas de opción múltiple para recopilar requisitos o aclarar ambigüedades. {/* min-version: 2.1.198 */}A partir de v2.1.198, si no responde dentro de 60 segundos el diálogo se cierra automáticamente: envía cualquier opción que ya haya seleccionado e indica a Claude que puede estar alejado del teclado, por lo que Claude procede según su propio criterio y puede volver a preguntar más tarde. Aparece una cuenta regresiva en los últimos 20 segundos. Cualquier pulsación de tecla mantiene el diálogo abierto, y también lo hace una ventana enfocada en terminales que reportan enfoque. Establezca la variable de entorno [`CLAUDE_AFK_TIMEOUT_MS`](/es/env-vars#variables) para cambiar cuánto tiempo espera Claude Code, o a un valor grande como `86400000`, 24 horas, para mantener las preguntas abiertas mientras está fuera. Este tiempo de espera se aplica solo a las preguntas de opción múltiple de `AskUserQuestion`; los avisos de permisos, incluida la aprobación del plan, nunca se resuelven automáticamente en inactividad | No |

18| `Bash` | Ejecuta comandos de shell en su entorno. Consulte [comportamiento de la herramienta Bash](#bash-tool-behavior) | Sí |18| `Bash` | Ejecuta comandos de shell en su entorno. Consulte [comportamiento de la herramienta Bash](#bash-tool-behavior) | Sí |

19| `CronCreate` | Programa una solicitud recurrente o única dentro de la sesión actual. Las tareas tienen alcance de sesión y se restauran en `--resume` o `--continue` si no han expirado. Consulte [tareas programadas](/es/scheduled-tasks) | No |19| `CronCreate` | Programa una solicitud recurrente o única dentro de la sesión actual. Las tareas tienen alcance de sesión y se restauran en `--resume` o `--continue` si no han expirado. Consulte [tareas programadas](/es/scheduled-tasks) | No |

20| `CronDelete` | Cancela una tarea programada por ID | No |20| `CronDelete` | Cancela una tarea programada por ID | No |


35| `Read` | Lee el contenido de archivos. Consulte [comportamiento de la herramienta Read](#read-tool-behavior) | No |35| `Read` | Lee el contenido de archivos. Consulte [comportamiento de la herramienta Read](#read-tool-behavior) | No |

36| `ReadMcpResourceTool` | Lee un recurso MCP específico por URI | No |36| `ReadMcpResourceTool` | Lee un recurso MCP específico por URI | No |

37| `RemoteTrigger` | Crea, actualiza, ejecuta y lista [Routines](/es/routines) en claude.ai. Respalda el comando `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Las Routines viven en claude.ai y requieren un plan Pro, Max, Team o Enterprise, por lo que esta herramienta no es accesible desde Amazon Bedrock, Google Vertex AI, o Microsoft Foundry | No |37| `RemoteTrigger` | Crea, actualiza, ejecuta y lista [Routines](/es/routines) en claude.ai. Respalda el comando `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Las Routines viven en claude.ai y requieren un plan Pro, Max, Team o Enterprise, por lo que esta herramienta no es accesible desde Amazon Bedrock, Google Vertex AI, o Microsoft Foundry | No |

38| `ReportFindings` | Reporta hallazgos de revisión de código como una lista estructurada, con un archivo, resumen y escenario de fallo por hallazgo, para que Claude Code pueda renderizarlos en lugar de imprimirlos como texto. Claude lo llama cuando las instrucciones de revisión de código activas le indican que lo haga. {/* min-version: 2.1.196 */}Requiere Claude Code v2.1.196 o posterior | No |38| `ReportFindings` | Reporta hallazgos de revisión de código como una lista estructurada, con un archivo, resumen y escenario de fallo por hallazgo, para que Claude Code pueda renderizarlos en lugar de imprimirlos como texto. Claude lo llama cuando las instrucciones de revisión de código activas le indican que lo haga. {/* min-version: 2.1.196 */}Requiere Claude Code v2.1.196 o posterior. {/* min-version: 2.1.199 */}A partir de v2.1.199, un hallazgo también puede llevar un slug de `category` opcional, como `correctness` o `test-coverage`, mostrado junto a la ubicación del archivo en la lista renderizada | No |

39| `ScheduleWakeup` | Reprograma la siguiente iteración de un [`/loop` autónomo](/es/scheduled-tasks#let-claude-choose-the-interval). Claude llama a esto al final de cada iteración para elegir cuándo se ejecuta la siguiente, entre un minuto y una hora; usted no lo llama directamente. El wakeup pendiente aparece en `session_crons` en [entrada de Stop hook](/es/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}No disponible en Amazon Bedrock, Google Vertex AI, o Microsoft Foundry, donde un prompt `/loop` sin intervalo se ejecuta en un horario fijo en su lugar | No |39| `ScheduleWakeup` | Reprograma la siguiente iteración de un [`/loop` autónomo](/es/scheduled-tasks#let-claude-choose-the-interval). Claude llama a esto al final de cada iteración para elegir cuándo se ejecuta la siguiente, entre un minuto y una hora; usted no lo llama directamente. El wakeup pendiente aparece en `session_crons` en [entrada de Stop hook](/es/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}No disponible en Amazon Bedrock, Google Vertex AI, o Microsoft Foundry, donde un prompt `/loop` sin intervalo se ejecuta en un horario fijo en su lugar | No |

40| `SendMessage` | Envía un mensaje a un miembro del [equipo de agentes](/es/agent-teams), o [reanuda un subagent](/es/sub-agents#resume-subagents) por su ID de agente. Los subagents detenidos se reanudan automáticamente en segundo plano. Los mensajes de protocolo de equipo estructurados requieren equipos de agentes | No |40| `SendMessage` | Envía un mensaje a un miembro del [equipo de agentes](/es/agent-teams), o [reanuda un subagent](/es/sub-agents#resume-subagents) por su ID de agente o nombre. Los subagents detenidos se reanudan automáticamente en segundo plano. Los mensajes de protocolo de equipo estructurados requieren equipos de agentes. Un receptor nunca trata un mensaje de otro agente como su consentimiento o aprobación. {/* min-version: 2.1.198 */}A partir de v2.1.198, un subagent trata un mensaje del agente que lo lanzó como dirección de tarea normal en lugar de como una solicitud de igual a igual. {/* min-version: 2.1.199 */}A partir de v2.1.199, un envío a un nombre que ahora se resuelve a un agente diferente al que lo hizo anteriormente en la conversación se rechaza en lugar de entregarse; consulte [Reanudar subagents](/es/sub-agents#resume-subagents) | No |

41| `SendUserFile` | Envía archivos de la sesión a usted con un título opcional, para que un informe generado, diagrama, captura de pantalla, o artefacto construido llegue a su dispositivo en lugar de solo ser mencionado en la transcripción. {/* min-version: 2.1.196 */}A partir de v2.1.196, la entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](/es/remote-control) está conectado o la sesión se ejecuta en un entorno en la nube administrado como [Claude Code en la web](/es/claude-code-on-the-web). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Google Vertex AI, o Microsoft Foundry | No |41| `SendUserFile` | Envía archivos de la sesión a usted con un título opcional, para que un informe generado, diagrama, captura de pantalla, o artefacto construido llegue a su dispositivo en lugar de solo ser mencionado en la transcripción. {/* min-version: 2.1.196 */}A partir de v2.1.196, la entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](/es/remote-control) está conectado o la sesión se ejecuta en un entorno en la nube administrado como [Claude Code en la web](/es/claude-code-on-the-web). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Google Vertex AI, o Microsoft Foundry | No |

42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Carga `ONBOARDING.md` y devuelve un enlace de compartición que los compañeros de equipo pueden abrir en Claude Code. Se llama desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en planes Pro, Max, Team y Enterprise | Sí |42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Carga `ONBOARDING.md` y devuelve un enlace de compartición que los compañeros de equipo pueden abrir en Claude Code. Se llama desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en planes Pro, Max, Team y Enterprise | Sí |

43| `Skill` | Ejecuta una [skill](/es/skills#control-who-invokes-a-skill) dentro de la conversación principal | Sí |43| `Skill` | Ejecuta una [skill](/es/skills#control-who-invokes-a-skill) dentro de la conversación principal | Sí |


45| `TaskGet` | Recupera detalles completos para una tarea específica | No |45| `TaskGet` | Recupera detalles completos para una tarea específica | No |

46| `TaskList` | Lista todas las tareas con su estado actual | No |46| `TaskList` | Lista todas las tareas con su estado actual | No |

47| `TaskOutput` | (Obsoleto) Recupera la salida de una tarea de fondo. Prefiera `Read` en la ruta del archivo de salida de la tarea | No |47| `TaskOutput` | (Obsoleto) Recupera la salida de una tarea de fondo. Prefiera `Read` en la ruta del archivo de salida de la tarea | No |

48| `TaskStop` | Mata una tarea de fondo en ejecución por ID | No |48| `TaskStop` | Detiene una tarea de fondo en ejecución por ID. {/* min-version: 2.1.198 */}A partir de v2.1.198, también acepta un [compañero de equipo de agentes](/es/agent-teams) o un agente de fondo nombrado por ID de agente o nombre | No |

49| `TaskUpdate` | Actualiza el estado de la tarea, dependencias, detalles, o elimina tareas | No |49| `TaskUpdate` | Actualiza el estado de la tarea, dependencias, detalles, o elimina tareas | No |

50| `TodoWrite` | {/* min-version: 2.1.142 */}Gestiona la lista de verificación de tareas de la sesión. Deshabilitado por defecto a partir de v2.1.142 en favor de `TaskCreate`, `TaskGet`, `TaskList` y `TaskUpdate`. Establezca `CLAUDE_CODE_ENABLE_TASKS=0` para volver a habilitar | No |50| `TodoWrite` | {/* min-version: 2.1.142 */}Gestiona la lista de verificación de tareas de la sesión. Deshabilitado por defecto a partir de v2.1.142 en favor de `TaskCreate`, `TaskGet`, `TaskList` y `TaskUpdate`. Establezca `CLAUDE_CODE_ENABLE_TASKS=0` para volver a habilitar | No |

51| `ToolSearch` | Busca y carga herramientas diferidas cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está habilitada | No |51| `ToolSearch` | Busca y carga herramientas diferidas cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está habilitada | No |

52| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Espera a uno o más [servidores MCP](/es/mcp) que aún se están conectando en segundo plano, para que una solicitud pueda usar sus herramientas sin reiniciar la sesión. Claude lo llama cuando un servidor necesario aún no está conectado. Solo aparece cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está deshabilitada, ya que `ToolSearch` maneja la espera cuando está habilitada | No |52| `WaitForMcpServers` | Espera a uno o más [servidores MCP](/es/mcp) que aún se están conectando en segundo plano, para que una solicitud pueda usar sus herramientas sin reiniciar la sesión. Claude lo llama cuando un servidor necesario aún no está conectado. Solo aparece cuando [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search) está deshabilitada, ya que `ToolSearch` maneja la espera cuando está habilitada | No |

53| `WebFetch` | Obtiene contenido de una URL especificada. Consulte [comportamiento de la herramienta WebFetch](#webfetch-tool-behavior) | Sí |53| `WebFetch` | Obtiene contenido de una URL especificada. Consulte [comportamiento de la herramienta WebFetch](#webfetch-tool-behavior) | Sí |

54| `WebSearch` | Realiza búsquedas web. Consulte [comportamiento de la herramienta WebSearch](#websearch-tool-behavior) | Sí |54| `WebSearch` | Realiza búsquedas web. Consulte [comportamiento de la herramienta WebSearch](#websearch-tool-behavior) | Sí |

55| `Workflow` | Ejecuta un [flujo de trabajo dinámico](/es/workflows): un script que orquesta muchos subagents en segundo plano y devuelve un resultado consolidado | Sí |55| `Workflow` | Ejecuta un [flujo de trabajo dinámico](/es/workflows): un script que orquesta muchos subagents en segundo plano y devuelve un resultado consolidado | Sí |


91 Comportamiento de la herramienta Agent91 Comportamiento de la herramienta Agent

92</h2>92</h2>

93 93 

94La herramienta Agent genera un subagent en una ventana de contexto separada. El subagent trabaja a través de su tarea de forma autónoma, luego devuelve un único resultado de texto a la conversación principal. El principal no ve las llamadas de herramientas intermedias o salidas del subagent, solo ese resultado final. Para limitar cuántos turnos ejecuta un subagent, establezca `maxTurns` en la [definición del subagent](/es/sub-agents#supported-frontmatter-fields).94La herramienta Agent genera un subagent en una ventana de contexto separada. El subagent trabaja a través de su tarea de forma autónoma, luego devuelve un único resultado de texto a la conversación principal. El principal no ve las llamadas de herramientas intermedias o salidas del subagent, solo ese resultado final.

95 

96Para limitar cuántos turnos ejecuta un subagent, establezca `maxTurns` en la [definición del subagent](/es/sub-agents#supported-frontmatter-fields).

95 97 

96La misma herramienta Agent también lanza [subagents bifurcados](/es/sub-agents#fork-the-current-conversation) cuando el modo de bifurcación está habilitado. Una bifurcación hereda la conversación principal completa en lugar de comenzar de nuevo, siempre se ejecuta en segundo plano, y aún muestra solicitudes de permisos en su terminal. El resto de esta sección describe subagents nombrados.98La misma herramienta Agent también lanza [subagents bifurcados](/es/sub-agents#fork-the-current-conversation) cuando el modo de bifurcación está habilitado. Una bifurcación hereda la conversación principal completa en lugar de comenzar de nuevo, siempre se ejecuta en segundo plano, y aún muestra solicitudes de permisos en su terminal. El resto de esta sección describe subagents nombrados.

97 99 


102* **Solo `disallowedTools`**: el subagent obtiene todas las herramientas principales excepto las listadas.104* **Solo `disallowedTools`**: el subagent obtiene todas las herramientas principales excepto las listadas.

103* **Ambos establecidos**: `disallowedTools` tiene precedencia. Una herramienta listada en ambos se elimina.105* **Ambos establecidos**: `disallowedTools` tiene precedencia. Una herramienta listada en ambos se elimina.

104 106 

105Lanzar el subagent no solicita permiso en sí mismo. Las propias llamadas de herramientas del subagent se verifican contra sus reglas de permisos mientras se ejecuta:107Lanzar el subagent no solicita permiso en sí mismo. Claude Code verifica las llamadas de herramientas propias del subagent contra sus reglas de permisos mientras se ejecuta.

108 

109{/* min-version: 2.1.198 */}A partir de v2.1.198, los subagents se ejecutan en segundo plano de forma predeterminada; Claude ejecuta uno en primer plano cuando necesita el resultado antes de continuar.

106 110 

107* **Subagents en primer plano** muestran los mismos solicitudes de permisos que vería en la conversación principal, en el momento en que ocurre cada llamada de herramienta.111* **Subagents en primer plano** muestran los mismos solicitudes de permisos que vería en la conversación principal, en el momento en que ocurre cada llamada de herramienta.

108* **Subagents en segundo plano** {/* min-version: 2.1.186 */}muestran solicitudes de permisos en su sesión principal a partir de v2.1.186. El aviso indica qué subagent está solicitando, y presionar Esc deniega esa única llamada de herramienta sin detener el subagent. Antes de v2.1.186, los subagents en segundo plano denegaban automáticamente cualquier llamada de herramienta que de otro modo solicitaría y continuaban sin esa herramienta.112* **Subagents en segundo plano** {/* min-version: 2.1.186 */}muestran solicitudes de permisos en su sesión principal a partir de v2.1.186. El aviso indica qué subagent está solicitando, y presionar Esc deniega esa única llamada de herramienta sin detener el subagent. Antes de v2.1.186, los subagents en segundo plano denegaban automáticamente cualquier llamada de herramienta que de otro modo solicitaría y continuaban sin esa herramienta.


266 Herramienta PowerShell270 Herramienta PowerShell

267</h2>271</h2>

268 272 

269La herramienta PowerShell permite que Claude ejecute comandos de PowerShell de forma nativa. En Windows, esto significa que los comandos se ejecutan en PowerShell en lugar de enrutarse a través de Git Bash. En Windows sin Git Bash, la herramienta se habilita automáticamente. En Windows con Git Bash instalado, la herramienta se está implementando progresivamente. En Linux, macOS y WSL, la herramienta es opcional.273La herramienta PowerShell permite que Claude ejecute comandos de PowerShell de forma nativa. En Windows, esto significa que los comandos se ejecutan en PowerShell en lugar de enrutarse a través de Git Bash. La disponibilidad de la herramienta depende de su plataforma:

274 

275* **Windows sin Git Bash**: la herramienta se habilita automáticamente.

276* **Windows con Git Bash instalado**: la herramienta se está implementando progresivamente.

277* **Linux, macOS y WSL**: la herramienta es opcional.

270 278 

271<h3 id="enable-the-powershell-tool">279<h3 id="enable-the-powershell-tool">

272 Habilitar la herramienta PowerShell280 Habilitar la herramienta PowerShell


346 354 

347Una regla explícita `WebFetch(domain:...)` en `deny`, `ask` o `allow` tiene precedencia sobre el conjunto preaprobado, por lo que puede bloquear un dominio preaprobado o requerir una solicitud para él.355Una regla explícita `WebFetch(domain:...)` en `deny`, `ask` o `allow` tiene precedencia sobre el conjunto preaprobado, por lo que puede bloquear un dominio preaprobado o requerir una solicitud para él.

348 356 

349WebFetch establece un encabezado `User-Agent` que comienza con `Claude-User`, y un encabezado `Accept` que prefiere Markdown sobre HTML para que los servidores que admiten negociación de contenido puedan devolver Markdown directamente. Las [reglas de red de Sandbox](/es/sandboxing) se configuran por separado, por lo que un dominio que desea que un proceso en sandbox alcance aún necesita una regla de permiso de sandbox explícita.357WebFetch establece un encabezado `User-Agent` que comienza con `Claude-User`, y un encabezado `Accept` que prefiere Markdown sobre HTML para que los servidores que admiten negociación de contenido puedan devolver Markdown directamente.

358 

359Usted configura [reglas de red de sandbox](/es/sandboxing) por separado, por lo que un dominio que desea que un proceso en sandbox alcance aún necesita una regla de permiso de sandbox explícita.

350 360 

351<h2 id="websearch-tool-behavior">361<h2 id="websearch-tool-behavior">

352 Comportamiento de la herramienta WebSearch362 Comportamiento de la herramienta WebSearch


361Las reglas de permisos de WebSearch no toman especificador. Una entrada `WebSearch` desnuda en `allow` o `deny` es la única forma.371Las reglas de permisos de WebSearch no toman especificador. Una entrada `WebSearch` desnuda en `allow` o `deny` es la única forma.

362 372 

363<Note>373<Note>

364 WebSearch está disponible en la API de Claude y Microsoft Foundry. En Google Cloud Vertex AI funciona con modelos Claude 4 y posteriores, incluyendo Opus, Sonnet y Haiku. Amazon Bedrock no expone la herramienta de búsqueda web del lado del servidor.374 WebSearch está disponible en la API de Claude, [Claude Platform on AWS](/es/claude-platform-on-aws), y Microsoft Foundry. En Google Cloud Vertex AI funciona con modelos Claude 4 y posteriores, incluyendo Opus, Sonnet y Haiku. Amazon Bedrock no expone la herramienta de búsqueda web del lado del servidor.

365</Note>375</Note>

366 376 

367<h2 id="write-tool-behavior">377<h2 id="write-tool-behavior">

worktrees.md +2 −0

Details

36 36 

37También puede pedirle a Claude que "trabaje en un worktree" durante una sesión, y creará uno con la herramienta [`EnterWorktree`](/es/tools-reference). Una vez en un worktree, Claude puede cambiar directamente a otro bajo `.claude/worktrees/` llamando a `EnterWorktree` con la ruta de destino. El worktree anterior permanece en el disco sin cambios.37También puede pedirle a Claude que "trabaje en un worktree" durante una sesión, y creará uno con la herramienta [`EnterWorktree`](/es/tools-reference). Una vez en un worktree, Claude puede cambiar directamente a otro bajo `.claude/worktrees/` llamando a `EnterWorktree` con la ruta de destino. El worktree anterior permanece en el disco sin cambios.

38 38 

39{/* min-version: 2.1.198 */}A partir de v2.1.198, entrar o salir de un worktree también traslada la transcripción de la sesión al almacenamiento del proyecto de ese directorio, de la misma manera que [`/cd`](/es/commands) lo hace, por lo que `/desktop` y `--resume` encuentran la sesión allí después. Los worktrees creados por un [hook `WorktreeCreate`](#non-git-version-control) se excluyen y mantienen la transcripción en el directorio de lanzamiento.

40 

39Antes de usar `--worktree` interactivamente en un directorio por primera vez, acepte el diálogo de confianza del espacio de trabajo ejecutando `claude` una vez en ese directorio. Si la confianza aún no ha sido aceptada, `--worktree` sale con un error y le solicita que ejecute `claude` en el directorio primero. Las ejecuciones no interactivas con `-p` omiten la [verificación de confianza](/es/security), por lo que `claude -p --worktree` procede sin ella.41Antes de usar `--worktree` interactivamente en un directorio por primera vez, acepte el diálogo de confianza del espacio de trabajo ejecutando `claude` una vez en ese directorio. Si la confianza aún no ha sido aceptada, `--worktree` sale con un error y le solicita que ejecute `claude` en el directorio primero. Las ejecuciones no interactivas con `-p` omiten la [verificación de confianza](/es/security), por lo que `claude -p --worktree` procede sin ella.

40 42 

41<Tip>43<Tip>