SpyBara
Go Premium

Documentation 2026-05-05 23:00 UTC to 2026-05-07 22:59 UTC

32 files changed +1,478 −244. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

agent-sdk/custom-tools.md +833 −0 created

Details

1> ## Documentation Index

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

4 

5# Dale a Claude herramientas personalizadas

6 

7> Define herramientas personalizadas con el servidor MCP en proceso del SDK del Agente Claude para que Claude pueda llamar a sus funciones, acceder a sus APIs y realizar operaciones específicas del dominio.

8 

9Las herramientas personalizadas extienden el SDK del Agente permitiéndole definir sus propias funciones que Claude puede llamar durante una conversación. Usando el servidor MCP en proceso del SDK, puede dar a Claude acceso a bases de datos, APIs externas, lógica específica del dominio u cualquier otra capacidad que su aplicación necesite.

10 

11Esta guía cubre cómo definir herramientas con esquemas de entrada y controladores, agruparlas en un servidor MCP, pasarlas a `query` y controlar a qué herramientas puede acceder Claude. También cubre manejo de errores, anotaciones de herramientas y devolución de contenido no textual como imágenes.

12 

13## Referencia rápida

14 

15| Si desea... | Haga esto |

16| :-------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

17| Definir una herramienta | Use [`@tool`](/es/agent-sdk/python#tool) (Python) o [`tool()`](/es/agent-sdk/typescript#tool) (TypeScript) con un nombre, descripción, esquema y controlador. Vea [Crear una herramienta personalizada](#crear-una-herramienta-personalizada). |

18| Registrar una herramienta con Claude | Envuelva en `create_sdk_mcp_server` / `createSdkMcpServer` y pase a `mcpServers` en `query()`. Vea [Llamar a una herramienta personalizada](#llamar-a-una-herramienta-personalizada). |

19| Preaprobación de una herramienta | Agregue a sus herramientas permitidas. Vea [Configurar herramientas permitidas](#configurar-herramientas-permitidas). |

20| Eliminar una herramienta integrada del contexto de Claude | Pase un array `tools` listando solo los integrados que desea. Vea [Configurar herramientas permitidas](#configurar-herramientas-permitidas). |

21| Permitir que Claude llame herramientas en paralelo | Establezca `readOnlyHint: true` en herramientas sin efectos secundarios. Vea [Agregar anotaciones de herramientas](#agregar-anotaciones-de-herramientas). |

22| Manejar errores sin detener el bucle | Devuelva `isError: true` en lugar de lanzar una excepción. Vea [Manejar errores](#manejar-errores). |

23| Devolver imágenes o archivos | Use bloques `image` o `resource` en el array de contenido. Vea [Devolver imágenes y recursos](#devolver-imágenes-y-recursos). |

24| Devolver un resultado JSON legible por máquina | Establezca `structuredContent` en el resultado. Vea [Devolver datos estructurados](#devolver-datos-estructurados). |

25| Escalar a muchas herramientas | Use [búsqueda de herramientas](/es/agent-sdk/tool-search) para cargar herramientas bajo demanda. |

26 

27## Crear una herramienta personalizada

28 

29Una herramienta se define por cuatro partes, pasadas como argumentos al ayudante [`tool()`](/es/agent-sdk/typescript#tool) en TypeScript o al decorador [`@tool`](/es/agent-sdk/python#tool) en Python:

30 

31* **Nombre:** un identificador único que Claude usa para llamar a la herramienta.

32* **Descripción:** qué hace la herramienta. Claude lee esto para decidir cuándo llamarla.

33* **Esquema de entrada:** los argumentos que Claude debe proporcionar. En TypeScript esto es siempre un [esquema Zod](https://zod.dev/), y los `args` del controlador se tipan automáticamente desde él. En Python esto es un diccionario que mapea nombres a tipos, como `{"latitude": float}`, que el SDK convierte a JSON Schema para usted. El decorador de Python también acepta un diccionario completo de [JSON Schema](https://json-schema.org/understanding-json-schema/about) directamente cuando necesita enumeraciones, rangos, campos opcionales u objetos anidados.

34* **Controlador:** la función asincrónica que se ejecuta cuando Claude llama a la herramienta. Recibe los argumentos validados y debe devolver un objeto con:

35 * `content` (requerido): un array de bloques de resultado, cada uno con un `type` de `"text"`, `"image"` o `"resource"`. Vea [Devolver imágenes y recursos](#devolver-imágenes-y-recursos) para bloques no textuales.

36 * `structuredContent` (opcional): un objeto JSON que contiene el resultado como datos legibles por máquina, devuelto junto a `content`. Vea [Devolver datos estructurados](#devolver-datos-estructurados).

37 * `isError` (opcional): establezca en `true` para señalar un fallo de herramienta para que Claude pueda reaccionar a él. Vea [Manejar errores](#manejar-errores).

38 

39Después de definir una herramienta, envuélvala en un servidor con [`createSdkMcpServer`](/es/agent-sdk/typescript#createsdkmcpserver) (TypeScript) o [`create_sdk_mcp_server`](/es/agent-sdk/python#create_sdk_mcp_server) (Python). El servidor se ejecuta en proceso dentro de su aplicación, no como un proceso separado.

40 

41### Ejemplo de herramienta meteorológica

42 

43Este ejemplo define una herramienta `get_temperature` y la envuelve en un servidor MCP. Solo configura la herramienta; para pasarla a `query` y ejecutarla, vea [Llamar a una herramienta personalizada](#llamar-a-una-herramienta-personalizada) abajo.

44 

45<CodeGroup>

46 ```python Python theme={null}

47 from typing import Any

48 import httpx

49 from claude_agent_sdk import tool, create_sdk_mcp_server

50 

51 

52 # Define a tool: name, description, input schema, handler

53 @tool(

54 "get_temperature",

55 "Get the current temperature at a location",

56 {"latitude": float, "longitude": float},

57 )

58 async def get_temperature(args: dict[str, Any]) -> dict[str, Any]:

59 async with httpx.AsyncClient() as client:

60 response = await client.get(

61 "https://api.open-meteo.com/v1/forecast",

62 params={

63 "latitude": args["latitude"],

64 "longitude": args["longitude"],

65 "current": "temperature_2m",

66 "temperature_unit": "fahrenheit",

67 },

68 )

69 data = response.json()

70 

71 # Return a content array - Claude sees this as the tool result

72 return {

73 "content": [

74 {

75 "type": "text",

76 "text": f"Temperature: {data['current']['temperature_2m']}°F",

77 }

78 ]

79 }

80 

81 

82 # Wrap the tool in an in-process MCP server

83 weather_server = create_sdk_mcp_server(

84 name="weather",

85 version="1.0.0",

86 tools=[get_temperature],

87 )

88 ```

89 

90 ```typescript TypeScript theme={null}

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

92 import { z } from "zod";

93 

94 // Define a tool: name, description, input schema, handler

95 const getTemperature = tool(

96 "get_temperature",

97 "Get the current temperature at a location",

98 {

99 latitude: z.number().describe("Latitude coordinate"), // .describe() adds a field description Claude sees

100 longitude: z.number().describe("Longitude coordinate")

101 },

102 async (args) => {

103 // args is typed from the schema: { latitude: number; longitude: number }

104 const response = await fetch(

105 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&current=temperature_2m&temperature_unit=fahrenheit`

106 );

107 const data: any = await response.json();

108 

109 // Return a content array - Claude sees this as the tool result

110 return {

111 content: [{ type: "text", text: `Temperature: ${data.current.temperature_2m}°F` }]

112 };

113 }

114 );

115 

116 // Wrap the tool in an in-process MCP server

117 const weatherServer = createSdkMcpServer({

118 name: "weather",

119 version: "1.0.0",

120 tools: [getTemperature]

121 });

122 ```

123</CodeGroup>

124 

125Vea la referencia de TypeScript [`tool()`](/es/agent-sdk/typescript#tool) o la referencia de Python [`@tool`](/es/agent-sdk/python#tool) para detalles completos de parámetros, incluyendo formatos de entrada JSON Schema y estructura de valor de retorno.

126 

127<Tip>

128 Para hacer un parámetro opcional: en TypeScript, agregue `.default()` al campo Zod. En Python, el esquema dict trata cada clave como requerida, así que deje el parámetro fuera del esquema, menciónelo en la cadena de descripción y léalo con `args.get()` en el controlador. La herramienta [`get_precipitation_chance` abajo](#agregar-más-herramientas) muestra ambos patrones.

129</Tip>

130 

131### Llamar a una herramienta personalizada

132 

133Pase el servidor MCP que creó a `query` a través de la opción `mcpServers`. La clave en `mcpServers` se convierte en el segmento `{server_name}` en el nombre completamente calificado de cada herramienta: `mcp__{server_name}__{tool_name}`. Liste ese nombre en `allowedTools` para que la herramienta se ejecute sin un aviso de permiso.

134 

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

136 

137<CodeGroup>

138 ```python Python theme={null}

139 import asyncio

140 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

141 

142 

143 async def main():

144 options = ClaudeAgentOptions(

145 mcp_servers={"weather": weather_server},

146 allowed_tools=["mcp__weather__get_temperature"],

147 )

148 

149 async for message in query(

150 prompt="What's the temperature in San Francisco?",

151 options=options,

152 ):

153 # ResultMessage is the final message after all tool calls complete

154 if isinstance(message, ResultMessage) and message.subtype == "success":

155 print(message.result)

156 

157 

158 asyncio.run(main())

159 ```

160 

161 ```typescript TypeScript theme={null}

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

163 

164 for await (const message of query({

165 prompt: "What's the temperature in San Francisco?",

166 options: {

167 mcpServers: { weather: weatherServer },

168 allowedTools: ["mcp__weather__get_temperature"]

169 }

170 })) {

171 // "result" is the final message after all tool calls complete

172 if (message.type === "result" && message.subtype === "success") {

173 console.log(message.result);

174 }

175 }

176 ```

177</CodeGroup>

178 

179### Agregar más herramientas

180 

181Un servidor contiene tantas herramientas como liste en su array `tools`. Con más de una herramienta en un servidor, puede listar cada una en `allowedTools` individualmente o usar el comodín `mcp__weather__*` para cubrir cada herramienta que el servidor expone.

182 

183El ejemplo abajo agrega una segunda herramienta, `get_precipitation_chance`, al `weatherServer` del [ejemplo de herramienta meteorológica](#ejemplo-de-herramienta-meteorológica) y lo reconstruye con ambas herramientas en el array.

184 

185<CodeGroup>

186 ```python Python theme={null}

187 # Define a second tool for the same server

188 @tool(

189 "get_precipitation_chance",

190 "Get the hourly precipitation probability for a location. "

191 "Optionally pass 'hours' (1-24) to control how many hours to return.",

192 {"latitude": float, "longitude": float},

193 )

194 async def get_precipitation_chance(args: dict[str, Any]) -> dict[str, Any]:

195 # 'hours' isn't in the schema - read it with .get() to make it optional

196 hours = args.get("hours", 12)

197 async with httpx.AsyncClient() as client:

198 response = await client.get(

199 "https://api.open-meteo.com/v1/forecast",

200 params={

201 "latitude": args["latitude"],

202 "longitude": args["longitude"],

203 "hourly": "precipitation_probability",

204 "forecast_days": 1,

205 },

206 )

207 data = response.json()

208 chances = data["hourly"]["precipitation_probability"][:hours]

209 

210 return {

211 "content": [

212 {

213 "type": "text",

214 "text": f"Next {hours} hours: {'%, '.join(map(str, chances))}%",

215 }

216 ]

217 }

218 

219 

220 # Rebuild the server with both tools in the array

221 weather_server = create_sdk_mcp_server(

222 name="weather",

223 version="1.0.0",

224 tools=[get_temperature, get_precipitation_chance],

225 )

226 ```

227 

228 ```typescript TypeScript theme={null}

229 // Define a second tool for the same server

230 const getPrecipitationChance = tool(

231 "get_precipitation_chance",

232 "Get the hourly precipitation probability for a location",

233 {

234 latitude: z.number(),

235 longitude: z.number(),

236 hours: z

237 .number()

238 .int()

239 .min(1)

240 .max(24)

241 .default(12) // .default() makes the parameter optional

242 .describe("How many hours of forecast to return")

243 },

244 async (args) => {

245 const response = await fetch(

246 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&hourly=precipitation_probability&forecast_days=1`

247 );

248 const data: any = await response.json();

249 const chances = data.hourly.precipitation_probability.slice(0, args.hours);

250 

251 return {

252 content: [{ type: "text", text: `Next ${args.hours} hours: ${chances.join("%, ")}%` }]

253 };

254 }

255 );

256 

257 // Rebuild the server with both tools in the array

258 const weatherServer = createSdkMcpServer({

259 name: "weather",

260 version: "1.0.0",

261 tools: [getTemperature, getPrecipitationChance]

262 });

263 ```

264</CodeGroup>

265 

266Cada herramienta en este array consume espacio de ventana de contexto en cada turno. Si está definiendo docenas de herramientas, vea [búsqueda de herramientas](/es/agent-sdk/tool-search) para cargarlas bajo demanda en su lugar.

267 

268### Agregar anotaciones de herramientas

269 

270Las [anotaciones de herramientas](https://modelcontextprotocol.io/docs/concepts/tools#tool-annotations) son metadatos opcionales que describen cómo se comporta una herramienta. Páselas como el quinto argumento al ayudante `tool()` en TypeScript o a través del argumento de palabra clave `annotations` para el decorador `@tool` en Python. Todos los campos de sugerencia son booleanos.

271 

272| Campo | Predeterminado | Significado |

273| :---------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

274| `readOnlyHint` | `false` | La herramienta no modifica su entorno. Controla si la herramienta puede ser llamada en paralelo con otras herramientas de solo lectura. |

275| `destructiveHint` | `true` | La herramienta puede realizar actualizaciones destructivas. Solo informativo. |

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

277| `openWorldHint` | `true` | La herramienta alcanza sistemas fuera de su proceso. Solo informativo. |

278 

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

280 

281Este ejemplo agrega `readOnlyHint` a la herramienta `get_temperature` del [ejemplo de herramienta meteorológica](#ejemplo-de-herramienta-meteorológica).

282 

283<CodeGroup>

284 ```python Python theme={null}

285 from claude_agent_sdk import tool, ToolAnnotations

286 

287 

288 @tool(

289 "get_temperature",

290 "Get the current temperature at a location",

291 {"latitude": float, "longitude": float},

292 annotations=ToolAnnotations(

293 readOnlyHint=True

294 ), # Lets Claude batch this with other read-only calls

295 )

296 async def get_temperature(args):

297 return {"content": [{"type": "text", "text": "..."}]}

298 ```

299 

300 ```typescript TypeScript theme={null}

301 tool(

302 "get_temperature",

303 "Get the current temperature at a location",

304 { latitude: z.number(), longitude: z.number() },

305 async (args) => ({ content: [{ type: "text", text: `...` }] }),

306 { annotations: { readOnlyHint: true } } // Lets Claude batch this with other read-only calls

307 );

308 ```

309</CodeGroup>

310 

311Vea `ToolAnnotations` en la referencia de [TypeScript](/es/agent-sdk/typescript#toolannotations) o [Python](/es/agent-sdk/python#toolannotations).

312 

313## Controlar el acceso a herramientas

314 

315El [ejemplo de herramienta meteorológica](#ejemplo-de-herramienta-meteorológica) registró un servidor y listó herramientas en `allowedTools`. Esta sección cubre cómo se construyen los nombres de herramientas y cómo limitar el acceso cuando tiene múltiples herramientas o desea restringir integrados.

316 

317### Formato de nombre de herramienta

318 

319Cuando las herramientas MCP se exponen a Claude, sus nombres siguen un formato específico:

320 

321* Patrón: `mcp__{server_name}__{tool_name}`

322* Ejemplo: Una herramienta nombrada `get_temperature` en servidor `weather` se convierte en `mcp__weather__get_temperature`

323 

324### Configurar herramientas permitidas

325 

326La opción `tools` y las listas permitidas/no permitidas operan en capas separadas. `tools` controla qué herramientas integradas aparecen en el contexto de Claude. Las listas de herramientas permitidas y no permitidas controlan si las llamadas se aprueban o se deniegan una vez que Claude intenta hacerlas.

327 

328| Opción | Capa | Efecto |

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

330| `tools: ["Read", "Grep"]` | Disponibilidad | Solo los integrados listados están en el contexto de Claude. Los integrados no listados se eliminan. Las herramientas MCP no se ven afectadas. |

331| `tools: []` | Disponibilidad | Todos los integrados se eliminan. Claude solo puede usar sus herramientas MCP. |

332| herramientas permitidas | Permiso | Las herramientas listadas se ejecutan sin un aviso de permiso. Las herramientas no listadas permanecen disponibles; las llamadas pasan por el [flujo de permiso](/es/agent-sdk/permissions). |

333| herramientas no permitidas | Permiso | Cada llamada a una herramienta listada se deniega. La herramienta permanece en el contexto de Claude, por lo que Claude aún puede intentarla antes de que la llamada sea rechazada. |

334 

335Para limitar qué integrados puede usar Claude, prefiera `tools` sobre herramientas no permitidas. Omitir una herramienta de `tools` la elimina del contexto para que Claude nunca la intente; listarla en `disallowedTools` (Python: `disallowed_tools`) bloquea la llamada pero deja la herramienta visible, por lo que Claude puede desperdiciar un turno intentándola. Vea [Configurar permisos](/es/agent-sdk/permissions) para el orden de evaluación completo.

336 

337## Manejar errores

338 

339Cómo su controlador reporta errores determina si el bucle del agente continúa o se detiene:

340 

341| Qué sucede | Resultado |

342| :-------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

343| El controlador lanza una excepción no capturada | El bucle del agente se detiene. Claude nunca ve el error, y la llamada `query` falla. |

344| El controlador captura el error y devuelve `isError: true` (TS) / `"is_error": True` (Python) | El bucle del agente continúa. Claude ve el error como datos y puede reintentar, intentar una herramienta diferente o explicar el fallo. |

345 

346El ejemplo abajo captura dos tipos de fallos dentro del controlador en lugar de dejarlos lanzar. Un estado HTTP no 200 se captura de la respuesta y se devuelve como un resultado de error. Un error de red o JSON inválido se captura por el `try/except` (Python) o `try/catch` (TypeScript) circundante y también se devuelve como un resultado de error. En ambos casos el controlador devuelve normalmente y el bucle del agente continúa.

347 

348<CodeGroup>

349 ```python Python theme={null}

350 import json

351 import httpx

352 from typing import Any

353 

354 

355 @tool(

356 "fetch_data",

357 "Fetch data from an API",

358 {"endpoint": str}, # Simple schema

359 )

360 async def fetch_data(args: dict[str, Any]) -> dict[str, Any]:

361 try:

362 async with httpx.AsyncClient() as client:

363 response = await client.get(args["endpoint"])

364 if response.status_code != 200:

365 # Return the failure as a tool result so Claude can react to it.

366 # is_error marks this as a failed call rather than odd-looking data.

367 return {

368 "content": [

369 {

370 "type": "text",

371 "text": f"API error: {response.status_code} {response.reason_phrase}",

372 }

373 ],

374 "is_error": True,

375 }

376 

377 data = response.json()

378 return {"content": [{"type": "text", "text": json.dumps(data, indent=2)}]}

379 except Exception as e:

380 # Catching here keeps the agent loop alive. An uncaught exception

381 # would end the whole query() call.

382 return {

383 "content": [{"type": "text", "text": f"Failed to fetch data: {str(e)}"}],

384 "is_error": True,

385 }

386 ```

387 

388 ```typescript TypeScript theme={null}

389 tool(

390 "fetch_data",

391 "Fetch data from an API",

392 {

393 endpoint: z.string().url().describe("API endpoint URL")

394 },

395 async (args) => {

396 try {

397 const response = await fetch(args.endpoint);

398 

399 if (!response.ok) {

400 // Return the failure as a tool result so Claude can react to it.

401 // isError marks this as a failed call rather than odd-looking data.

402 return {

403 content: [

404 {

405 type: "text",

406 text: `API error: ${response.status} ${response.statusText}`

407 }

408 ],

409 isError: true

410 };

411 }

412 

413 const data = await response.json();

414 return {

415 content: [

416 {

417 type: "text",

418 text: JSON.stringify(data, null, 2)

419 }

420 ]

421 };

422 } catch (error) {

423 // Catching here keeps the agent loop alive. An uncaught throw

424 // would end the whole query() call.

425 return {

426 content: [

427 {

428 type: "text",

429 text: `Failed to fetch data: ${error instanceof Error ? error.message : String(error)}`

430 }

431 ],

432 isError: true

433 };

434 }

435 }

436 );

437 ```

438</CodeGroup>

439 

440## Devolver imágenes y recursos

441 

442El array `content` en un resultado de herramienta acepta bloques `text`, `image` y `resource`. Puede mezclarlos en la misma respuesta.

443 

444### Imágenes

445 

446Un bloque de imagen lleva los bytes de imagen en línea, codificados como base64. No hay campo de URL. Para devolver una imagen que vive en una URL, búsquela en el controlador, lea los bytes de respuesta y codifíquelos en base64 antes de devolver. El resultado se procesa como entrada visual.

447 

448| Campo | Tipo | Notas |

449| :--------- | :-------- | :------------------------------------------------------------------------------------------ |

450| `type` | `"image"` | |

451| `data` | `string` | Bytes codificados en base64. Solo base64 sin procesar, sin prefijo `data:image/...;base64,` |

452| `mimeType` | `string` | Requerido. Por ejemplo `image/png`, `image/jpeg`, `image/webp`, `image/gif` |

453 

454<CodeGroup>

455 ```python Python theme={null}

456 import base64

457 import httpx

458 

459 

460 # Define a tool that fetches an image from a URL and returns it to Claude

461 @tool("fetch_image", "Fetch an image from a URL and return it to Claude", {"url": str})

462 async def fetch_image(args):

463 async with httpx.AsyncClient() as client: # Fetch the image bytes

464 response = await client.get(args["url"])

465 

466 return {

467 "content": [

468 {

469 "type": "image",

470 "data": base64.b64encode(response.content).decode(

471 "ascii"

472 ), # Base64-encode the raw bytes

473 "mimeType": response.headers.get(

474 "content-type", "image/png"

475 ), # Read MIME type from the response

476 }

477 ]

478 }

479 ```

480 

481 ```typescript TypeScript theme={null}

482 tool(

483 "fetch_image",

484 "Fetch an image from a URL and return it to Claude",

485 {

486 url: z.string().url()

487 },

488 async (args) => {

489 const response = await fetch(args.url); // Fetch the image bytes

490 const buffer = Buffer.from(await response.arrayBuffer()); // Read into a Buffer for base64 encoding

491 const mimeType = response.headers.get("content-type") ?? "image/png";

492 

493 return {

494 content: [

495 {

496 type: "image",

497 data: buffer.toString("base64"), // Base64-encode the raw bytes

498 mimeType

499 }

500 ]

501 };

502 }

503 );

504 ```

505</CodeGroup>

506 

507### Recursos

508 

509Un bloque de recurso incrusta un contenido identificado por un URI. El URI es una etiqueta para que Claude la referencie; el contenido real va en el campo `text` o `blob` del bloque. Use esto cuando su herramienta produce algo que tiene sentido direccionar por nombre más tarde, como un archivo generado o un registro de un sistema externo.

510 

511| Campo | Tipo | Notas |

512| :------------------ | :----------- | :------------------------------------------------------------- |

513| `type` | `"resource"` | |

514| `resource.uri` | `string` | Identificador para el contenido. Cualquier esquema de URI |

515| `resource.text` | `string` | El contenido, si es texto. Proporcione esto o `blob`, no ambos |

516| `resource.blob` | `string` | El contenido codificado en base64, si es binario |

517| `resource.mimeType` | `string` | Opcional |

518 

519Este ejemplo muestra un bloque de recurso devuelto desde dentro de un controlador de herramienta. El URI `file:///tmp/report.md` es una etiqueta que Claude puede referenciar más tarde; el SDK no lee desde esa ruta.

520 

521<CodeGroup>

522 ```typescript TypeScript theme={null}

523 return {

524 content: [

525 {

526 type: "resource",

527 resource: {

528 uri: "file:///tmp/report.md", // Label for Claude to reference, not a path the SDK reads

529 mimeType: "text/markdown",

530 text: "# Report\n..." // The actual content, inline

531 }

532 }

533 ]

534 };

535 ```

536 

537 ```python Python theme={null}

538 return {

539 "content": [

540 {

541 "type": "resource",

542 "resource": {

543 "uri": "file:///tmp/report.md", # Label for Claude to reference, not a path the SDK reads

544 "mimeType": "text/markdown",

545 "text": "# Report\n...", # The actual content, inline

546 },

547 }

548 ]

549 }

550 ```

551</CodeGroup>

552 

553Estas formas de bloque provienen del tipo MCP `CallToolResult`. Vea la [especificación MCP](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result) para la definición completa.

554 

555## Devolver datos estructurados

556 

557`structuredContent` es un objeto JSON opcional en el resultado, separado del array `content`. Úselo para devolver valores sin procesar que Claude pueda leer como campos exactos en lugar de analizarlos de una cadena de texto o imagen.

558 

559Cuando `structuredContent` se establece, Claude recibe el JSON más cualquier bloque de imagen o recurso de `content`. Los bloques de texto en `content` no se reenvían, ya que se asume que duplican los datos estructurados. El ejemplo abajo renderiza un gráfico como un bloque de imagen y devuelve los puntos de datos detrás de él en `structuredContent` del mismo controlador.

560 

561```typescript TypeScript theme={null}

562return {

563 content: [

564 {

565 type: "image",

566 data: chartPngBuffer.toString("base64"),

567 mimeType: "image/png"

568 }

569 ],

570 structuredContent: {

571 series: "temperature_2m",

572 unit: "fahrenheit",

573 points: [62.1, 63.4, 65.0, 64.2]

574 }

575};

576```

577 

578<Note>

579 El decorador `@tool` de Python reenvía solo `content` e `is_error` del diccionario de retorno del controlador. Para devolver `structuredContent` desde Python, ejecute un [servidor MCP independiente](/es/agent-sdk/mcp) en lugar de un servidor SDK en proceso.

580</Note>

581 

582## Ejemplo: convertidor de unidades

583 

584Esta herramienta convierte valores entre unidades de longitud, temperatura y peso. Un usuario puede preguntar "convertir 100 kilómetros a millas" o "¿cuál es 72°F en Celsius?" y Claude elige el tipo de unidad correcto y las unidades de la solicitud.

585 

586Demuestra dos patrones:

587 

588* **Esquemas de enumeración:** `unit_type` está restringido a un conjunto fijo de valores. En TypeScript, use `z.enum()`. En Python, el esquema dict no admite enumeraciones, por lo que se requiere el diccionario JSON Schema completo.

589* **Manejo de entrada no admitida:** cuando no se encuentra un par de conversión, el controlador devuelve `isError: true` para que Claude pueda decirle al usuario qué salió mal en lugar de tratar un fallo como un resultado normal.

590 

591<CodeGroup>

592 ```python Python theme={null}

593 from typing import Any

594 from claude_agent_sdk import tool, create_sdk_mcp_server

595 

596 

597 # z.enum() in TypeScript becomes an "enum" constraint in JSON Schema.

598 # The dict schema has no equivalent, so full JSON Schema is required.

599 @tool(

600 "convert_units",

601 "Convert a value from one unit to another",

602 {

603 "type": "object",

604 "properties": {

605 "unit_type": {

606 "type": "string",

607 "enum": ["length", "temperature", "weight"],

608 "description": "Category of unit",

609 },

610 "from_unit": {

611 "type": "string",

612 "description": "Unit to convert from, e.g. kilometers, fahrenheit, pounds",

613 },

614 "to_unit": {"type": "string", "description": "Unit to convert to"},

615 "value": {"type": "number", "description": "Value to convert"},

616 },

617 "required": ["unit_type", "from_unit", "to_unit", "value"],

618 },

619 )

620 async def convert_units(args: dict[str, Any]) -> dict[str, Any]:

621 conversions = {

622 "length": {

623 "kilometers_to_miles": lambda v: v * 0.621371,

624 "miles_to_kilometers": lambda v: v * 1.60934,

625 "meters_to_feet": lambda v: v * 3.28084,

626 "feet_to_meters": lambda v: v * 0.3048,

627 },

628 "temperature": {

629 "celsius_to_fahrenheit": lambda v: (v * 9) / 5 + 32,

630 "fahrenheit_to_celsius": lambda v: (v - 32) * 5 / 9,

631 "celsius_to_kelvin": lambda v: v + 273.15,

632 "kelvin_to_celsius": lambda v: v - 273.15,

633 },

634 "weight": {

635 "kilograms_to_pounds": lambda v: v * 2.20462,

636 "pounds_to_kilograms": lambda v: v * 0.453592,

637 "grams_to_ounces": lambda v: v * 0.035274,

638 "ounces_to_grams": lambda v: v * 28.3495,

639 },

640 }

641 

642 key = f"{args['from_unit']}_to_{args['to_unit']}"

643 fn = conversions.get(args["unit_type"], {}).get(key)

644 

645 if not fn:

646 return {

647 "content": [

648 {

649 "type": "text",

650 "text": f"Unsupported conversion: {args['from_unit']} to {args['to_unit']}",

651 }

652 ],

653 "is_error": True,

654 }

655 

656 result = fn(args["value"])

657 return {

658 "content": [

659 {

660 "type": "text",

661 "text": f"{args['value']} {args['from_unit']} = {result:.4f} {args['to_unit']}",

662 }

663 ]

664 }

665 

666 

667 converter_server = create_sdk_mcp_server(

668 name="converter",

669 version="1.0.0",

670 tools=[convert_units],

671 )

672 ```

673 

674 ```typescript TypeScript theme={null}

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

676 import { z } from "zod";

677 

678 const convert = tool(

679 "convert_units",

680 "Convert a value from one unit to another",

681 {

682 unit_type: z.enum(["length", "temperature", "weight"]).describe("Category of unit"),

683 from_unit: z

684 .string()

685 .describe("Unit to convert from, e.g. kilometers, fahrenheit, pounds"),

686 to_unit: z.string().describe("Unit to convert to"),

687 value: z.number().describe("Value to convert")

688 },

689 async (args) => {

690 type Conversions = Record<string, Record<string, (v: number) => number>>;

691 

692 const conversions: Conversions = {

693 length: {

694 kilometers_to_miles: (v) => v * 0.621371,

695 miles_to_kilometers: (v) => v * 1.60934,

696 meters_to_feet: (v) => v * 3.28084,

697 feet_to_meters: (v) => v * 0.3048

698 },

699 temperature: {

700 celsius_to_fahrenheit: (v) => (v * 9) / 5 + 32,

701 fahrenheit_to_celsius: (v) => ((v - 32) * 5) / 9,

702 celsius_to_kelvin: (v) => v + 273.15,

703 kelvin_to_celsius: (v) => v - 273.15

704 },

705 weight: {

706 kilograms_to_pounds: (v) => v * 2.20462,

707 pounds_to_kilograms: (v) => v * 0.453592,

708 grams_to_ounces: (v) => v * 0.035274,

709 ounces_to_grams: (v) => v * 28.3495

710 }

711 };

712 

713 const key = `${args.from_unit}_to_${args.to_unit}`;

714 const fn = conversions[args.unit_type]?.[key];

715 

716 if (!fn) {

717 return {

718 content: [

719 {

720 type: "text",

721 text: `Unsupported conversion: ${args.from_unit} to ${args.to_unit}`

722 }

723 ],

724 isError: true

725 };

726 }

727 

728 const result = fn(args.value);

729 return {

730 content: [

731 {

732 type: "text",

733 text: `${args.value} ${args.from_unit} = ${result.toFixed(4)} ${args.to_unit}`

734 }

735 ]

736 };

737 }

738 );

739 

740 const converterServer = createSdkMcpServer({

741 name: "converter",

742 version: "1.0.0",

743 tools: [convert]

744 });

745 ```

746</CodeGroup>

747 

748Una vez que el servidor se define, páselo a `query` de la misma manera que el ejemplo meteorológico. Este ejemplo envía tres indicaciones diferentes en un bucle para mostrar la misma herramienta manejando diferentes tipos de unidades. Para cada respuesta, inspecciona objetos `AssistantMessage` (que contienen las llamadas de herramienta que Claude hizo durante ese turno) e imprime cada `ToolUseBlock` antes de imprimir el texto final de `ResultMessage`. Esto le permite ver cuándo Claude está usando la herramienta versus respondiendo desde su propio conocimiento.

749 

750<CodeGroup>

751 ```python Python theme={null}

752 import asyncio

753 from claude_agent_sdk import (

754 query,

755 ClaudeAgentOptions,

756 ResultMessage,

757 AssistantMessage,

758 ToolUseBlock,

759 )

760 

761 

762 async def main():

763 options = ClaudeAgentOptions(

764 mcp_servers={"converter": converter_server},

765 allowed_tools=["mcp__converter__convert_units"],

766 )

767 

768 prompts = [

769 "Convert 100 kilometers to miles.",

770 "What is 72°F in Celsius?",

771 "How many pounds is 5 kilograms?",

772 ]

773 

774 for prompt in prompts:

775 async for message in query(prompt=prompt, options=options):

776 if isinstance(message, AssistantMessage):

777 for block in message.content:

778 if isinstance(block, ToolUseBlock):

779 print(f"[tool call] {block.name}({block.input})")

780 elif isinstance(message, ResultMessage) and message.subtype == "success":

781 print(f"Q: {prompt}\nA: {message.result}\n")

782 

783 

784 asyncio.run(main())

785 ```

786 

787 ```typescript TypeScript theme={null}

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

789 

790 const prompts = [

791 "Convert 100 kilometers to miles.",

792 "What is 72°F in Celsius?",

793 "How many pounds is 5 kilograms?"

794 ];

795 

796 for (const prompt of prompts) {

797 for await (const message of query({

798 prompt,

799 options: {

800 mcpServers: { converter: converterServer },

801 allowedTools: ["mcp__converter__convert_units"]

802 }

803 })) {

804 if (message.type === "assistant") {

805 for (const block of message.message.content) {

806 if (block.type === "tool_use") {

807 console.log(`[tool call] ${block.name}`, block.input);

808 }

809 }

810 } else if (message.type === "result" && message.subtype === "success") {

811 console.log(`Q: ${prompt}\nA: ${message.result}\n`);

812 }

813 }

814 }

815 ```

816</CodeGroup>

817 

818## Próximos pasos

819 

820Las herramientas personalizadas envuelven funciones asincrónicas en una interfaz estándar. Puede mezclar los patrones en esta página en el mismo servidor: un único servidor puede contener una herramienta de base de datos, una herramienta de puerta de enlace de API y un renderizador de imágenes uno al lado del otro.

821 

822Desde aquí:

823 

824* Si su servidor crece a docenas de herramientas, vea [búsqueda de herramientas](/es/agent-sdk/tool-search) para diferir la carga hasta que Claude las necesite.

825* Para conectarse a servidores MCP externos (sistema de archivos, GitHub, Slack) en lugar de construir los suyos propios, vea [Conectar servidores MCP](/es/agent-sdk/mcp).

826* Para controlar qué herramientas se ejecutan automáticamente versus requerir aprobación, vea [Configurar permisos](/es/agent-sdk/permissions).

827 

828## Documentación relacionada

829 

830* [Referencia del SDK de TypeScript](/es/agent-sdk/typescript)

831* [Referencia del SDK de Python](/es/agent-sdk/python)

832* [Documentación de MCP](https://modelcontextprotocol.io)

833* [Descripción general del SDK](/es/agent-sdk/overview)

Details

757 allowed_tools: list[str] = field(default_factory=list)757 allowed_tools: list[str] = field(default_factory=list)

758 system_prompt: str | SystemPromptPreset | None = None758 system_prompt: str | SystemPromptPreset | None = None

759 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)759 mcp_servers: dict[str, McpServerConfig] | str | Path = field(default_factory=dict)

760 strict_mcp_config: bool = False

760 permission_mode: PermissionMode | None = None761 permission_mode: PermissionMode | None = None

761 continue_conversation: bool = False762 continue_conversation: bool = False

762 resume: str | None = None763 resume: str | None = None


781 hooks: dict[HookEvent, list[HookMatcher]] | None = None782 hooks: dict[HookEvent, list[HookMatcher]] | None = None

782 user: str | None = None783 user: str | None = None

783 include_partial_messages: bool = False784 include_partial_messages: bool = False

785 include_hook_events: bool = False

784 fork_session: bool = False786 fork_session: bool = False

785 agents: dict[str, AgentDefinition] | None = None787 agents: dict[str, AgentDefinition] | None = None

786 setting_sources: list[SettingSource] | None = None788 setting_sources: list[SettingSource] | None = None


788 plugins: list[SdkPluginConfig] = field(default_factory=list)790 plugins: list[SdkPluginConfig] = field(default_factory=list)

789 max_thinking_tokens: int | None = None # Deprecated: use thinking instead791 max_thinking_tokens: int | None = None # Deprecated: use thinking instead

790 thinking: ThinkingConfig | None = None792 thinking: ThinkingConfig | None = None

791 effort: Literal["low", "medium", "high", "max"] | None = None793 effort: Literal["low", "medium", "high", "xhigh", "max"] | None = None

792 enable_file_checkpointing: bool = False794 enable_file_checkpointing: bool = False

793 session_store: SessionStore | None = None795 session_store: SessionStore | None = None

794 session_store_flush: SessionStoreFlushMode = "batched"796 session_store_flush: SessionStoreFlushMode = "batched"


800| `allowed_tools` | `list[str]` | `[]` | Herramientas para aprobar automáticamente sin solicitar. Esto no restringe Claude solo a estas herramientas; las herramientas no listadas caen a través de `permission_mode` y `can_use_tool`. Use `disallowed_tools` para bloquear herramientas. Ver [Permissions](/es/agent-sdk/permissions#allow-and-deny-rules) |802| `allowed_tools` | `list[str]` | `[]` | Herramientas para aprobar automáticamente sin solicitar. Esto no restringe Claude solo a estas herramientas; las herramientas no listadas caen a través de `permission_mode` y `can_use_tool`. Use `disallowed_tools` para bloquear herramientas. Ver [Permissions](/es/agent-sdk/permissions#allow-and-deny-rules) |

801| `system_prompt` | `str \| SystemPromptPreset \| None` | `None` | Configuración de prompt del sistema. Pase una cadena para un prompt personalizado, o use `{"type": "preset", "preset": "claude_code"}` para el prompt del sistema de Claude Code. Agregue `"append"` para extender el preset |803| `system_prompt` | `str \| SystemPromptPreset \| None` | `None` | Configuración de prompt del sistema. Pase una cadena para un prompt personalizado, o use `{"type": "preset", "preset": "claude_code"}` para el prompt del sistema de Claude Code. Agregue `"append"` para extender el preset |

802| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configuraciones de servidor MCP o ruta al archivo de configuración |804| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Configuraciones de servidor MCP o ruta al archivo de configuración |

805| `strict_mcp_config` | `bool` | `False` | Cuando es `True`, use solo los servidores pasados en `mcp_servers` e ignore el proyecto `.mcp.json`, la configuración del usuario y los servidores MCP proporcionados por plugins. Se asigna a la bandera CLI `--strict-mcp-config` |

803| `permission_mode` | `PermissionMode \| None` | `None` | Modo de permiso para el uso de herramientas |806| `permission_mode` | `PermissionMode \| None` | `None` | Modo de permiso para el uso de herramientas |

804| `continue_conversation` | `bool` | `False` | Continuar la conversación más reciente |807| `continue_conversation` | `bool` | `False` | Continuar la conversación más reciente |

805| `resume` | `str \| None` | `None` | ID de sesión a reanudar |808| `resume` | `str \| None` | `None` | ID de sesión a reanudar |


816| `cli_path` | `str \| Path \| None` | `None` | Ruta personalizada al ejecutable CLI de Claude Code |819| `cli_path` | `str \| Path \| None` | `None` | Ruta personalizada al ejecutable CLI de Claude Code |

817| `settings` | `str \| None` | `None` | Ruta al archivo de configuración |820| `settings` | `str \| None` | `None` | Ruta al archivo de configuración |

818| `add_dirs` | `list[str \| Path]` | `[]` | Directorios adicionales a los que Claude puede acceder |821| `add_dirs` | `list[str \| Path]` | `[]` | Directorios adicionales a los que Claude puede acceder |

819| `env` | `dict[str, str]` | `{}` | Variables de entorno fusionadas en la parte superior del entorno del proceso heredado. Ver [Environment variables](/es/env-vars) para variables que el CLI subyacente lee |822| `env` | `dict[str, str]` | `{}` | Variables de entorno fusionadas en la parte superior del entorno del proceso heredado. Ver [Environment variables](/es/env-vars) para variables que el CLI subyacente lee, y [Handle slow or stalled API responses](#handle-slow-or-stalled-api-responses) para variables relacionadas con tiempos de espera |

820| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionales para pasar directamente al CLI |823| `extra_args` | `dict[str, str \| None]` | `{}` | Argumentos CLI adicionales para pasar directamente al CLI |

821| `max_buffer_size` | `int \| None` | `None` | Bytes máximos al almacenar en búfer la salida estándar del CLI |824| `max_buffer_size` | `int \| None` | `None` | Bytes máximos al almacenar en búfer la salida estándar del CLI |

822| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - Objeto similar a un archivo para salida de depuración. Use la devolución de llamada `stderr` en su lugar |825| `debug_stderr` | `Any` | `sys.stderr` | *Deprecated* - Objeto similar a un archivo para salida de depuración. Use la devolución de llamada `stderr` en su lugar |


825| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configuraciones de hook para interceptar eventos |828| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configuraciones de hook para interceptar eventos |

826| `user` | `str \| None` | `None` | Identificador de usuario |829| `user` | `str \| None` | `None` | Identificador de usuario |

827| `include_partial_messages` | `bool` | `False` | Incluir eventos de streaming de mensaje parcial. Cuando está habilitado, se producen mensajes [`StreamEvent`](#streamevent) |830| `include_partial_messages` | `bool` | `False` | Incluir eventos de streaming de mensaje parcial. Cuando está habilitado, se producen mensajes [`StreamEvent`](#streamevent) |

831| `include_hook_events` | `bool` | `False` | Incluir eventos de ciclo de vida de hook en el flujo de mensajes como objetos `HookEventMessage` |

828| `fork_session` | `bool` | `False` | Cuando se reanuda con `resume`, bifurcar a un nuevo ID de sesión en lugar de continuar la sesión original |832| `fork_session` | `bool` | `False` | Cuando se reanuda con `resume`, bifurcar a un nuevo ID de sesión en lugar de continuar la sesión original |

829| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagentes definidos programáticamente |833| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagentes definidos programáticamente |

830| `plugins` | `list[SdkPluginConfig]` | `[]` | Cargar plugins personalizados desde rutas locales. Ver [Plugins](/es/agent-sdk/plugins) para detalles |834| `plugins` | `list[SdkPluginConfig]` | `[]` | Cargar plugins personalizados desde rutas locales. Ver [Plugins](/es/agent-sdk/plugins) para detalles |


832| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Controlar qué configuración del sistema de archivos cargar. Pase `[]` para deshabilitar la configuración de usuario, proyecto y local. La configuración de política administrada se carga independientemente. Ver [Use Claude Code features](/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |836| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Controlar qué configuración del sistema de archivos cargar. Pase `[]` para deshabilitar la configuración de usuario, proyecto y local. La configuración de política administrada se carga independientemente. Ver [Use Claude Code features](/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

833| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Tokens máximos para bloques de pensamiento. Use `thinking` en su lugar |837| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Tokens máximos para bloques de pensamiento. Use `thinking` en su lugar |

834| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Controla el comportamiento de pensamiento extendido. Tiene precedencia sobre `max_thinking_tokens` |838| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Controla el comportamiento de pensamiento extendido. Tiene precedencia sobre `max_thinking_tokens` |

835| `effort` | `Literal["low", "medium", "high", "max"] \| None` | `None` | Nivel de esfuerzo para la profundidad del pensamiento |839| `effort` | `Literal["low", "medium", "high", "xhigh", "max"] \| None` | `None` | Nivel de esfuerzo para la profundidad del pensamiento |

836| `session_store` | [`SessionStore`](/es/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Reflejar transcripciones de sesión a un backend externo para que cualquier host pueda reanudarlas. Ver [Persist sessions to external storage](/es/agent-sdk/session-storage) |840| `session_store` | [`SessionStore`](/es/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Reflejar transcripciones de sesión a un backend externo para que cualquier host pueda reanudarlas. Ver [Persist sessions to external storage](/es/agent-sdk/session-storage) |

837| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Cuándo vaciar entradas de transcripción reflejadas a `session_store`. `"batched"` vacía una vez por turno o cuando el búfer se llena; `"eager"` activa un vaciado de fondo después de cada fotograma. Se ignora cuando `session_store` es `None` |841| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Cuándo vaciar entradas de transcripción reflejadas a `session_store`. `"batched"` vacía una vez por turno o cuando el búfer se llena; `"eager"` activa un vaciado de fondo después de cada fotograma. Se ignora cuando `session_store` es `None` |

838 842 

843#### Manejar respuestas de API lentas o estancadas

844 

845El subproceso CLI lee varias variables de entorno que controlan los tiempos de espera de API y la detección de estancamiento. Páselas a través de `ClaudeAgentOptions.env`:

846 

847```python theme={null}

848options = ClaudeAgentOptions(

849 env={

850 "API_TIMEOUT_MS": "120000",

851 "CLAUDE_CODE_MAX_RETRIES": "2",

852 "CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS": "120000",

853 },

854)

855```

856 

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

858* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`. 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.

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

860* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de la respuesta deja de transmitir. Desactivado de forma predeterminada. `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.

861 

839### `OutputFormat`862### `OutputFormat`

840 863 

841Configuración para validación de salida estructurada. Pase esto como un `dict` al campo `output_format` en `ClaudeAgentOptions`:864Configuración para validación de salida estructurada. Pase esto como un `dict` al campo `output_format` en `ClaudeAgentOptions`:


1015 initialPrompt: str | None = None1038 initialPrompt: str | None = None

1016 maxTurns: int | None = None1039 maxTurns: int | None = None

1017 background: bool | None = None1040 background: bool | None = None

1018 effort: Literal["low", "medium", "high", "max"] | int | None = None1041 effort: Literal["low", "medium", "high", "xhigh", "max"] | int | None = None

1019 permissionMode: PermissionMode | None = None1042 permissionMode: PermissionMode | None = None

1020```1043```

1021 1044 


1080class ToolPermissionContext:1103class ToolPermissionContext:

1081 signal: Any | None = None # Future: abort signal support1104 signal: Any | None = None # Future: abort signal support

1082 suggestions: list[PermissionUpdate] = field(default_factory=list)1105 suggestions: list[PermissionUpdate] = field(default_factory=list)

1106 blocked_path: str | None = None

1107 decision_reason: str | None = None

1108 title: str | None = None

1109 display_name: str | None = None

1110 description: str | None = None

1083```1111```

1084 1112 

1085| Campo | Tipo | Descripción |1113| Campo | Tipo | Descripción |

1086| :------------ | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1114| :---------------- | :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1087| `signal` | `Any \| None` | Reservado para soporte de señal de aborto futuro |1115| `signal` | `Any \| None` | Reservado para soporte de señal de aborto futuro |

1088| `suggestions` | `list[PermissionUpdate]` | Sugerencias de actualización de permiso del CLI. Los prompts de Bash incluyen una sugerencia con el destino `localSettings`, por lo que devolverla en `updated_permissions` escribe la regla en `.claude/settings.local.json` y persiste en sesiones. |1116| `suggestions` | `list[PermissionUpdate]` | Sugerencias de actualización de permiso del CLI. Los prompts de Bash incluyen una sugerencia con el destino `localSettings`, por lo que devolverla en `updated_permissions` escribe la regla en `.claude/settings.local.json` y persiste en sesiones. |

1117| `blocked_path` | `str \| None` | Ruta de archivo que activó la solicitud de permiso, cuando sea aplicable. Por ejemplo, cuando un comando Bash intenta acceder a una ruta fuera de directorios permitidos |

1118| `decision_reason` | `str \| None` | Razón por la que se activó esta solicitud de permiso. Reenviada desde el `permissionDecisionReason` de un hook PreToolUse cuando el hook devolvió `"ask"` |

1119| `title` | `str \| None` | Oración completa de solicitud de permiso, como `Claude wants to read foo.txt`. Use como texto de solicitud principal cuando esté presente |

1120| `display_name` | `str \| None` | Frase de sustantivo corta para la acción de herramienta, como `Read file`, adecuada para etiquetas de botón |

1121| `description` | `str \| None` | Subtítulo legible para la interfaz de usuario de permiso |

1089 1122 

1090### `PermissionResult`1123### `PermissionResult`

1091 1124 


1466 is_error: bool1499 is_error: bool

1467 num_turns: int1500 num_turns: int

1468 session_id: str1501 session_id: str

1502 stop_reason: str | None = None

1469 total_cost_usd: float | None = None1503 total_cost_usd: float | None = None

1470 usage: dict[str, Any] | None = None1504 usage: dict[str, Any] | None = None

1471 result: str | None = None1505 result: str | None = None

1472 stop_reason: str | None = None

1473 structured_output: Any = None1506 structured_output: Any = None

1474 model_usage: dict[str, Any] | None = None1507 model_usage: dict[str, Any] | None = None

1508 permission_denials: list[Any] | None = None

1509 deferred_tool_use: DeferredToolUse | None = None

1510 errors: list[str] | None = None

1511 api_error_status: int | None = None

1512 uuid: str | None = None

1475```1513```

1476 1514 

1477El dict `usage` contiene las siguientes claves cuando está presente:1515El dict `usage` contiene las siguientes claves cuando está presente:


2128```python theme={null}2166```python theme={null}

2129class PreToolUseHookSpecificOutput(TypedDict):2167class PreToolUseHookSpecificOutput(TypedDict):

2130 hookEventName: Literal["PreToolUse"]2168 hookEventName: Literal["PreToolUse"]

2131 permissionDecision: NotRequired[Literal["allow", "deny", "ask"]]2169 permissionDecision: NotRequired[Literal["allow", "deny", "ask", "defer"]]

2132 permissionDecisionReason: NotRequired[str]2170 permissionDecisionReason: NotRequired[str]

2133 updatedInput: NotRequired[dict[str, Any]]2171 updatedInput: NotRequired[dict[str, Any]]

2134 additionalContext: NotRequired[str]2172 additionalContext: NotRequired[str]


2137class PostToolUseHookSpecificOutput(TypedDict):2175class PostToolUseHookSpecificOutput(TypedDict):

2138 hookEventName: Literal["PostToolUse"]2176 hookEventName: Literal["PostToolUse"]

2139 additionalContext: NotRequired[str]2177 additionalContext: NotRequired[str]

2178 updatedToolOutput: NotRequired[Any]

2140 updatedMCPToolOutput: NotRequired[Any]2179 updatedMCPToolOutput: NotRequired[Any]

2141 2180 

2142 2181 

Details

8 8 

9<script src="/components/typescript-sdk-type-links.js" defer />9<script src="/components/typescript-sdk-type-links.js" defer />

10 10 

11<Note>

12 **Pruebe la nueva interfaz V2 (vista previa):** Una interfaz simplificada con patrones `send()` y `stream()` está ahora disponible, lo que facilita las conversaciones de múltiples turnos. [Obtenga más información sobre la vista previa de TypeScript V2](/es/agent-sdk/typescript-v2-preview)

13</Note>

14 

15## Instalación11## Instalación

16 12 

17```bash theme={null}13```bash theme={null}


335| `disallowedTools` | `string[]` | `[]` | Herramientas a negar siempre. Las reglas de negación se verifican primero e anulan `allowedTools` y `permissionMode` (incluyendo `bypassPermissions`) |331| `disallowedTools` | `string[]` | `[]` | Herramientas a negar siempre. Las reglas de negación se verifican primero e anulan `allowedTools` y `permissionMode` (incluyendo `bypassPermissions`) |

336| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `'high'` | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento |332| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `'high'` | Controla cuánto esfuerzo pone Claude en su respuesta. Funciona con el pensamiento adaptativo para guiar la profundidad del pensamiento |

337| `enableFileCheckpointing` | `boolean` | `false` | Habilite el seguimiento de cambios de archivo para rebobinar. Vea [File checkpointing](/es/agent-sdk/file-checkpointing) |333| `enableFileCheckpointing` | `boolean` | `false` | Habilite el seguimiento de cambios de archivo para rebobinar. Vea [File checkpointing](/es/agent-sdk/file-checkpointing) |

338| `env` | `Record<string, string \| undefined>` | `process.env` | Variables de entorno. Vea [Variables de entorno](/es/env-vars) para variables que la CLI subyacente lee. Establezca `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar su aplicación en el encabezado User-Agent |334| `env` | `Record<string, string \| undefined>` | `process.env` | Variables de entorno. Vea [Variables de entorno](/es/env-vars) para variables que la CLI subyacente lee, y [Manejar respuestas de API lentas o estancadas](#handle-slow-or-stalled-api-responses) para variables relacionadas con tiempos de espera. Establezca `CLAUDE_AGENT_SDK_CLIENT_APP` para identificar su aplicación en el encabezado User-Agent |

339| `executable` | `'bun' \| 'deno' \| 'node'` | Detectado automáticamente | Tiempo de ejecución de JavaScript a usar |335| `executable` | `'bun' \| 'deno' \| 'node'` | Detectado automáticamente | Tiempo de ejecución de JavaScript a usar |

340| `executableArgs` | `string[]` | `[]` | Argumentos a pasar al ejecutable |336| `executableArgs` | `string[]` | `[]` | Argumentos a pasar al ejecutable |

341| `extraArgs` | `Record<string, string \| null>` | `{}` | Argumentos adicionales |337| `extraArgs` | `Record<string, string \| null>` | `{}` | Argumentos adicionales |


360| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configure el comportamiento de sandbox mediante programación. Vea [Sandbox settings](#sandboxsettings) para detalles |356| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | Configure el comportamiento de sandbox mediante programación. Vea [Sandbox settings](#sandboxsettings) para detalles |

361| `sessionId` | `string` | Auto-generado | Use un UUID específico para la sesión en lugar de generar uno automáticamente |357| `sessionId` | `string` | Auto-generado | Use un UUID específico para la sesión en lugar de generar uno automáticamente |

362| `sessionStore` | [`SessionStore`](/es/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Refleje transcripciones de sesión en un backend externo para que cualquier host pueda reanudarlas. Vea [Persistir sesiones en almacenamiento externo](/es/agent-sdk/session-storage) |358| `sessionStore` | [`SessionStore`](/es/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | Refleje transcripciones de sesión en un backend externo para que cualquier host pueda reanudarlas. Vea [Persistir sesiones en almacenamiento externo](/es/agent-sdk/session-storage) |

359| `settings` | `string \| Settings` | `undefined` | Objeto de [configuración](/es/settings) en línea o ruta a un archivo de configuración. Completa la capa de configuración de marca en el [orden de precedencia](/es/settings#settings-precedence). Cambie en tiempo de ejecución con [`applyFlagSettings()`](#applyflagsettings) |

363| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valores predeterminados de CLI (todas las fuentes) | Controle qué configuración del sistema de archivos cargar. Pase `[]` para deshabilitar la configuración de usuario, proyecto y local. La configuración de política administrada se carga independientemente. Vea [Usar características de Claude Code](/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |360| `settingSources` | [`SettingSource`](#settingsource)`[]` | Valores predeterminados de CLI (todas las fuentes) | Controle qué configuración del sistema de archivos cargar. Pase `[]` para deshabilitar la configuración de usuario, proyecto y local. La configuración de política administrada se carga independientemente. Vea [Usar características de Claude Code](/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

364| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Función personalizada para generar el proceso de Claude Code. Use para ejecutar Claude Code en máquinas virtuales, contenedores o entornos remotos |361| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Función personalizada para generar el proceso de Claude Code. Use para ejecutar Claude Code en máquinas virtuales, contenedores o entornos remotos |

365| `stderr` | `(data: string) => void` | `undefined` | Devolución de llamada para salida de stderr |362| `stderr` | `(data: string) => void` | `undefined` | Devolución de llamada para salida de stderr |


369| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuración para el comportamiento de herramientas integradas. Vea [`ToolConfig`](#toolconfig) para detalles |366| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Configuración para el comportamiento de herramientas integradas. Vea [`ToolConfig`](#toolconfig) para detalles |

370| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuración de herramientas. Pase una matriz de nombres de herramientas o use el preestablecido para obtener las herramientas predeterminadas de Claude Code |367| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Configuración de herramientas. Pase una matriz de nombres de herramientas o use el preestablecido para obtener las herramientas predeterminadas de Claude Code |

371 368 

369#### Manejar respuestas de API lentas o estancadas

370 

371El subproceso CLI lee varias variables de entorno que controlan los tiempos de espera de API y la detección de estancamiento. Páselas a través de la opción `env`:

372 

373```typescript theme={null}

374const result = query({

375 prompt: "Analyze this code",

376 options: {

377 env: {

378 ...process.env,

379 API_TIMEOUT_MS: "120000",

380 CLAUDE_CODE_MAX_RETRIES: "2",

381 CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS: "120000",

382 },

383 },

384});

385```

386 

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

388* `CLAUDE_CODE_MAX_RETRIES`: máximo de reintentos de API. Predeterminado `10`. 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.

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

390* `CLAUDE_ENABLE_STREAM_WATCHDOG=1` con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: aborta la solicitud cuando los encabezados han llegado pero el cuerpo de respuesta deja de transmitirse. Desactivado de forma predeterminada. `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.

391 

372### Objeto `Query`392### Objeto `Query`

373 393 

374Interfaz devuelta por la función `query()`.394Interfaz devuelta por la función `query()`.


383 setPermissionMode(mode: PermissionMode): Promise<void>;403 setPermissionMode(mode: PermissionMode): Promise<void>;

384 setModel(model?: string): Promise<void>;404 setModel(model?: string): Promise<void>;

385 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;405 setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;

406 applyFlagSettings(settings: { [K in keyof Settings]?: Settings[K] | null }): Promise<void>;

386 initializationResult(): Promise<SDKControlInitializeResponse>;407 initializationResult(): Promise<SDKControlInitializeResponse>;

387 supportedCommands(): Promise<SlashCommand[]>;408 supportedCommands(): Promise<SlashCommand[]>;

388 supportedModels(): Promise<ModelInfo[]>;409 supportedModels(): Promise<ModelInfo[]>;


407| `setPermissionMode()` | Cambia el modo de permiso (solo disponible en modo de entrada de transmisión) |428| `setPermissionMode()` | Cambia el modo de permiso (solo disponible en modo de entrada de transmisión) |

408| `setModel()` | Cambia el modelo (solo disponible en modo de entrada de transmisión) |429| `setModel()` | Cambia el modelo (solo disponible en modo de entrada de transmisión) |

409| `setMaxThinkingTokens()` | *Deprecado:* Use la opción `thinking` en su lugar. Cambia los tokens de pensamiento máximos |430| `setMaxThinkingTokens()` | *Deprecado:* Use la opción `thinking` en su lugar. Cambia los tokens de pensamiento máximos |

431| `applyFlagSettings(settings)` | Fusiona la configuración en la capa de configuración de marca de la sesión en tiempo de ejecución (solo disponible en modo de entrada de transmisión). Vea [`applyFlagSettings()`](#applyflagsettings) |

410| `initializationResult()` | Devuelve el resultado de inicialización completo incluyendo comandos compatibles, modelos, información de cuenta y configuración de estilo de salida |432| `initializationResult()` | Devuelve el resultado de inicialización completo incluyendo comandos compatibles, modelos, información de cuenta y configuración de estilo de salida |

411| `supportedCommands()` | Devuelve comandos slash disponibles |433| `supportedCommands()` | Devuelve comandos slash disponibles |

412| `supportedModels()` | Devuelve modelos disponibles con información de visualización |434| `supportedModels()` | Devuelve modelos disponibles con información de visualización |


420| `stopTask(taskId)` | Detenga una tarea de fondo en ejecución por ID |442| `stopTask(taskId)` | Detenga una tarea de fondo en ejecución por ID |

421| `close()` | Cierre la consulta y termine el proceso subyacente. Finaliza forzadamente la consulta y limpia todos los recursos |443| `close()` | Cierre la consulta y termine el proceso subyacente. Finaliza forzadamente la consulta y limpia todos los recursos |

422 444 

445#### `applyFlagSettings()`

446 

447Cambia cualquier [configuración](/es/settings) en una sesión en ejecución sin reiniciar la consulta. Úselo cuando una configuración que no tiene un setter dedicado necesite cambiar a mitad de sesión, como restringir `permissions` después de que el agente lea entrada no confiable. `setModel()` y `setPermissionMode()` son setters dedicados para esas dos claves; `applyFlagSettings()` es la forma general que acepta cualquier subconjunto de las claves de configuración, y pasar `model` aquí se comporta igual que `setModel()`.

448 

449Los valores se escriben en la capa de configuración de marca, la misma capa que la opción `settings` en línea de `query()` completa al inicio. La configuración de marca se encuentra cerca de la parte superior del [orden de precedencia de configuración](/es/settings#settings-precedence): anulan la configuración de usuario, proyecto y local, y solo la configuración de política administrada puede anularlas. Esta es la misma capa que la [sección de precedencia en la página](#settings-precedence) llama opciones programáticas.

450 

451Las llamadas sucesivas fusionan superficialmente las claves de nivel superior. Una segunda llamada con `{ permissions: {...} }` reemplaza el objeto `permissions` completo de la llamada anterior en lugar de fusionarse profundamente en él. Para borrar una clave de la capa de marca y recurrir a fuentes de menor precedencia, pase `null` para esa clave. Pasar `undefined` no tiene efecto porque la serialización JSON lo elimina.

452 

453Solo disponible en modo de entrada de transmisión, la misma restricción que `setModel()` y `setPermissionMode()`.

454 

455El ejemplo a continuación cambia el modelo activo a mitad de sesión, luego borra la anulación para que el modelo recurra a lo que especifique la configuración del usuario o proyecto.

456 

457```typescript theme={null}

458const q = query({ prompt: messageStream });

459 

460// Anule el modelo para el resto de la sesión

461await q.applyFlagSettings({ model: "claude-opus-4-6" });

462 

463// Más tarde: borre la anulación y recurra a la configuración de menor precedencia

464await q.applyFlagSettings({ model: null });

465```

466 

467<Note>

468 `applyFlagSettings()` es solo TypeScript. El SDK de Python no expone un método equivalente.

469</Note>

470 

423### `WarmQuery`471### `WarmQuery`

424 472 

425Identificador devuelto por [`startup()`](#startup). El subproceso ya está generado e inicializado, por lo que llamar a `query()` en este identificador escribe el mensaje directamente en un proceso listo sin latencia de inicio.473Identificador devuelto por [`startup()`](#startup). El subproceso ya está generado e inicializado, por lo que llamar a `query()` en este identificador escribe el mensaje directamente en un proceso listo sin latencia de inicio.


6172. Configuración del proyecto (`.claude/settings.json`)6652. Configuración del proyecto (`.claude/settings.json`)

6183. Configuración del usuario (`~/.claude/settings.json`)6663. Configuración del usuario (`~/.claude/settings.json`)

619 667 

620Las opciones programáticas como `agents` y `allowedTools` anulan la configuración del sistema de archivos de usuario, proyecto y local. La configuración de política administrada tiene precedencia sobre las opciones programáticas.668Las opciones programáticas como `agents`, `allowedTools` y `settings` anulan la configuración del sistema de archivos de usuario, proyecto y local. La configuración de política administrada tiene precedencia sobre las opciones programáticas.

621 669 

622### `PermissionMode`670### `PermissionMode`

623 671 


2443 2491 

2444### `CallToolResult`2492### `CallToolResult`

2445 2493 

2446Tipo de resultado de herramienta MCP (desde `@modelcontextprotocol/sdk/types.js`).2494Tipo de resultado de herramienta MCP (desde `@modelcontextprotocol/sdk/types.js`). `structuredContent` es un objeto JSON que se puede devolver junto con `content`, incluyendo bloques de imagen. Vea [Devolver datos estructurados](/es/agent-sdk/custom-tools#return-structured-data).

2447 2495 

2448```typescript theme={null}2496```typescript theme={null}

2449type CallToolResult = {2497type CallToolResult = {


2451 type: "text" | "image" | "resource";2499 type: "text" | "image" | "resource";

2452 // Los campos adicionales varían por tipo2500 // Los campos adicionales varían por tipo

2453 }>;2501 }>;

2502 structuredContent?: Record<string, unknown>;

2454 isError?: boolean;2503 isError?: boolean;

2455};2504};

2456```2505```

Details

361 361 

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

363# Using inference profile ID363# Using inference profile ID

364export ANTHROPIC_MODEL='global.anthropic.claude-sonnet-4-6'364export ANTHROPIC_MODEL='us.anthropic.claude-sonnet-4-6'

365export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'365export ANTHROPIC_DEFAULT_HAIKU_MODEL='us.anthropic.claude-haiku-4-5-20251001-v1:0'

366 366 

367# Using application inference profile ARN367# Using application inference profile ARN


462 462 

463El [asistente de configuración](#sign-in-with-bedrock) ofrece una opción de contexto de 1M cuando fija modelos. Para habilitarlo para un modelo fijado manualmente en su lugar, agregue `[1m]` al ID del modelo. Vea [Fijar modelos para implementaciones de terceros](/es/model-config#pin-models-for-third-party-deployments) para detalles.463El [asistente de configuración](#sign-in-with-bedrock) ofrece una opción de contexto de 1M cuando fija modelos. Para habilitarlo para un modelo fijado manualmente en su lugar, agregue `[1m]` al ID del modelo. Vea [Fijar modelos para implementaciones de terceros](/es/model-config#pin-models-for-third-party-deployments) para detalles.

464 464 

465## Niveles de servicio

466 

467[Los niveles de servicio de Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) le permiten compensar el costo contra la latencia. Establezca `ANTHROPIC_BEDROCK_SERVICE_TIER` en `default`, `flex` o `priority`:

468 

469```bash theme={null}

470export ANTHROPIC_BEDROCK_SERVICE_TIER=priority

471```

472 

473Claude Code envía esto como el encabezado `X-Amzn-Bedrock-Service-Tier` en cada solicitud. La disponibilidad de niveles varía según el modelo y la región. La capacidad reservada utiliza un [ARN de rendimiento aprovisionado](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) como el ID del modelo en lugar de esta configuración.

474 

465## AWS Guardrails475## AWS Guardrails

466 476 

467[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) le permite implementar filtrado de contenido para Claude Code. Cree un Guardrail en la [consola de Amazon Bedrock](https://console.aws.amazon.com/bedrock/), publique una versión, luego agregue los encabezados de Guardrail a su [archivo de configuración](/es/settings). Habilite la inferencia entre regiones en su Guardrail si está utilizando perfiles de inferencia entre regiones.477[Amazon Bedrock Guardrails](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html) le permite implementar filtrado de contenido para Claude Code. Cree un Guardrail en la [consola de Amazon Bedrock](https://console.aws.amazon.com/bedrock/), publique una versión, luego agregue los encabezados de Guardrail a su [archivo de configuración](/es/settings). Habilite la inferencia entre regiones en su Guardrail si está utilizando perfiles de inferencia entre regiones.

Details

113 113 

114Claude Code administra de forma segura sus credenciales de autenticación:114Claude Code administra de forma segura sus credenciales de autenticación:

115 115 

116* **Ubicación de almacenamiento**: en macOS, las credenciales se almacenan en el Keychain de macOS cifrado. En Linux y Windows, las credenciales se almacenan en `~/.claude/.credentials.json`, o bajo `$CLAUDE_CONFIG_DIR` si esa variable está establecida. En Linux, el archivo se escribe con modo `0600`; en Windows, hereda los controles de acceso del directorio de su perfil de usuario.116* **Ubicación de almacenamiento**:

117 * En macOS, las credenciales se almacenan en el Keychain de macOS cifrado.

118 * En Linux, las credenciales se almacenan en `~/.claude/.credentials.json` con modo de archivo `0600`.

119 * En Windows, las credenciales se almacenan en `%USERPROFILE%\.claude\.credentials.json` y heredan los controles de acceso del directorio de su perfil de usuario, lo que restringe el archivo a su cuenta de usuario de forma predeterminada.

120 * Si ha establecido la variable de entorno `CLAUDE_CONFIG_DIR` en Linux o Windows, el archivo `.credentials.json` se encuentra en ese directorio en su lugar.

121 * Claude Code administra `.credentials.json` a través de `/login` y `/logout`. Para enrutar solicitudes a través de un punto final de API personalizado, establezca la variable de entorno [`ANTHROPIC_BASE_URL`](/es/env-vars) en su lugar.

117* **Tipos de autenticación admitidos**: credenciales de Claude.ai, credenciales de API de Claude, Azure Auth, Bedrock Auth y Vertex Auth.122* **Tipos de autenticación admitidos**: credenciales de Claude.ai, credenciales de API de Claude, Azure Auth, Bedrock Auth y Vertex Auth.

118* **Scripts de credenciales personalizados**: la configuración [`apiKeyHelper`](/es/settings#available-settings) se puede configurar para ejecutar un script de shell que devuelva una clave API.123* **Scripts de credenciales personalizados**: la configuración [`apiKeyHelper`](/es/settings#available-settings) se puede configurar para ejecutar un script de shell que devuelva una clave API.

119* **Intervalos de actualización**: por defecto, `apiKeyHelper` se llama después de 5 minutos o en respuesta HTTP 401. Establezca la variable de entorno `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` para intervalos de actualización personalizados.124* **Intervalos de actualización**: por defecto, `apiKeyHelper` se llama después de 5 minutos o en respuesta HTTP 401. Establezca la variable de entorno `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` para intervalos de actualización personalizados.

Details

113 113 

114Cada sesión en la nube tiene una URL de transcripción en claude.ai, y la sesión puede leer su propio ID desde la variable de entorno `CLAUDE_CODE_REMOTE_SESSION_ID`. Use esto para poner un enlace rastreable en cuerpos de PR, mensajes de confirmación, publicaciones de Slack o informes generados para que un revisor pueda abrir la ejecución que los produjo.114Cada sesión en la nube tiene una URL de transcripción en claude.ai, y la sesión puede leer su propio ID desde la variable de entorno `CLAUDE_CODE_REMOTE_SESSION_ID`. Use esto para poner un enlace rastreable en cuerpos de PR, mensajes de confirmación, publicaciones de Slack o informes generados para que un revisor pueda abrir la ejecución que los produjo.

115 115 

116Pida a Claude que construya el enlace desde la variable de entorno. El siguiente comando imprime la URL:116El valor de la variable usa un prefijo `cse_`, mientras que la ruta de la URL de transcripción toma el mismo ID con un prefijo `session_`. Sustituya el prefijo al construir el enlace. El siguiente comando imprime la URL:

117 117 

118```bash theme={null}118```bash theme={null}

119echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID}"119echo "https://claude.ai/code/${CLAUDE_CODE_REMOTE_SESSION_ID/#cse_/session_}"

120```120```

121 121 

122### Ejecute pruebas, inicie servicios y agregue paquetes122### Ejecute pruebas, inicie servicios y agregue paquetes


156| Acción | Cómo |156| Acción | Cómo |

157| :------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |157| :------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

158| Agregar un entorno | Seleccione el entorno actual para abrir el selector, luego seleccione **Agregar entorno**. El diálogo incluye nombre, nivel de acceso a la red, variables de entorno y script de configuración. |158| Agregar un entorno | Seleccione el entorno actual para abrir el selector, luego seleccione **Agregar entorno**. El diálogo incluye nombre, nivel de acceso a la red, variables de entorno y script de configuración. |

159| Editar un entorno | Seleccione el icono de configuración a la derecha del nombre del entorno. |159| Editar un entorno | Seleccione el icono de nube que muestra el nombre del entorno actual para abrir el selector, pase el cursor sobre un entorno y haga clic en el icono de configuración que aparece a la derecha. |

160| Archivar un entorno | Abra el entorno para editar y seleccione **Archivar**. Los entornos archivados se ocultan del selector pero las sesiones existentes continúan ejecutándose. |160| Archivar un entorno | Abra el entorno para editar y seleccione **Archivar**. Los entornos archivados se ocultan del selector pero las sesiones existentes continúan ejecutándose. |

161| Establecer el predeterminado para `--remote` | Ejecute `/remote-env` en su terminal. Si tiene un único entorno, este comando muestra su configuración actual. `/remote-env` solo selecciona el predeterminado; agregue, edite y archive entornos desde la interfaz web. |161| Establecer el predeterminado para `--remote` | Ejecute `/remote-env` en su terminal. Si tiene un único entorno, este comando muestra su configuración actual. `/remote-env` solo selecciona el predeterminado; agregue, edite y archive entornos desde la interfaz web. |

162 162 


185 185 

186Si el script sale con un código distinto de cero, la sesión no se inicia. Agregue `|| true` a comandos no críticos para evitar bloquear la sesión en una instalación intermitente fallida.186Si el script sale con un código distinto de cero, la sesión no se inicia. Agregue `|| true` a comandos no críticos para evitar bloquear la sesión en una instalación intermitente fallida.

187 187 

188Mantenga el tiempo de ejecución total del script por debajo de aproximadamente cinco minutos para que el [caché del entorno](#environment-caching) pueda compilarse. Ejecute instalaciones independientes en paralelo con `&` y `wait`. Si una única descarga no cabe en el límite de cinco minutos, muévala a un [hook SessionStart](#setup-scripts-vs-sessionstart-hooks) que la inicie en segundo plano.

189 

188<Note>190<Note>

189 Los scripts de configuración que instalan paquetes necesitan acceso a la red para llegar a los registros. El acceso a la red predeterminado **Confiable** permite conexiones a [dominios comunes en la lista de permitidos](#default-allowed-domains) incluyendo npm, PyPI, RubyGems y crates.io. Los scripts fallarán al instalar paquetes si su entorno usa acceso a la red **Ninguno**.191 Los scripts de configuración que instalan paquetes necesitan acceso a la red para llegar a los registros. El acceso a la red predeterminado **Confiable** permite conexiones a [dominios comunes en la lista de permitidos](#default-allowed-domains) incluyendo npm, PyPI, RubyGems y crates.io. Los scripts fallarán al instalar paquetes si su entorno usa acceso a la red **Ninguno**.

190</Note>192</Note>


265 267 

266El acceso a la red controla las conexiones salientes desde el entorno en la nube. Cada entorno especifica un nivel de acceso, y puede extenderlo con dominios permitidos personalizados. El predeterminado es **Confiable**, que permite registros de paquetes y otros [dominios en la lista de permitidos](#default-allowed-domains).268El acceso a la red controla las conexiones salientes desde el entorno en la nube. Cada entorno especifica un nivel de acceso, y puede extenderlo con dominios permitidos personalizados. El predeterminado es **Confiable**, que permite registros de paquetes y otros [dominios en la lista de permitidos](#default-allowed-domains).

267 269 

270Para cambiar el acceso a la red de un entorno, [abra el entorno para editar](#configure-your-environment) y use el selector **Acceso a la red** en el diálogo. No hay una página de Entornos separada. El icono de nube aparece dondequiera que inicie una sesión en la nube o configure una [rutina](/es/routines#environments-and-network-access).

271 

272<Note>

273 El tráfico del conector MCP se enruta a través de los servidores de Anthropic, por lo que los conectores que habilita en una sesión o rutina funcionan sin agregar sus hosts a **Dominios permitidos**. Los conectores se configuran por sesión o por rutina; elimine cualquiera que no necesite para limitar qué herramientas puede alcanzar Claude. Esto se basa en el mismo canal vinculado a Anthropic mencionado en [Seguridad y aislamiento](#security-and-isolation).

274</Note>

275 

268### Niveles de acceso276### Niveles de acceso

269 277 

270Elija un nivel de acceso cuando cree o edite un entorno:278Elija un nivel de acceso cuando cree o edite un entorno:


754* **Protección de credenciales**: las credenciales sensibles como credenciales de git o claves de firma nunca están dentro del sandbox con Claude Code. La autenticación se maneja a través de un proxy seguro usando credenciales de alcance.762* **Protección de credenciales**: las credenciales sensibles como credenciales de git o claves de firma nunca están dentro del sandbox con Claude Code. La autenticación se maneja a través de un proxy seguro usando credenciales de alcance.

755* **Análisis seguro**: el código se analiza y modifica dentro de VMs aisladas antes de crear PRs763* **Análisis seguro**: el código se analiza y modifica dentro de VMs aisladas antes de crear PRs

756 764 

765## Solución de problemas

766 

767Para errores de API en tiempo de ejecución que aparecen en la conversación como `API Error: 500`, `529 Overloaded`, `429` o `Prompt is too long`, consulte la [referencia de errores](/es/errors). Esos errores y sus soluciones se comparten con la CLI y la aplicación de escritorio. Las secciones a continuación cubren problemas específicos de sesiones en la nube.

768 

769### Falló la creación de sesión

770 

771Si una nueva sesión no se inicia con `Session creation failed` o se detiene en el aprovisionamiento, Claude Code no pudo asignar un entorno en la nube.

772 

773* Verifique [status.claude.com](https://status.claude.com) para incidentes de sesión en la nube

774* Reintente después de un minuto, ya que la capacidad se aprovisiona bajo demanda

775* Confirme que su repositorio es accesible. Los repositorios privados requieren que la aplicación GitHub esté instalada con acceso a ese repositorio, o un token `gh` sincronizado a través de `/web-setup`. Consulte [Opciones de autenticación de GitHub](#github-authentication-options).

776 

777### Sesión de Control Remoto expirada o acceso denegado

778 

779`--teleport` se conecta a través de la misma infraestructura de sesión de Control Remoto que usan las sesiones en la nube, por lo que los errores de autenticación y vencimiento de sesión aparecen con la redacción de Control Remoto. Puede ver `Remote Control session has expired` o `Access denied`. El token de conexión es de corta duración y está limitado a su cuenta.

780 

781* Ejecute `/login` localmente para actualizar sus credenciales, luego reconecte

782* Confirme que está conectado a la misma cuenta que posee la sesión

783* Si ve `Remote Control may not be available for this organization`, su administrador no ha habilitado sesiones remotas para su plan

784 

785### Entorno expirado

786 

787Las sesiones en la nube se detienen después de un período de inactividad y el entorno subyacente se reclama. Desde una terminal local, esto aparece como `Could not resume session ... its environment has expired. Creating a fresh session instead.` En la web, la sesión está marcada como expirada en la lista de sesiones.

788 

789Reabra la sesión desde [claude.ai/code](https://claude.ai/code) para aprovisionar un entorno nuevo con su historial de conversación restaurado.

790 

757## Limitaciones791## Limitaciones

758 792 

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


761* **Límites de velocidad**: Claude Code en la web comparte límites de velocidad con todo otro uso de Claude y Claude Code dentro de su cuenta. Ejecutar múltiples tareas en paralelo consume más límites de velocidad proporcionalmente. No hay cargo de computación separado para la VM en la nube.795* **Límites de velocidad**: Claude Code en la web comparte límites de velocidad con todo otro uso de Claude y Claude Code dentro de su cuenta. Ejecutar múltiples tareas en paralelo consume más límites de velocidad proporcionalmente. No hay cargo de computación separado para la VM en la nube.

762* **Autenticación de repositorio**: solo puede mover sesiones de web a local cuando está autenticado en la misma cuenta796* **Autenticación de repositorio**: solo puede mover sesiones de web a local cuando está autenticado en la misma cuenta

763* **Restricciones de plataforma**: la clonación de repositorio y la creación de solicitudes de extracción requieren GitHub. Las instancias de [GitHub Enterprise Server](/es/github-enterprise-server) autohospedadas son compatibles con planes de Team y Enterprise. GitLab, Bitbucket y otros repositorios que no sean GitHub se pueden enviar a sesiones en la nube como un [paquete local](#send-local-repositories-without-github), pero la sesión no puede insertar resultados de vuelta al remoto797* **Restricciones de plataforma**: la clonación de repositorio y la creación de solicitudes de extracción requieren GitHub. Las instancias de [GitHub Enterprise Server](/es/github-enterprise-server) autohospedadas son compatibles con planes de Team y Enterprise. GitLab, Bitbucket y otros repositorios que no sean GitHub se pueden enviar a sesiones en la nube como un [paquete local](#send-local-repositories-without-github), pero la sesión no puede insertar resultados de vuelta al remoto

798* **Lista de permitidos de IP de la organización**: las sesiones en la nube llaman a la API de Anthropic desde infraestructura administrada por Anthropic, no desde su red. Si su organización tiene [lista de permitidos de IP](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) habilitada, cada sesión en la nube falla con un error de autenticación. Lo mismo se aplica a [Revisión de código](/es/code-review) y [Rutinas](/es/routines). Contacte al [soporte de Anthropic](https://support.claude.com/) para eximir los servicios alojados por Anthropic de la lista de permitidos de IP de su organización.

764 799 

765## Recursos relacionados800## Recursos relacionados

766 801 

cli-reference.md +10 −9

Details

41 41 

42| Bandera | Descripción | Ejemplo |42| Bandera | Descripción | Ejemplo |

43| :---------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |43| :---------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------- |

44| `--add-dir` | Agregar directorios de trabajo adicionales para que Claude lea y edite archivos. Otorga acceso a archivos; la mayoría de la configuración de `.claude/` [no se descubre](/es/permissions#additional-directories-grant-file-access-not-configuration) desde estos directorios. Valida que cada ruta exista como directorio | `claude --add-dir ../apps ../lib` |44| `--add-dir` | Agregar directorios de trabajo adicionales para que Claude lea y edite archivos. Otorga acceso a archivos; la mayoría de la configuración de `.claude/` [no se descubre](/es/permissions#additional-directories-grant-file-access-not-configuration) desde estos directorios. Valida que cada ruta exista como directorio. Para persistir estos directorios entre sesiones, establezca [`permissions.additionalDirectories`](/es/settings#permission-settings) en configuración | `claude --add-dir ../apps ../lib` |

45| `--agent` | Especificar un agente para la sesión actual (anula la configuración `agent`) | `claude --agent my-custom-agent` |45| `--agent` | Especificar un agente para la sesión actual (anula la configuración `agent`) | `claude --agent my-custom-agent` |

46| `--agents` | Definir subagents personalizados dinámicamente a través de JSON. Utiliza los mismos nombres de campo que el [frontmatter](/es/sub-agents#supported-frontmatter-fields) de subagent, más un campo `prompt` para las instrucciones del agente | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |46| `--agents` | Definir subagents personalizados dinámicamente a través de JSON. Utiliza los mismos nombres de campo que el [frontmatter](/es/sub-agents#supported-frontmatter-fields) de subagent, más un campo `prompt` para las instrucciones del agente | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

47| `--allow-dangerously-skip-permissions` | Agregar `bypassPermissions` al ciclo de modo `Shift+Tab` sin comenzar en él. Permite comenzar en un modo diferente como `plan` y cambiar a `bypassPermissions` más tarde. Consulte [modos de permiso](/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |47| `--allow-dangerously-skip-permissions` | Agregar `bypassPermissions` al ciclo de modo `Shift+Tab` sin comenzar en él. Permite comenzar en un modo diferente como `plan` y cambiar a `bypassPermissions` más tarde. Consulte [modos de permiso](/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |


59| `--debug-file <path>` | Escribir registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración. Tiene prioridad sobre `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |59| `--debug-file <path>` | Escribir registros de depuración en una ruta de archivo específica. Habilita implícitamente el modo de depuración. Tiene prioridad sobre `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

60| `--disable-slash-commands` | Deshabilitar todas las skills y comandos para esta sesión | `claude --disable-slash-commands` |60| `--disable-slash-commands` | Deshabilitar todas las skills y comandos para esta sesión | `claude --disable-slash-commands` |

61| `--disallowedTools` | Herramientas que se eliminan del contexto del modelo y no se pueden usar | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |61| `--disallowedTools` | Herramientas que se eliminan del contexto del modelo y no se pueden usar | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

62| `--effort` | Establecer el [nivel de esfuerzo](/es/model-config#adjust-effort-level) para la sesión actual. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo. Con alcance de sesión y no persiste en la configuración | `claude --effort high` |62| `--effort` | Establecer el [nivel de esfuerzo](/es/model-config#adjust-effort-level) para la sesión actual. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo. Anula la configuración [`effortLevel`](/es/settings#available-settings) para esta sesión y no persiste | `claude --effort high` |

63| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Eliminado en v2.1.111. Auto mode ahora está en el ciclo `Shift+Tab` de forma predeterminada; use `--permission-mode auto` para comenzar en él | `claude --permission-mode auto` |63| `--enable-auto-mode` | {/* max-version: 2.1.110 */}Eliminado en v2.1.111. Auto mode ahora está en el ciclo `Shift+Tab` de forma predeterminada; use `--permission-mode auto` para comenzar en él | `claude --permission-mode auto` |

64| `--exclude-dynamic-system-prompt-sections` | Mover secciones por máquina del indicador del sistema (directorio de trabajo, información del entorno, rutas de memoria, estado de git) al primer mensaje del usuario. Mejora la reutilización de caché de indicación en diferentes usuarios y máquinas que ejecutan la misma tarea. Solo se aplica con el indicador del sistema predeterminado; se ignora cuando se establece `--system-prompt` o `--system-prompt-file`. Use con `-p` para cargas de trabajo con script y múltiples usuarios | `claude -p --exclude-dynamic-system-prompt-sections "query"` |64| `--exclude-dynamic-system-prompt-sections` | Mover secciones por máquina del indicador del sistema (directorio de trabajo, información del entorno, rutas de memoria, estado de git) al primer mensaje del usuario. Mejora la reutilización de caché de indicación en diferentes usuarios y máquinas que ejecutan la misma tarea. Solo se aplica con el indicador del sistema predeterminado; se ignora cuando se establece `--system-prompt` o `--system-prompt-file`. Use con `-p` para cargas de trabajo con script y múltiples usuarios | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

65| `--fallback-model` | Habilitar fallback automático al modelo especificado cuando el modelo predeterminado está sobrecargado (solo modo impresión) | `claude -p --fallback-model sonnet "query"` |65| `--fallback-model` | Habilitar fallback automático al modelo especificado cuando el modelo predeterminado está sobrecargado (solo modo impresión) | `claude -p --fallback-model sonnet "query"` |


76| `--max-budget-usd` | Cantidad máxima en dólares a gastar en llamadas API antes de detener (solo modo impresión) | `claude -p --max-budget-usd 5.00 "query"` |76| `--max-budget-usd` | Cantidad máxima en dólares a gastar en llamadas API antes de detener (solo modo impresión) | `claude -p --max-budget-usd 5.00 "query"` |

77| `--max-turns` | Limitar el número de turnos de agente (solo modo impresión). Sale con un error cuando se alcanza el límite. Sin límite por defecto | `claude -p --max-turns 3 "query"` |77| `--max-turns` | Limitar el número de turnos de agente (solo modo impresión). Sale con un error cuando se alcanza el límite. Sin límite por defecto | `claude -p --max-turns 3 "query"` |

78| `--mcp-config` | Cargar servidores MCP desde archivos JSON o cadenas (separados por espacios) | `claude --mcp-config ./mcp.json` |78| `--mcp-config` | Cargar servidores MCP desde archivos JSON o cadenas (separados por espacios) | `claude --mcp-config ./mcp.json` |

79| `--model` | Establece el modelo para la sesión actual con un alias para el modelo más reciente (`sonnet` u `opus`) o el nombre completo de un modelo | `claude --model claude-sonnet-4-6` |79| `--model` | Establece el modelo para la sesión actual con un alias para el modelo más reciente (`sonnet` u `opus`) o el nombre completo de un modelo. Anula la configuración [`model`](/es/settings#available-settings) y [`ANTHROPIC_MODEL`](/es/model-config#environment-variables) | `claude --model claude-sonnet-4-6` |

80| `--name`, `-n` | Establecer un nombre para mostrar para la sesión, que se muestra en `/resume` y en el título de la terminal. Puede reanudar una sesión nombrada con `claude --resume <name>`. <br /><br />[`/rename`](/es/commands) cambia el nombre durante la sesión y también lo muestra en la barra de indicación | `claude -n "my-feature-work"` |80| `--name`, `-n` | Establecer un nombre para mostrar para la sesión, que se muestra en `/resume` y en el título de la terminal. Puede reanudar una sesión nombrada con `claude --resume <name>`. <br /><br />[`/rename`](/es/commands) cambia el nombre durante la sesión y también lo muestra en la barra de indicación | `claude -n "my-feature-work"` |

81| `--no-chrome` | Deshabilitar [integración del navegador Chrome](/es/chrome) para esta sesión | `claude --no-chrome` |81| `--no-chrome` | Deshabilitar [integración del navegador Chrome](/es/chrome) para esta sesión | `claude --no-chrome` |

82| `--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) | `claude -p --no-session-persistence "query"` |82| `--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"` |

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

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

85| `--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"` |85| `--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"` |

86| `--plugin-dir` | Cargar plugins desde un directorio solo para esta sesión. Cada bandera toma una ruta. Repita la bandera para múltiples directorios: `--plugin-dir A --plugin-dir B` | `claude --plugin-dir ./my-plugins` |86| `--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` |

87| `--plugin-url` | Obtener un archivo `.zip` de plugin desde una URL solo para esta sesión. Cada bandera toma una URL. Repita la bandera para múltiples plugins | `claude --plugin-url https://example.com/plugin.zip` |

87| `--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"` |88| `--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"` |

88| `--remote` | Crear una nueva [sesión web](/es/claude-code-on-the-web) en claude.ai con la descripción de tarea proporcionada | `claude --remote "Fix the login bug"` |89| `--remote` | Crear una nueva [sesión web](/es/claude-code-on-the-web) en claude.ai con la descripción de tarea proporcionada | `claude --remote "Fix the login bug"` |

89| `--remote-control`, `--rc` | Iniciar una sesión interactiva con [Remote Control](/es/remote-control#start-a-remote-control-session) habilitado para que también pueda controlarlo desde claude.ai o la aplicación Claude. Opcionalmente pase un nombre para la sesión | `claude --remote-control "My Project"` |90| `--remote-control`, `--rc` | Iniciar una sesión interactiva con [Remote Control](/es/remote-control#start-a-remote-control-session) habilitado para que también pueda controlarlo desde claude.ai o la aplicación Claude. Opcionalmente pase un nombre para la sesión | `claude --remote-control "My Project"` |


92| `--resume`, `-r` | Reanudar una sesión específica por ID o nombre, o mostrar un selector interactivo para elegir una sesión. Incluye sesiones que agregaron este directorio con `/add-dir` | `claude --resume auth-refactor` |93| `--resume`, `-r` | Reanudar una sesión específica por ID o nombre, o mostrar un selector interactivo para elegir una sesión. Incluye sesiones que agregaron este directorio con `/add-dir` | `claude --resume auth-refactor` |

93| `--session-id` | Usar un ID de sesión específico para la conversación (debe ser un UUID válido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |94| `--session-id` | Usar un ID de sesión específico para la conversación (debe ser un UUID válido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

94| `--setting-sources` | Lista separada por comas de fuentes de configuración a cargar (`user`, `project`, `local`) | `claude --setting-sources user,project` |95| `--setting-sources` | Lista separada por comas de fuentes de configuración a cargar (`user`, `project`, `local`) | `claude --setting-sources user,project` |

95| `--settings` | Ruta a un archivo JSON de configuración o una cadena JSON para cargar configuración adicional desde | `claude --settings ./settings.json` |96| `--settings` | Ruta a un archivo JSON de configuración o una cadena JSON en línea. Los valores que establezca aquí anulan las mismas claves en sus archivos `settings.json` para esta sesión. Las claves que omita mantienen sus valores basados en archivos. Consulte [precedencia de configuración](/es/settings#settings-precedence) | `claude --settings ./settings.json` |

96| `--strict-mcp-config` | Usar solo servidores MCP de `--mcp-config`, ignorando todas las demás configuraciones de MCP | `claude --strict-mcp-config --mcp-config ./mcp.json` |97| `--strict-mcp-config` | Usar solo servidores MCP de `--mcp-config`, ignorando todas las demás configuraciones de MCP | `claude --strict-mcp-config --mcp-config ./mcp.json` |

97| `--system-prompt` | Reemplazar todo el indicador del sistema con texto personalizado | `claude --system-prompt "You are a Python expert"` |98| `--system-prompt` | Reemplazar todo el indicador del sistema con texto personalizado | `claude --system-prompt "You are a Python expert"` |

98| `--system-prompt-file` | Cargar indicación del sistema desde un archivo, reemplazando el indicador predeterminado | `claude --system-prompt-file ./custom-prompt.txt` |99| `--system-prompt-file` | Cargar indicación del sistema desde un archivo, reemplazando el indicador predeterminado | `claude --system-prompt-file ./custom-prompt.txt` |

99| `--teleport` | Reanudar una [sesión web](/es/claude-code-on-the-web) en su terminal local | `claude --teleport` |100| `--teleport` | Reanudar una [sesión web](/es/claude-code-on-the-web) en su terminal local | `claude --teleport` |

100| `--teammate-mode` | Establecer cómo se muestran los compañeros de [equipo de agente](/es/agent-teams): `auto` (predeterminado), `in-process` o `tmux`. Consulte [Elegir un modo de visualización](/es/agent-teams#choose-a-display-mode) | `claude --teammate-mode in-process` |101| `--teammate-mode` | Establecer cómo se muestran los compañeros de [equipo de agente](/es/agent-teams): `auto` (predeterminado), `in-process` o `tmux`. Anula la configuración [`teammateMode`](/es/settings#available-settings) para esta sesión. Consulte [Elegir un modo de visualización](/es/agent-teams#choose-a-display-mode) | `claude --teammate-mode in-process` |

101| `--tmux` | Crear una sesión tmux para el worktree. Requiere `--worktree`. Utiliza paneles nativos de iTerm2 cuando están disponibles; pase `--tmux=classic` para tmux tradicional | `claude -w feature-auth --tmux` |102| `--tmux` | Crear una sesión tmux para el worktree. Requiere `--worktree`. Utiliza paneles nativos de iTerm2 cuando están disponibles; pase `--tmux=classic` para tmux tradicional | `claude -w feature-auth --tmux` |

102| `--tools` | Restringir qué herramientas integradas puede usar Claude. Use `""` para deshabilitar todas, `"default"` para todas, o nombres de herramientas como `"Bash,Edit,Read"` | `claude --tools "Bash,Edit,Read"` |103| `--tools` | Restringir qué herramientas integradas puede usar Claude. Use `""` para deshabilitar todas, `"default"` para todas, o nombres de herramientas como `"Bash,Edit,Read"` | `claude --tools "Bash,Edit,Read"` |

103| `--verbose` | Habilitar registro detallado, muestra salida completa turno por turno | `claude --verbose` |104| `--verbose` | Habilitar registro detallado, muestra salida completa turno por turno. Anula la configuración [`viewMode`](/es/settings#available-settings) para esta sesión | `claude --verbose` |

104| `--version`, `-v` | Mostrar el número de versión | `claude -v` |105| `--version`, `-v` | Mostrar el número de versión | `claude -v` |

105| `--worktree`, `-w` | Iniciar Claude en un [git worktree](/es/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) aislado en `<repo>/.claude/worktrees/<name>`. Si no se proporciona un nombre, se genera automáticamente | `claude -w feature-auth` |106| `--worktree`, `-w` | Iniciar Claude en un [git worktree](/es/worktrees) aislado en `<repo>/.claude/worktrees/<name>`. Si no se proporciona un nombre, se genera automáticamente | `claude -w feature-auth` |

106 107 

107### Banderas de indicación del sistema108### Banderas de indicación del sistema

108 109 

commands.md +7 −5

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.

14 

13La tabla siguiente enumera todos los comandos incluidos en Claude Code. Las entradas marcadas como **[Skill](/es/skills#bundled-skills)** son skills agrupados. Utilizan el mismo mecanismo que los skills que escribe usted mismo: un prompt entregado a Claude, que Claude también puede invocar automáticamente cuando sea relevante. Todo lo demás es un comando integrado cuyo comportamiento está codificado en la CLI. Para agregar sus propios comandos, consulte [skills](/es/skills).15La tabla siguiente enumera todos los comandos incluidos en Claude Code. Las entradas marcadas como **[Skill](/es/skills#bundled-skills)** son skills agrupados. Utilizan el mismo mecanismo que los skills que escribe usted mismo: un prompt entregado a Claude, que Claude también puede invocar automáticamente cuando sea relevante. Todo lo demás es un comando integrado cuyo comportamiento está codificado en la CLI. Para agregar sus propios comandos, consulte [skills](/es/skills).

14 16 

15No todos los comandos aparecen para todos los usuarios. La disponibilidad depende de su plataforma, plan y entorno. Por ejemplo, `/desktop` solo aparece en macOS y Windows, y `/upgrade` solo aparece en planes Pro y Max.17No todos los comandos aparecen para todos los usuarios. La disponibilidad depende de su plataforma, plan y entorno. Por ejemplo, `/desktop` solo aparece en macOS y Windows, y `/upgrade` solo aparece en planes Pro y Max.


21| `/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` |23| `/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` |

22| `/agents` | Administrar configuraciones de [agent](/es/sub-agents) |24| `/agents` | Administrar configuraciones de [agent](/es/sub-agents) |

23| `/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#who-can-use-claude-code-on-the-web) |25| `/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#who-can-use-claude-code-on-the-web) |

24| `/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 agente de fondo por unidad en un [git worktree](/es/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees) aislado. Cada agente 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` |26| `/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 agente de fondo por unidad en un [git worktree](/es/worktrees) aislado. Cada agente 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` |

25| `/branch [name]` | Crear una rama de la conversación actual en este punto. Lo cambia a la rama y preserva la original, a la que puede volver con `/resume`. Alias: `/fork`. Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](/es/env-vars) está establecido, `/fork` en su lugar genera un [subagente bifurcado](/es/sub-agents#fork-the-current-conversation) y ya no es un alias para este comando |27| `/branch [name]` | Crear una rama de la conversación actual en este punto. Lo cambia a la rama y preserva la original, a la que puede volver con `/resume`. Alias: `/fork`. Cuando [`CLAUDE_CODE_FORK_SUBAGENT`](/es/env-vars) está establecido, `/fork` en su lugar genera un [subagente bifurcado](/es/sub-agents#fork-the-current-conversation) y ya no es un alias para este comando |

26| `/btw <question>` | Hacer una [pregunta rápida](/es/interactive-mode#side-questions-with-%2Fbtw) sin agregar a la conversación |28| `/btw <question>` | Hacer una [pregunta rápida](/es/interactive-mode#side-questions-with-%2Fbtw) sin agregar a la conversación |

27| `/chrome` | Configurar ajustes de [Claude in Chrome](/es/chrome) |29| `/chrome` | Configurar ajustes de [Claude in Chrome](/es/chrome) |

28| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/es/skills#bundled-skills).** Cargar material de referencia de la API de Claude para el idioma de su proyecto (Python, TypeScript, Java, Go, Ruby, C#, PHP o cURL) y referencia de Managed Agents. Cubre uso de herramientas, streaming, lotes, salidas estructuradas y trampas comunes. También se activa automáticamente cuando su código importa `anthropic` o `@anthropic-ai/sdk`. Ejecute `/claude-api migrate` para actualizar el código existente de la API de Claude a un modelo más nuevo: Claude pregunta qué archivos escanear y qué modelo dirigirse, luego actualiza los ID de modelo, configuración de pensamiento y otros parámetros que cambiaron entre versiones. Ejecute `/claude-api managed-agents-onboard` para un tutorial interactivo que crea un nuevo Managed Agent desde cero |30| `/claude-api [migrate\|managed-agents-onboard]` | **[Skill](/es/skills#bundled-skills).** Cargar material de referencia de la API de Claude para el idioma de su proyecto (Python, TypeScript, Java, Go, Ruby, C#, PHP o cURL) y referencia de Managed Agents. Cubre uso de herramientas, streaming, lotes, salidas estructuradas y trampas comunes. También se activa automáticamente cuando su código importa `anthropic` o `@anthropic-ai/sdk`. Ejecute `/claude-api migrate` para actualizar el código existente de la API de Claude a un modelo más nuevo: Claude pregunta qué archivos escanear y qué modelo dirigirse, luego actualiza los ID de modelo, configuración de pensamiento y otros parámetros que cambiaron entre versiones. Ejecute `/claude-api managed-agents-onboard` para un tutorial interactivo que crea un nuevo Managed Agent desde cero |

29| `/clear` | Iniciar una nueva conversación con contexto vacío. La conversación anterior permanece disponible en `/resume`. Para liberar contexto mientras continúa la misma conversación, use `/compact` en su lugar. Alias: `/reset`, `/new` |31| `/clear` | Iniciar una nueva conversación con contexto vacío. La conversación anterior permanece disponible en `/resume`. Para liberar contexto mientras continúa la misma conversación, use `/compact` en su lugar. Alias: `/reset`, `/new` |

30| `/color [color\|default]` | Establecer el color de la barra de solicitud para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` para restablecer. Cuando [Remote Control](/es/remote-control) está conectado, el color se sincroniza con claude.ai/code |32| `/color [color\|default]` | Establecer el color de la barra de solicitud para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` para restablecer, o ejecute sin argumento para elegir un color aleatorio. Cuando [Remote Control](/es/remote-control) está conectado, el color se sincroniza con claude.ai/code |

31| `/compact [instructions]` | Liberar contexto resumiendo la conversación hasta ahora. Opcionalmente pase instrucciones de enfoque para el resumen. Consulte [cómo la compactación maneja reglas, skills y archivos de memoria](/es/context-window#what-survives-compaction) |33| `/compact [instructions]` | Liberar contexto resumiendo la conversación hasta ahora. Opcionalmente pase instrucciones de enfoque para el resumen. Consulte [cómo la compactación maneja reglas, skills y archivos de memoria](/es/context-window#what-survives-compaction) |

32| `/config` | Abrir la interfaz de [Settings](/es/settings) para ajustar tema, modelo, [estilo de salida](/es/output-styles) y otras preferencias. Alias: `/settings` |34| `/config` | Abrir la interfaz de [Settings](/es/settings) para ajustar tema, modelo, [estilo de salida](/es/output-styles) y otras preferencias. Alias: `/settings` |

33| `/context` | 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 |35| `/context` | 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 |


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

45| `/feedback [report]` | Enviar comentarios sobre Claude Code. Alias: `/bug` |47| `/feedback [report]` | Enviar comentarios sobre Claude Code. Alias: `/bug` |

46| `/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 |48| `/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 |

47| `/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. Solo disponible en [renderizado de pantalla completa](/es/fullscreen) |49| `/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) |

48| `/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) |50| `/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) |

49| `/help` | Mostrar ayuda y comandos disponibles |51| `/help` | Mostrar ayuda y comandos disponibles |

50| `/hooks` | Ver configuraciones de [hook](/es/hooks) para eventos de herramientas |52| `/hooks` | Ver configuraciones de [hook](/es/hooks) para eventos de herramientas |


83| `/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 |85| `/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 |

84| `/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 |86| `/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 |

85| `/simplify [focus]` | **[Skill](/es/skills#bundled-skills).** Revisar sus archivos recientemente modificados para problemas de reutilización de código, calidad y eficiencia, luego corregirlos. Genera tres agentes de revisión en paralelo, agrega sus hallazgos y aplica correcciones. Pase texto para enfocarse en preocupaciones específicas: `/simplify focus on memory efficiency` |87| `/simplify [focus]` | **[Skill](/es/skills#bundled-skills).** Revisar sus archivos recientemente modificados para problemas de reutilización de código, calidad y eficiencia, luego corregirlos. Genera tres agentes de revisión en paralelo, agrega sus hallazgos y aplica correcciones. Pase texto para enfocarse en preocupaciones específicas: `/simplify focus on memory efficiency` |

86| `/skills` | Listar [skills](/es/skills) disponibles. Presione `t` para ordenar por recuento de tokens |88| `/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 |

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

88| `/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 |90| `/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 |

89| `/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 |91| `/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 |

90| `/stickers` | Pedir pegatinas de Claude Code |92| `/stickers` | Pedir pegatinas de Claude Code |

91| `/tasks` | Listar y administrar tareas de fondo. También disponible como `/bashes` |93| `/tasks` | Listar y administrar tareas de fondo. También disponible como `/bashes` |

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

93| `/teleport` | Extraer una sesión de [Claude Code en la web](/es/claude-code-on-the-web#from-web-to-terminal) en esta terminal: abre un selector, luego obtiene la rama y la conversación. También disponible como `/tp`. Requiere una suscripción a claude.ai |95| `/teleport` | Extraer una sesión de [Claude Code en la web](/es/claude-code-on-the-web#from-web-to-terminal) en esta terminal: abre un selector, luego obtiene la rama y la conversación. También disponible como `/tp`. Requiere una suscripción a claude.ai |

94| `/terminal-setup` | Configurar atajos de teclado de terminal para Shift+Enter y otros accesos directos. Solo visible en terminales que lo necesitan, como VS Code, Cursor, Windsurf, Alacritty o Zed |96| `/terminal-setup` | Configurar atajos de teclado de terminal para Shift+Enter y otros accesos directos. Solo visible en terminales que lo necesitan, como VS Code, Cursor, Windsurf, Alacritty o Zed |

95| `/theme` | Cambiar el tema de color. Incluye una opción `auto` que sigue el modo oscuro o claro de su terminal, variantes claras y oscuras, temas accesibles para daltónicos (daltónicos), temas ANSI que utilizan la paleta de colores de su terminal, y cualquier [tema personalizado](/es/terminal-config#create-a-custom-theme) de `~/.claude/themes/` o plugins. Seleccione **New custom theme…** para crear uno |97| `/theme` | Cambiar el tema de color. Incluye una opción `auto` que sigue el modo oscuro o claro de su terminal, variantes claras y oscuras, temas accesibles para daltónicos (daltónicos), temas ANSI que utilizan la paleta de colores de su terminal, y cualquier [tema personalizado](/es/terminal-config#create-a-custom-theme) de `~/.claude/themes/` o plugins. Seleccione **New custom theme…** para crear uno |

Details

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

18 18 

19| Comando | Muestra |19| Comando | Muestra |

20| :------------- | :---------------------------------------------------------------------------------------- |20| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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


25| `/mcp` | Servidores MCP conectados y su estado |25| `/mcp` | Servidores MCP conectados y su estado |

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

27| `/doctor` | Diagnósticos de configuración: claves inválidas, errores de esquema, salud de instalación |27| `/doctor` | Diagnósticos de configuración: claves inválidas, errores de esquema, salud de instalación |

28| `/debug [issue]` | Habilita el registro de depuración para la sesión e indica a Claude que diagnostique usando la salida del registro y las rutas de configuración |

28| `/status` | Fuentes de configuración activas, incluido si la configuración administrada está en vigor |29| `/status` | Fuentes de configuración activas, incluido si la configuración administrada está en vigor |

29 30 

30Si falta un archivo de memoria en `/memory`, verifique su ubicación contra [cómo se cargan los archivos CLAUDE.md](/es/memory#how-claude-md-files-load). Los archivos `CLAUDE.md` del subdirectorio se cargan bajo demanda cuando Claude lee un archivo en ese directorio con la herramienta Read, no al inicio de la sesión.31Si falta un archivo de memoria en `/memory`, verifique su ubicación contra [cómo se cargan los archivos CLAUDE.md](/es/memory#how-claude-md-files-load). Los archivos `CLAUDE.md` del subdirectorio se cargan bajo demanda cuando Claude lee un archivo en ese directorio con la herramienta Read, no al inicio de la sesión.


41 42 

42La configuración se fusiona en ámbitos administrados, de usuario, de proyecto y locales. La configuración administrada siempre gana cuando está presente. Entre el resto, el ámbito más cercano anula el más amplio en el orden local, luego proyecto, luego usuario. Algunos ajustes también se pueden establecer mediante banderas de línea de comandos o [variables de entorno](/es/env-vars), que actúan como otra capa de anulación. Cuando una configuración no parece aplicarse, el valor que estableció generalmente se anula por otro ámbito o una variable de entorno.43La configuración se fusiona en ámbitos administrados, de usuario, de proyecto y locales. La configuración administrada siempre gana cuando está presente. Entre el resto, el ámbito más cercano anula el más amplio en el orden local, luego proyecto, luego usuario. Algunos ajustes también se pueden establecer mediante banderas de línea de comandos o [variables de entorno](/es/env-vars), que actúan como otra capa de anulación. Cuando una configuración no parece aplicarse, el valor que estableció generalmente se anula por otro ámbito o una variable de entorno.

43 44 

44Ejecute `/doctor` para validar sus archivos de configuración y mostrar claves inválidas o errores de esquema. Ejecute `/status` para ver qué fuentes de configuración están activas, incluido si la configuración administrada está en vigor. Para entender qué ámbito gana para una clave determinada, consulte [Cómo interactúan los ámbitos](/es/settings#how-scopes-interact).45Ejecute `/doctor` para validar sus archivos de configuración y mostrar claves inválidas o errores de esquema. Cuando `/doctor` informa de problemas, presione `f` para enviar el informe de diagnóstico a Claude y dejar que lo guíe a través de las correcciones.

46 

47Ejecute `/status` para ver qué fuentes de configuración están activas, incluido si la configuración administrada está en vigor. Para entender qué ámbito gana para una clave determinada, consulte [Cómo interactúan los ámbitos](/es/settings#how-scopes-interact).

45 48 

46## Verificar servidores MCP49## Verificar servidores MCP

47 50 


63 66 

64Si `/hooks` muestra el hook pero aún no se dispara, el siguiente paso es ver la evaluación del hook en vivo. Inicie una sesión con `claude --debug hooks` y active la llamada de herramienta. El registro de depuración registra cada evento, qué matchers se verificaron y el código de salida y la salida del hook. Consulte [Depurar hooks](/es/hooks#debug-hooks) para el formato del registro y [solución de problemas de hooks](/es/hooks-guide#limitations-and-troubleshooting) para patrones de fallo comunes.67Si `/hooks` muestra el hook pero aún no se dispara, el siguiente paso es ver la evaluación del hook en vivo. Inicie una sesión con `claude --debug hooks` y active la llamada de herramienta. El registro de depuración registra cada evento, qué matchers se verificaron y el código de salida y la salida del hook. Consulte [Depurar hooks](/es/hooks#debug-hooks) para el formato del registro y [solución de problemas de hooks](/es/hooks-guide#limitations-and-troubleshooting) para patrones de fallo comunes.

65 68 

66## Causas comunes69## Probar contra una configuración limpia

70 

71Si las comprobaciones dirigidas no aíslan la causa, o su configuración está en un estado desconocido, compare contra una sesión que no carga nada de su configuración habitual. Apunte [`CLAUDE_CONFIG_DIR`](/es/env-vars) a un directorio vacío para omitir todo bajo `~/.claude`, e inicie desde un directorio que no tenga carpeta `.claude`, `.mcp.json` o `CLAUDE.md` para que la configuración del proyecto también se omita.

72 

73```bash theme={null}

74cd /tmp && CLAUDE_CONFIG_DIR=/tmp/claude-clean claude

75```

76 

77La sesión limpia no tiene configuración de usuario o proyecto, hooks, servidores MCP, plugins o memoria.

78 

79* La configuración administrada aún se aplica si su organización la implementa, ya que vive en una ruta del sistema fuera de `~/.claude`

80* En Linux y Windows, se le pedirá que inicie sesión nuevamente porque las credenciales se almacenan en el directorio de configuración

81* En macOS, las credenciales están en el Keychain y se transfieren a la sesión limpia

82 

83Si el problema desaparece aquí, la causa está en algún lugar de sus archivos reales `~/.claude` o `.claude` del proyecto. Reintrodúzcalos uno a la vez, copiando archivos en el directorio temporal o iniciando desde su proyecto, para encontrar cuál es. Si persiste en la sesión limpia, la causa está fuera de su configuración de usuario y proyecto. Ejecute `/status` para verificar si la configuración administrada está en vigor, busque [variables de entorno](/es/env-vars) que afecten a Claude Code, luego consulte [Solución de problemas](/es/troubleshooting).

84 

85## Verificar causas comunes

67 86 

68La mayoría de las sorpresas de configuración se remontan a un pequeño conjunto de reglas de ubicación y sintaxis. Verifique estos antes de asumir un error:87La mayoría de las sorpresas de configuración se remontan a un pequeño conjunto de reglas de ubicación y sintaxis. Verifique estos antes de asumir un error:

69 88 

70| Síntoma | Causa | Solución |89| Síntoma | Causa | Solución |

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

72| Hook nunca se dispara | `matcher` es una matriz JSON en lugar de una cadena | Use una cadena única con `\|` para coincidir con múltiples herramientas, por ejemplo `"Edit\|Write"`. Consulte [patrones de matcher](/es/hooks#matcher-patterns). |91| Hook nunca se dispara | `matcher` es una matriz JSON en lugar de una cadena | Use una cadena única con `\|` para coincidir con múltiples herramientas, por ejemplo `"Edit\|Write"`. Consulte [patrones de matcher](/es/hooks#matcher-patterns). |

73| Hook nunca se dispara | El valor `matcher` está en minúsculas, por ejemplo `"bash"` | La coincidencia distingue mayúsculas de minúsculas. Los nombres de herramientas están capitalizados: `Bash`, `Edit`, `Write`, `Read`. |92| Hook nunca se dispara | El valor `matcher` está en minúsculas, por ejemplo `"bash"` | La coincidencia distingue mayúsculas de minúsculas. Los nombres de herramientas están capitalizados: `Bash`, `Edit`, `Write`, `Read`. |

74| Hook nunca se dispara | Los hooks están en un archivo `.claude/hooks.json` independiente | No hay archivo de hooks independiente. Defina hooks bajo la clave `"hooks"` en `settings.json`. Consulte [configuración de hook](/es/hooks). |93| Hook nunca se dispara | Los hooks están en un archivo `.claude/hooks.json` independiente | No hay archivo de hooks independiente. Defina hooks bajo la clave `"hooks"` en `settings.json`. Consulte [configuración de hook](/es/hooks). |


80| El subagente ignora las instrucciones de `CLAUDE.md` | Los subagentes no siempre heredan la memoria del proyecto | Coloque las reglas críticas en el cuerpo del archivo del agente, que se convierte en el indicador del sistema del subagente. Consulte [configuración de subagente](/es/sub-agents). |99| El subagente ignora las instrucciones de `CLAUDE.md` | Los subagentes no siempre heredan la memoria del proyecto | Coloque las reglas críticas en el cuerpo del archivo del agente, que se convierte en el indicador del sistema del subagente. Consulte [configuración de subagente](/es/sub-agents). |

81| La lógica de limpieza nunca se ejecuta al final de la sesión | No hay hook `SessionEnd` configurado | Agregue un hook `SessionEnd` en `settings.json`. Consulte la [lista de eventos de hook](/es/hooks#hook-events). |100| La lógica de limpieza nunca se ejecuta al final de la sesión | No hay hook `SessionEnd` configurado | Agregue un hook `SessionEnd` en `settings.json`. Consulte la [lista de eventos de hook](/es/hooks#hook-events). |

82| Los servidores MCP en `.mcp.json` nunca se cargan | El archivo está bajo `.claude/` o usa el formato de configuración de Claude Desktop | La configuración de MCP del proyecto va en la raíz del repositorio como `.mcp.json`, no dentro de `.claude/`. Consulte [configuración de MCP](/es/mcp). |101| Los servidores MCP en `.mcp.json` nunca se cargan | El archivo está bajo `.claude/` o usa el formato de configuración de Claude Desktop | La configuración de MCP del proyecto va en la raíz del repositorio como `.mcp.json`, no dentro de `.claude/`. Consulte [configuración de MCP](/es/mcp). |

102| Los servidores MCP agregados bajo `mcpServers` en `settings.json` nunca aparecen | `settings.json` no lee una clave `mcpServers` | Defina servidores de proyecto en `.mcp.json` en la raíz del repositorio, o ejecute `claude mcp add --scope user` para servidores con ámbito de usuario. Consulte [configuración de MCP](/es/mcp). |

83| El servidor MCP del proyecto agregado pero no aparece | Se descartó el mensaje de aprobación única | Los servidores con ámbito de proyecto requieren aprobación. Ejecute `/mcp` para ver el estado y aprobar. |103| El servidor MCP del proyecto agregado pero no aparece | Se descartó el mensaje de aprobación única | Los servidores con ámbito de proyecto requieren aprobación. Ejecute `/mcp` para ver el estado y aprobar. |

84| El servidor MCP no se inicia desde algunos directorios | `command` o `args` usa una ruta de archivo relativa | Use rutas absolutas para scripts locales. Los ejecutables en su `PATH` como `npx` o `uvx` funcionan tal cual. |104| El servidor MCP no se inicia desde algunos directorios | `command` o `args` usa una ruta de archivo relativa | Use rutas absolutas para scripts locales. Los ejecutables en su `PATH` como `npx` o `uvx` funcionan tal cual. |

85| El servidor MCP se inicia sin las variables de entorno esperadas | Las variables están en `settings.json` `env`, que no se propaga a procesos secundarios de MCP | Establezca `env` por servidor dentro de `.mcp.json` en su lugar. |105| El servidor MCP se inicia sin las variables de entorno esperadas | Las variables están en `settings.json` `env`, que no se propaga a procesos secundarios de MCP | Establezca `env` por servidor dentro de `.mcp.json` en su lugar. |

Details

4 4 

5# Descubra e instale plugins pregenerados a través de mercados5# Descubra e instale plugins pregenerados a través de mercados

6 6 

7> Encuentre e instale plugins de mercados para extender Claude Code con nuevos comandos, agentes y capacidades.7> Encuentre e instale plugins de mercados para extender Claude Code con nuevas skills, agentes y capacidades.

8 8 

9Los plugins extienden Claude Code con skills, agentes, hooks y servidores MCP. Los mercados de plugins son catálogos que le ayudan a descubrir e instalar estas extensiones sin construirlas usted mismo.9Los plugins extienden Claude Code con skills, agentes, hooks y servidores MCP. Los mercados de plugins son catálogos que le ayudan a descubrir e instalar estas extensiones sin construirlas usted mismo.

10 10 


36/plugin install github@claude-plugins-official36/plugin install github@claude-plugins-official

37```37```

38 38 

39Si Claude Code reporta que el plugin no se encuentra en ningún mercado, su mercado está faltando o desactualizado. Ejecute `/plugin marketplace update claude-plugins-official` para actualizarlo, o `/plugin marketplace add anthropics/claude-plugins-official` si no lo ha agregado antes. Luego reintente la instalación.

40 

39<Note>41<Note>

40 El mercado oficial es mantenido por Anthropic. Para enviar un plugin al mercado oficial, use uno de los formularios de envío en la aplicación:42 El mercado oficial es mantenido por Anthropic. Para enviar un plugin al mercado oficial, use uno de los formularios de envío en la aplicación:

41 43 


47 49 

48El mercado oficial incluye varias categorías de plugins:50El mercado oficial incluye varias categorías de plugins:

49 51 

50### Inteligencia de código52### Code intelligence

51 53 

52Los plugins de inteligencia de código habilitan la herramienta LSP integrada de Claude Code, dándole a Claude la capacidad de saltar a definiciones, encontrar referencias y ver errores de tipo inmediatamente después de ediciones. Estos plugins configuran conexiones de [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), la misma tecnología que potencia la inteligencia de código de VS Code.54Los plugins de code intelligence habilitan la herramienta LSP integrada de Claude Code, dándole a Claude la capacidad de saltar a definiciones, encontrar referencias y ver errores de tipo inmediatamente después de ediciones. Estos plugins configuran conexiones de [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), la misma tecnología que potencia la inteligencia de código de VS Code.

53 55 

54Estos plugins requieren que el binario del servidor de lenguaje esté instalado en su sistema. Si ya tiene un servidor de lenguaje instalado, Claude puede solicitarle que instale el plugin correspondiente cuando abra un proyecto.56Estos plugins requieren que el binario del servidor de lenguaje esté instalado en su sistema. Si ya tiene un servidor de lenguaje instalado, Claude puede solicitarle que instale el plugin correspondiente cuando abra un proyecto.

55 57 


73 Si ve `Executable not found in $PATH` en la pestaña Errors de `/plugin` después de instalar un plugin, instale el binario requerido de la tabla anterior.75 Si ve `Executable not found in $PATH` en la pestaña Errors de `/plugin` después de instalar un plugin, instale el binario requerido de la tabla anterior.

74</Note>76</Note>

75 77 

76#### Lo que Claude gana con los plugins de inteligencia de código78#### Lo que Claude gana con los plugins de code intelligence

77 79 

78Una vez que se instala un plugin de inteligencia de código y su binario de servidor de lenguaje está disponible, Claude gana dos capacidades:80Una vez que se instala un plugin de code intelligence y su binario de servidor de lenguaje está disponible, Claude gana dos capacidades:

79 81 

80* **Diagnósticos automáticos**: después de cada edición de archivo que Claude realiza, el servidor de lenguaje analiza los cambios e informa errores y advertencias automáticamente. Claude ve errores de tipo, importaciones faltantes y problemas de sintaxis sin necesidad de ejecutar un compilador o linter. Si Claude introduce un error, lo nota y corrige el problema en el mismo turno. Esto no requiere configuración más allá de instalar el plugin. Puede ver diagnósticos en línea presionando **Ctrl+O** cuando aparece el indicador "diagnostics found".82* **Diagnósticos automáticos**: después de cada edición de archivo que Claude realiza, el servidor de lenguaje analiza los cambios e informa errores y advertencias automáticamente. Claude ve errores de tipo, importaciones faltantes y problemas de sintaxis sin necesidad de ejecutar un compilador o linter. Si Claude introduce un error, lo nota y corrige el problema en el mismo turno. Esto no requiere configuración más allá de instalar el plugin. Puede ver diagnósticos en línea presionando **Ctrl+O** cuando aparece el indicador "diagnostics found".

81* **Navegación de código**: Claude puede usar el servidor de lenguaje para saltar a definiciones, encontrar referencias, obtener información de tipo al pasar el ratón, listar símbolos, encontrar implementaciones y rastrear jerarquías de llamadas. Estas operaciones dan a Claude una navegación más precisa que la búsqueda basada en grep, aunque la disponibilidad puede variar según el lenguaje y el entorno.83* **Navegación de código**: Claude puede usar el servidor de lenguaje para saltar a definiciones, encontrar referencias, obtener información de tipo al pasar el ratón, listar símbolos, encontrar implementaciones y rastrear jerarquías de llamadas. Estas operaciones dan a Claude una navegación más precisa que la búsqueda basada en grep, aunque la disponibilidad puede variar según el lenguaje y el entorno.

82 84 

83Si encuentra problemas, consulte [Solución de problemas de inteligencia de código](#code-intelligence-issues).85Si encuentra problemas, consulte [Solución de problemas de code intelligence](#code-intelligence-issues).

84 86 

85### Integraciones externas87### External integrations

86 88 

87Estos plugins incluyen [servidores MCP](/es/mcp) preconfigurados para que pueda conectar Claude a servicios externos sin configuración manual:89Estos plugins incluyen [servidores MCP](/es/mcp) preconfigurados para que pueda conectar Claude a servicios externos sin configuración manual:

88 90 

89* **Control de fuente**: `github`, `gitlab`91* **Source control**: `github`, `gitlab`

90* **Gestión de proyectos**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`92* **Project management**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`

91* **Diseño**: `figma`93* **Design**: `figma`

92* **Infraestructura**: `vercel`, `firebase`, `supabase`94* **Infrastructure**: `vercel`, `firebase`, `supabase`

93* **Comunicación**: `slack`95* **Communication**: `slack`

94* **Monitoreo**: `sentry`96* **Monitoring**: `sentry`

95 97 

96### Flujos de trabajo de desarrollo98### Development workflows

97 99 

98Plugins que agregan comandos y agentes para tareas de desarrollo comunes:100Plugins que agregan skills y agentes para tareas de desarrollo comunes:

99 101 

100* **commit-commands**: Flujos de trabajo de confirmación de Git incluyendo confirmación, push y creación de PR102* **commit-commands**: Flujos de trabajo de confirmación de Git incluyendo confirmación, push y creación de PR

101* **pr-review-toolkit**: Agentes especializados para revisar solicitudes de extracción103* **pr-review-toolkit**: Agentes especializados para revisar solicitudes de extracción

102* **agent-sdk-dev**: Herramientas para construir con el Claude Agent SDK104* **agent-sdk-dev**: Herramientas para construir con el Claude Agent SDK

103* **plugin-dev**: Kit de herramientas para crear sus propios plugins105* **plugin-dev**: Kit de herramientas para crear sus propios plugins

104 106 

105### Estilos de salida107### Output styles

106 108 

107Personalice cómo responde Claude:109Personalice cómo responde Claude:

108 110 

109* **explanatory-output-style**: Información educativa sobre opciones de implementación111* **explanatory-output-style**: Información educativa sobre opciones de implementación

110* **learning-output-style**: Modo de aprendizaje interactivo para construcción de habilidades112* **learning-output-style**: Modo de aprendizaje interactivo para construcción de skills

111 113 

112## Pruébelo: agregue el mercado de demostración114## Pruébelo: agregue el mercado de demostración

113 115 


142 * **Project scope**: instale para todos los colaboradores en este repositorio144 * **Project scope**: instale para todos los colaboradores en este repositorio

143 * **Local scope**: instale para usted en este repositorio solamente145 * **Local scope**: instale para usted en este repositorio solamente

144 146 

145 Por ejemplo, seleccione **commit-commands** (un plugin que agrega comandos de flujo de trabajo de git) e instálelo en su alcance de usuario.147 Por ejemplo, seleccione **commit-commands** (un plugin que agrega skills de flujo de trabajo de git) e instálelo en su alcance de usuario.

146 148 

147 También puede instalar directamente desde la línea de comandos:149 También puede instalar directamente desde la línea de comandos:

148 150 


150 /plugin install commit-commands@anthropics-claude-code152 /plugin install commit-commands@anthropics-claude-code

151 ```153 ```

152 154 

153 Consulte [Alcances de configuración](/es/settings#configuration-scopes) para obtener más información sobre alcances.155 Consulte [Configuration scopes](/es/settings#configuration-scopes) para obtener más información sobre alcances.

154 </Step>156 </Step>

155 157 

156 <Step title="Usar su nuevo plugin">158 <Step title="Usar su nuevo plugin">

157 Después de instalar, ejecute `/reload-plugins` para activar el plugin. Los comandos de plugin tienen espacios de nombres por el nombre del plugin, por lo que **commit-commands** proporciona comandos como `/commit-commands:commit`.159 Después de instalar, ejecute `/reload-plugins` para activar el plugin. Las skills de plugin tienen espacios de nombres por el nombre del plugin, por lo que **commit-commands** proporciona skills como `/commit-commands:commit`.

158 160 

159 Pruébelo haciendo un cambio en un archivo y ejecutando:161 Pruébelo haciendo un cambio en un archivo y ejecutando:

160 162 


164 166 

165 Esto prepara sus cambios, genera un mensaje de confirmación y crea la confirmación.167 Esto prepara sus cambios, genera un mensaje de confirmación y crea la confirmación.

166 168 

167 Cada plugin funciona de manera diferente. Consulte la descripción del plugin en la pestaña **Discover** o su página de inicio para aprender qué comandos y capacidades proporciona.169 Cada plugin funciona de manera diferente. Consulte la descripción del plugin en la pestaña **Discover** o su página de inicio para aprender qué skills y capacidades proporciona.

168 </Step>170 </Step>

169</Steps>171</Steps>

170 172 


195 197 

196### Agregar desde otros hosts de Git198### Agregar desde otros hosts de Git

197 199 

198Agregue cualquier repositorio de git proporcionando la URL completa. Esto funciona con cualquier host de Git, incluyendo GitLab, Bitbucket y servidores auto-hospedados:200Agregue cualquier repositorio de git proporcionando la URL completa. Esto funciona con cualquier host de Git, incluyendo GitLab, Bitbucket y servidores auto-hospedados. Incluya el sufijo `.git` para que Claude Code clone el repositorio en lugar de tratar la URL como un enlace directo a un archivo `marketplace.json` hospedado.

199 201 

200Usando HTTPS:202Usando HTTPS:

201 203 


238```240```

239 241 

240<Note>242<Note>

241 Los mercados basados en URL tienen algunas limitaciones en comparación con los mercados basados en Git. Si encuentra errores "path not found" al instalar plugins, consulte [Solución de problemas](/es/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).243 Los mercados basados en URL tienen algunas limitaciones en comparación con los mercados basados en Git. Si encuentra errores "path not found" al instalar plugins, consulte [Troubleshooting](/es/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

242</Note>244</Note>

243 245 

244## Instalar plugins246## Instalar plugins


255* **Project scope**: instale para todos los colaboradores en este repositorio (agrega a `.claude/settings.json`)257* **Project scope**: instale para todos los colaboradores en este repositorio (agrega a `.claude/settings.json`)

256* **Local scope**: instale para usted en este repositorio solamente (no compartido con colaboradores)258* **Local scope**: instale para usted en este repositorio solamente (no compartido con colaboradores)

257 259 

258También puede ver plugins con alcance **managed**—estos son instalados por administradores a través de [configuración administrada](/es/settings#settings-files) y no pueden ser modificados.260También puede ver plugins con alcance **managed**—estos son instalados por administradores a través de [managed settings](/es/settings#settings-files) y no pueden ser modificados.

259 

260Ejecute `/plugin` y vaya a la pestaña **Installed** para ver sus plugins agrupados por alcance.

261 261 

262<Warning>262<Warning>

263 Asegúrese de confiar en un plugin antes de instalarlo. Anthropic no controla qué servidores MCP, archivos u otro software se incluyen en los plugins y no puede verificar que funcionen como se pretende. Consulte la página de inicio de cada plugin para obtener más información.263 Asegúrese de confiar en un plugin antes de instalarlo. Anthropic no controla qué servidores MCP, archivos u otro software se incluyen en los plugins y no puede verificar que funcionen como se pretende. Consulte la página de inicio de cada plugin para obtener más información.


265 265 

266## Administrar plugins instalados266## Administrar plugins instalados

267 267 

268Ejecute `/plugin` y vaya a la pestaña **Installed** para ver, habilitar, deshabilitar o desinstalar sus plugins. Escriba para filtrar la lista por nombre o descripción del plugin.268Ejecute `/plugin` y vaya a la pestaña **Installed** para ver, habilitar, deshabilitar o desinstalar sus plugins. La lista se agrupa por alcance y se ordena para que vea problemas primero: los plugins con errores de carga o dependencias no resueltas aparecen en la parte superior, seguidos de sus favoritos, con plugins deshabilitados plegados detrás de un encabezado colapsado en la parte inferior.

269 

270Desde la lista puede:

271 

272* presionar `f` para marcar como favorito o desmarcar como favorito el plugin seleccionado

273* escribir para filtrar por nombre o descripción del plugin

274* presionar Enter para abrir la vista de detalles de un plugin y habilitarlo, deshabilitarlo o desinstalarlo

275 

276Cuando instala un plugin que declara dependencias, la salida de instalación enumera qué dependencias se instalaron automáticamente junto con él.

269 277 

270También puede administrar plugins con comandos directos.278También puede administrar plugins con comandos directos.

271 279 


356 364 

357Los mercados oficiales de Anthropic tienen la actualización automática habilitada por defecto. Los mercados de terceros y de desarrollo local tienen la actualización automática deshabilitada por defecto.365Los mercados oficiales de Anthropic tienen la actualización automática habilitada por defecto. Los mercados de terceros y de desarrollo local tienen la actualización automática deshabilitada por defecto.

358 366 

359Para deshabilitar todas las actualizaciones automáticas completamente tanto para Claude Code como para todos los plugins, establezca la variable de entorno `DISABLE_AUTOUPDATER`. Consulte [Actualizaciones automáticas](/es/setup#auto-updates) para obtener detalles.367Para deshabilitar todas las actualizaciones automáticas completamente tanto para Claude Code como para todos los plugins, establezca la variable de entorno `DISABLE_AUTOUPDATER`. Consulte [Auto updates](/es/setup#auto-updates) para obtener detalles.

360 368 

361Para mantener las actualizaciones automáticas de plugins habilitadas mientras se deshabilitan las actualizaciones automáticas de Claude Code, establezca `FORCE_AUTOUPDATE_PLUGINS=1` junto con `DISABLE_AUTOUPDATER`:369Para mantener las actualizaciones automáticas de plugins habilitadas mientras se deshabilitan las actualizaciones automáticas de Claude Code, establezca `FORCE_AUTOUPDATE_PLUGINS=1` junto con `DISABLE_AUTOUPDATER`:

362 370 


386}394}

387```395```

388 396 

389Para opciones de configuración completas incluyendo `extraKnownMarketplaces` y `enabledPlugins`, consulte [Configuración de plugins](/es/settings#plugin-settings).397Para opciones de configuración completas incluyendo `extraKnownMarketplaces` y `enabledPlugins`, consulte [Plugin settings](/es/settings#plugin-settings).

390 398 

391## Seguridad399## Seguridad

392 400 

393Los plugins y mercados son componentes altamente confiables que pueden ejecutar código arbitrario en su máquina con sus privilegios de usuario. Solo instale plugins y agregue mercados de fuentes en las que confíe. Las organizaciones pueden restringir qué mercados se permite a los usuarios agregar usando [restricciones de mercado administradas](/es/plugin-marketplaces#managed-marketplace-restrictions).401Los plugins y mercados son componentes altamente confiables que pueden ejecutar código arbitrario en su máquina con sus privilegios de usuario. Solo instale plugins y agregue mercados de fuentes en las que confíe. Las organizaciones pueden restringir qué mercados se permite a los usuarios agregar usando [managed marketplace restrictions](/es/plugin-marketplaces#managed-marketplace-restrictions).

394 402 

395## Solución de problemas403## Troubleshooting

396 404 

397### Comando /plugin no reconocido405### /plugin command not recognized

398 406 

399Si ve "unknown command" o el comando `/plugin` no aparece:407Si ve "unknown command" o el comando `/plugin` no aparece:

400 408 

4011. **Verifique su versión**: Ejecute `claude --version` para ver qué está instalado.4091. **Verifique su versión**: Ejecute `claude --version` para ver qué está instalado.

4022. **Actualice Claude Code**:4102. **Actualice Claude Code**:

403 * **Homebrew**: `brew upgrade claude-code`411 * **Homebrew**: `brew upgrade claude-code` (o `brew upgrade claude-code@latest` si instaló ese cask)

404 * **npm**: `npm update -g @anthropic-ai/claude-code`412 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

405 * **Instalador nativo**: Vuelva a ejecutar el comando de instalación desde [Setup](/es/setup)413 * **Native installer**: Vuelva a ejecutar el comando de instalación desde [Setup](/es/setup)

4063. **Reinicie Claude Code**: Después de actualizar, reinicie su terminal y ejecute `claude` nuevamente.4143. **Reinicie Claude Code**: Después de actualizar, reinicie su terminal y ejecute `claude` nuevamente.

407 415 

408### Problemas comunes416### Common issues

409 417 

410* **Mercado no cargando**: Verifique que la URL sea accesible y que `.claude-plugin/marketplace.json` exista en la ruta418* **Marketplace not loading**: Verifique que la URL sea accesible y que `.claude-plugin/marketplace.json` exista en la ruta

411* **Fallos de instalación de plugins**: Verifique que las URLs de fuente de plugins sean accesibles y que los repositorios sean públicos (o tenga acceso)419* **Plugin installation failures**: Verifique que las URLs de fuente de plugins sean accesibles y que los repositorios sean públicos (o tenga acceso)

412* **Archivos no encontrados después de la instalación**: Los plugins se copian a un caché, por lo que las rutas que hacen referencia a archivos fuera del directorio del plugin no funcionarán420* **Files not found after installation**: Los plugins se copian a un caché, por lo que las rutas que hacen referencia a archivos fuera del directorio del plugin no funcionarán

413* **Habilidades de plugins no apareciendo**: Limpie el caché con `rm -rf ~/.claude/plugins/cache`, reinicie Claude Code y reinstale el plugin.421* **Plugin skills not appearing**: Limpie el caché con `rm -rf ~/.claude/plugins/cache`, reinicie Claude Code y reinstale el plugin.

414 422 

415Para solución de problemas detallada con soluciones, consulte [Solución de problemas](/es/plugin-marketplaces#troubleshooting) en la guía de mercados. Para herramientas de depuración, consulte [Herramientas de depuración y desarrollo](/es/plugins-reference#debugging-and-development-tools).423Para solución de problemas detallada con soluciones, consulte [Troubleshooting](/es/plugin-marketplaces#troubleshooting) en la guía de mercados. Para herramientas de depuración, consulte [Debugging and development tools](/es/plugins-reference#debugging-and-development-tools).

416 424 

417### Problemas de inteligencia de código425### Code intelligence issues

418 426 

419* **Servidor de lenguaje no iniciando**: verifique que el binario esté instalado y disponible en su `$PATH`. Consulte la pestaña Errors de `/plugin` para obtener detalles.427* **Language server not starting**: verifique que el binario esté instalado y disponible en su `$PATH`. Consulte la pestaña Errors de `/plugin` para obtener detalles.

420* **Alto uso de memoria**: los servidores de lenguaje como `rust-analyzer` y `pyright` pueden consumir memoria significativa en proyectos grandes. Si experimenta problemas de memoria, deshabilite el plugin con `/plugin disable <plugin-name>` y confíe en las herramientas de búsqueda integradas de Claude en su lugar.428* **High memory usage**: los servidores de lenguaje como `rust-analyzer` y `pyright` pueden consumir memoria significativa en proyectos grandes. Si experimenta problemas de memoria, deshabilite el plugin con `/plugin disable <plugin-name>` y confíe en las herramientas de búsqueda integradas de Claude en su lugar.

421* **Diagnósticos falsos positivos en monorepos**: los servidores de lenguaje pueden reportar errores de importación no resuelta para paquetes internos si el espacio de trabajo no está configurado correctamente. Estos no afectan la capacidad de Claude para editar código.429* **False positive diagnostics in monorepos**: los servidores de lenguaje pueden reportar errores de importación no resuelta para paquetes internos si el espacio de trabajo no está configurado correctamente. Estos no afectan la capacidad de Claude para editar código.

422 430 

423## Próximos pasos431## Next steps

424 432 

425* **Construya sus propios plugins**: Consulte [Plugins](/es/plugins) para crear skills, agentes y hooks433* **Build your own plugins**: Consulte [Plugins](/es/plugins) para crear skills, agentes y hooks

426* **Cree un mercado**: Consulte [Crear un mercado de plugins](/es/plugin-marketplaces) para distribuir plugins a su equipo o comunidad434* **Create a marketplace**: Consulte [Create a plugin marketplace](/es/plugin-marketplaces) para distribuir plugins a su equipo o comunidad

427* **Referencia técnica**: Consulte [Referencia de plugins](/es/plugins-reference) para especificaciones completas435* **Technical reference**: Consulte [Plugins reference](/es/plugins-reference) para especificaciones completas

env-vars.md +16 −10

Details

41| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nombre de [modelo de clase Haiku para tareas en segundo plano](/es/costs) |41| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nombre de [modelo de clase Haiku para tareas en segundo plano](/es/costs) |

42| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Anule la región de AWS para el modelo de clase Haiku al usar Bedrock o Bedrock Mantle |42| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Anule la región de AWS para el modelo de clase Haiku al usar Bedrock o Bedrock Mantle |

43| `ANTHROPIC_VERTEX_BASE_URL` | Anule la URL del endpoint de Vertex AI. Utilice para endpoints de Vertex personalizados o cuando enrute a través de una [puerta de enlace LLM](/es/llm-gateway). Consulte [Google Vertex AI](/es/google-vertex-ai) |43| `ANTHROPIC_VERTEX_BASE_URL` | Anule la URL del endpoint de Vertex AI. Utilice para endpoints de Vertex personalizados o cuando enrute a través de una [puerta de enlace LLM](/es/llm-gateway). Consulte [Google Vertex AI](/es/google-vertex-ai) |

44| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de proyecto de GCP para Vertex AI. Requerido cuando se utiliza [Google Vertex AI](/es/google-vertex-ai) |44| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de proyecto de GCP para solicitudes de Vertex AI. Anulado por `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` o el proyecto en su archivo de credenciales `GOOGLE_APPLICATION_CREDENTIALS`. Consulte [Google Vertex AI](/es/google-vertex-ai) |

45| `API_TIMEOUT_MS` | Tiempo de espera para solicitudes de API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Aumente esto cuando las solicitudes agoten el tiempo de espera en redes lentas o cuando enrute a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y causan que las solicitudes fallen inmediatamente |45| `API_TIMEOUT_MS` | Tiempo de espera para solicitudes de API en milisegundos (predeterminado: 600000, o 10 minutos; máximo: 2147483647). Aumente esto cuando las solicitudes agoten el tiempo de espera en redes lentas o cuando enrute a través de un proxy. Los valores por encima del máximo desbordan el temporizador subyacente y causan que las solicitudes fallen inmediatamente |

46| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Bedrock para autenticación (consulte [Claves de API de Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |46| `AWS_BEARER_TOKEN_BEDROCK` | Clave de API de Bedrock para autenticación (consulte [Claves de API de Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

47| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para comandos bash de larga duración (predeterminado: 120000, o 2 minutos) |47| `BASH_DEFAULT_TIMEOUT_MS` | Tiempo de espera predeterminado para comandos bash de larga duración (predeterminado: 120000, o 2 minutos) |


51| `CLAUDECODE` | Establezca en `1` en entornos de shell que Claude Code genera (herramienta Bash, sesiones tmux). No se establece en comandos [hooks](/es/hooks) o [línea de estado](/es/statusline). Utilice para detectar cuándo un script se está ejecutando dentro de un shell generado por Claude Code |51| `CLAUDECODE` | Establezca en `1` en entornos de shell que Claude Code genera (herramienta Bash, sesiones tmux). No se establece en comandos [hooks](/es/hooks) o [línea de estado](/es/statusline). Utilice para detectar cuándo un script se está ejecutando dentro de un shell generado por Claude Code |

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

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

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

54| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establezca el porcentaje de capacidad de contexto (1-100) en el que se activa la compactación automática. De forma predeterminada, la compactación automática se activa aproximadamente al 95% de capacidad. Utilice valores más bajos como `50` para compactar antes. Los valores por encima del umbral predeterminado no tienen efecto. Se aplica tanto a conversaciones principales como a subagentes. Este porcentaje se alinea con el campo `context_window.used_percentage` disponible en [línea de estado](/es/statusline) |55| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Establezca el porcentaje de capacidad de contexto (1-100) en el que se activa la compactación automática. De forma predeterminada, la compactación automática se activa aproximadamente al 95% de capacidad. Utilice valores más bajos como `50` para compactar antes. Los valores por encima del umbral predeterminado no tienen efecto. Se aplica tanto a conversaciones principales como a subagentes. Este porcentaje se alinea con el campo `context_window.used_percentage` disponible en [línea de estado](/es/statusline) |

55| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establezca en `1` para forzar la habilitación del envío automático a segundo plano de tareas de agentes de larga duración. Cuando se habilita, los subagentes se mueven al segundo plano después de ejecutarse durante aproximadamente dos minutos |56| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establezca en `1` para forzar la habilitación del envío automático a segundo plano de tareas de agentes de larga duración. Cuando se habilita, los subagentes se mueven al segundo plano después de ejecutarse durante aproximadamente dos minutos |

56| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelva al directorio de trabajo original después de cada comando Bash o PowerShell en la sesión principal |57| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Vuelva al directorio de trabajo original después de cada comando Bash o PowerShell en la sesión principal |


59| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (al usar [`apiKeyHelper`](/es/settings#available-settings)) |60| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (al usar [`apiKeyHelper`](/es/settings#available-settings)) |

60| `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 |61| `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 |

61| `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). 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 |62| `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). 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 |

62| `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 |63| `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) |

63| `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. El valor predeterminado es `bundled,system`. La distribución binaria nativa es necesaria para la integración del almacén del sistema. En el tiempo de ejecución de Node.js, solo se utiliza el conjunto incluido independientemente de este valor |64| `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. El valor predeterminado es `bundled,system` |

64| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para autenticación mTLS |65| `CLAUDE_CODE_CLIENT_CERT` | Ruta al archivo de certificado de cliente para autenticación mTLS |

65| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para autenticación mTLS |66| `CLAUDE_CODE_CLIENT_KEY` | Ruta al archivo de clave privada de cliente para autenticación mTLS |

66| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |67| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para CLAUDE\_CODE\_CLIENT\_KEY cifrada (opcional) |


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

69| `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. Útil para entornos empresariales con requisitos de cumplimiento |70| `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. Útil para entornos empresariales con requisitos de cumplimiento |

70| `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 */}No tiene efecto en Opus 4.7, que siempre utiliza razonamiento adaptativo |71| `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 */}No tiene efecto en Opus 4.7, que siempre utiliza razonamiento adaptativo |

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

71| `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 |73| `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 |

72| `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 durante el despliegue gradual. Cuando se deshabilita, Claude no crea ni carga archivos de memoria automática |74| `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 |

73| `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 |75| `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 |

74| `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 |76| `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 |

75| `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 |77| `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 |

76| `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. |78| `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. |

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

78| `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` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Consulte [Encuestas de calidad de sesión](/es/data-usage#session-quality-surveys) |80| `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` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. 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) |

79| `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 |81| `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 |

80| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establezca en `1` para eliminar las instrucciones de flujo de trabajo de confirmación y PR integradas y la instantánea de estado de git del indicador del sistema de Claude. Útil cuando se utilizan sus propias skills de flujo de trabajo de git. Tiene precedencia sobre la configuración [`includeGitInstructions`](/es/settings#available-settings) cuando se establece |82| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establezca en `1` para eliminar las instrucciones de flujo de trabajo de confirmación y PR integradas y la instantánea de estado de git del indicador del sistema de Claude. Útil cuando se utilizan sus propias skills de flujo de trabajo de git. Tiene precedencia sobre la configuración [`includeGitInstructions`](/es/settings#available-settings) cuando se establece |

81| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establezca en `1` para evitar el remapeo automático de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Utilice cuando desee fijar intencionalmente un modelo anterior. El remapeo no se ejecuta en Bedrock, Vertex o Foundry |83| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establezca en `1` para evitar el remapeo automático de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Utilice cuando desee fijar intencionalmente un modelo anterior. El remapeo no se ejecuta en Bedrock, Vertex o Foundry |


90| `CLAUDE_CODE_EFFORT_LEVEL` | Establezca el nivel de esfuerzo para modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh`, `max` o `auto` para usar el valor predeterminado del modelo. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `/effort` y la configuración `effortLevel`. Consulte [Ajustar nivel de esfuerzo](/es/model-config#adjust-effort-level) |92| `CLAUDE_CODE_EFFORT_LEVEL` | Establezca el nivel de esfuerzo para modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh`, `max` o `auto` para usar el valor predeterminado del modelo. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `/effort` y la configuración `effortLevel`. Consulte [Ajustar nivel de esfuerzo](/es/model-config#adjust-effort-level) |

91| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Anule la disponibilidad de [resumen de sesión](/es/interactive-mode#session-recap). Establezca en `0` para forzar los resúmenes desactivados independientemente del toggle `/config`. Establezca en `1` para forzar los resúmenes activados cuando [`awaySummaryEnabled`](/es/settings#available-settings) es `false`. Tiene precedencia sobre la configuración y el toggle `/config` |93| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Anule la disponibilidad de [resumen de sesión](/es/interactive-mode#session-recap). Establezca en `0` para forzar los resúmenes desactivados independientemente del toggle `/config`. Establezca en `1` para forzar los resúmenes activados cuando [`awaySummaryEnabled`](/es/settings#available-settings) es `false`. Tiene precedencia sobre la configuración y el toggle `/config` |

92| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establezca en `1` para actualizar el estado del plugin en los límites de turno en [modo no interactivo](/es/headless) después de que se complete una instalación en segundo plano. Desactivado de forma predeterminada porque la actualización cambia el indicador del sistema a mitad de sesión, lo que invalida el [almacenamiento en caché de indicadores](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) para ese turno |94| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establezca en `1` para actualizar el estado del plugin en los límites de turno en [modo no interactivo](/es/headless) después de que se complete una instalación en segundo plano. Desactivado de forma predeterminada porque la actualización cambia el indicador del sistema a mitad de sesión, lo que invalida el [almacenamiento en caché de indicadores](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) para ese turno |

93| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Establezca en `1` para forzar la habilitación del streaming de entrada de herramienta de grano fino. Sin esto, la API almacena en búfer los parámetros de entrada de herramienta completamente antes de enviar eventos delta, lo que puede retrasar la visualización en entradas de herramienta grandes. Solo API de Anthropic: no tiene efecto en Bedrock, Vertex o Foundry |95| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Controla si las entradas de llamadas de herramientas se transmiten desde la API mientras Claude las genera. Con esto desactivado, una entrada de herramienta grande como una escritura de archivo larga llega solo después de que Claude termina de generarla, lo que puede parecer que se está colgando. Habilitado de forma predeterminada para conexiones directas de API de Anthropic. Establezca en `0` para optar por no participar. Establezca en `1` para forzar la habilitación incluso cuando el valor predeterminado del lado del servidor está desactivado. No tiene efecto en Bedrock, Vertex, Foundry o conexiones de [puerta de enlace](/es/llm-gateway) |

96| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establezca en `1` para rellenar el selector `/model` desde el endpoint `/v1/models` de su puerta de enlace cuando `ANTHROPIC_BASE_URL` apunta a una puerta de enlace compatible con Anthropic como LiteLLM, Kong o un proxy interno. Desactivado de forma predeterminada porque las puertas de enlace respaldadas por una clave de API compartida de otra manera mostrarían a cada usuario cada modelo que la clave puede acceder. Los modelos descubiertos aún se filtran por la lista de permitidos [`availableModels`](/es/settings#available-settings) |

94| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establezca en `false` para deshabilitar sugerencias de indicador (el toggle "Prompt suggestions" en `/config`). Estas son las predicciones atenuadas que aparecen en su entrada de indicador después de que Claude responda. Consulte [Sugerencias de indicador](/es/interactive-mode#prompt-suggestions) |97| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establezca en `false` para deshabilitar sugerencias de indicador (el toggle "Prompt suggestions" en `/config`). Estas son las predicciones atenuadas que aparecen en su entrada de indicador después de que Claude responda. Consulte [Sugerencias de indicador](/es/interactive-mode#prompt-suggestions) |

95| `CLAUDE_CODE_ENABLE_TASKS` | Establezca en `1` para habilitar el sistema de seguimiento de tareas en modo no interactivo (la bandera `-p`). Las tareas están activadas de forma predeterminada en modo interactivo. Consulte [Lista de tareas](/es/interactive-mode#task-list) |98| `CLAUDE_CODE_ENABLE_TASKS` | Establezca en `1` para habilitar el sistema de seguimiento de tareas en modo no interactivo (la bandera `-p`). Las tareas están activadas de forma predeterminada en modo interactivo. Consulte [Lista de tareas](/es/interactive-mode#task-list) |

96| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establezca en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registro. Requerido antes de configurar exportadores de OTel. Consulte [Monitoreo](/es/monitoring-usage) |99| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establezca en `1` para habilitar la recopilación de datos de OpenTelemetry para métricas y registro. Requerido antes de configurar exportadores de OTel. Consulte [Monitoreo](/es/monitoring-usage) |


98| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establezca en `1` para habilitar [equipos de agentes](/es/agent-teams). Los equipos de agentes son experimentales y están deshabilitados de forma predeterminada |101| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Establezca en `1` para habilitar [equipos de agentes](/es/agent-teams). Los equipos de agentes son experimentales y están deshabilitados de forma predeterminada |

99| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON para fusionar en el nivel superior de cada cuerpo de solicitud de API. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente |102| `CLAUDE_CODE_EXTRA_BODY` | Objeto JSON para fusionar en el nivel superior de cada cuerpo de solicitud de API. Útil para pasar parámetros específicos del proveedor que Claude Code no expone directamente |

100| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Anule el límite de tokens predeterminado para lecturas de archivos. Útil cuando necesita leer archivos más grandes en su totalidad |103| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Anule el límite de tokens predeterminado para lecturas de archivos. Útil cuando necesita leer archivos más grandes en su totalidad |

104| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establezca en `1` para forzar la habilitación del modo privado DEC 2026 [salida sincronizada](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) cuando su terminal lo admite pero no se detecta automáticamente. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidad. No tiene efecto bajo tmux |

101| `CLAUDE_CODE_FORK_SUBAGENT` | Establezca en `1` para habilitar [subagentes bifurcados](/es/sub-agents#fork-the-current-conversation). Un subagente bifurcado hereda el contexto de conversación completo de la sesión principal en lugar de comenzar desde cero. Cuando se habilita, `/fork` genera un subagente bifurcado en lugar de actuar como un alias para [`/branch`](/es/commands), y todos los despliegues de subagentes se ejecutan en segundo plano. Funciona en modo interactivo y a través del SDK o `claude -p` |105| `CLAUDE_CODE_FORK_SUBAGENT` | Establezca en `1` para habilitar [subagentes bifurcados](/es/sub-agents#fork-the-current-conversation). Un subagente bifurcado hereda el contexto de conversación completo de la sesión principal en lugar de comenzar desde cero. Cuando se habilita, `/fork` genera un subagente bifurcado en lugar de actuar como un alias para [`/branch`](/es/commands), y todos los despliegues de subagentes se ejecutan en segundo plano. Funciona en modo interactivo y a través del SDK o `claude -p` |

102| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Utilice cuando Git Bash está instalado pero no en su PATH. Consulte [Configuración de Windows](/es/setup#set-up-on-windows) |106| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Utilice cuando Git Bash está instalado pero no en su PATH. Consulte [Configuración de Windows](/es/setup#set-up-on-windows) |

103| `CLAUDE_CODE_GLOB_HIDDEN` | Establezca en `false` para excluir dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/es/tools-reference). Se incluye de forma predeterminada. No afecta a la autocompletación de archivos `@`, `ls`, Grep o Read |107| `CLAUDE_CODE_GLOB_HIDDEN` | Establezca en `false` para excluir dotfiles de los resultados cuando Claude invoca la [herramienta Glob](/es/tools-reference). Se incluye de forma predeterminada. No afecta a la autocompletación de archivos `@`, `ls`, Grep o Read |


120| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar spans de OpenTelemetry pendientes (predeterminado: 5000). Consulte [Monitoreo](/es/monitoring-usage) |124| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar spans de OpenTelemetry pendientes (predeterminado: 5000). Consulte [Monitoreo](/es/monitoring-usage) |

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

122| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Tiempo de espera en milisegundos para que el exportador de OpenTelemetry termine al apagar (predeterminado: 2000). Aumente si las métricas se descartan al salir. Consulte [Monitoreo](/es/monitoring-usage) |126| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Tiempo de espera en milisegundos para que el exportador de OpenTelemetry termine al apagar (predeterminado: 2000). Aumente si las métricas se descartan al salir. Consulte [Monitoreo](/es/monitoring-usage) |

127| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Establezca en `1` para permitir que Claude Code ejecute el comando de actualización de su gestor de paquetes en segundo plano cuando una nueva versión esté disponible. Se aplica a instalaciones de Homebrew y WinGet. Otros gestores de paquetes continúan mostrando el comando de actualización sin ejecutarlo. Consulte [Actualizaciones automáticas](/es/setup#auto-updates) |

123| `CLAUDE_CODE_PERFORCE_MODE` | Establezca en `1` para habilitar la protección de escritura consciente de Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino carece del bit de escritura del propietario, que Perforce borra en archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code omita el seguimiento de cambios de Perforce |128| `CLAUDE_CODE_PERFORCE_MODE` | Establezca en `1` para habilitar la protección de escritura consciente de Perforce. Cuando se establece, Edit, Write y NotebookEdit fallan con una sugerencia `p4 edit <file>` si el archivo de destino carece del bit de escritura del propietario, que Perforce borra en archivos sincronizados hasta que `p4 edit` los abre. Esto evita que Claude Code omita el seguimiento de cambios de Perforce |

124| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Anule el directorio raíz de plugins. A pesar del nombre, esto establece el directorio principal, no el caché en sí: los marketplaces y el caché de plugins viven en subdirectorios bajo esta ruta. El valor predeterminado es `~/.claude/plugins` |129| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Anule el directorio raíz de plugins. A pesar del nombre, esto establece el directorio principal, no el caché en sí: los marketplaces y el caché de plugins viven en subdirectorios bajo esta ruta. El valor predeterminado es `~/.claude/plugins` |

125| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para operaciones de git al instalar o actualizar plugins (predeterminado: 120000). Aumente este valor para repositorios grandes o conexiones de red lentas. Consulte [Las operaciones de Git agotan el tiempo de espera](/es/plugin-marketplaces#git-operations-time-out) |130| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para operaciones de git al instalar o actualizar plugins (predeterminado: 120000). Aumente este valor para repositorios grandes o conexiones de red lentas. Consulte [Las operaciones de Git agotan el tiempo de espera](/es/plugin-marketplaces#git-operations-time-out) |


131| `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 artefactos de vuelta a la sesión](/es/claude-code-on-the-web#link-artifacts-back-to-the-session) |136| `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 artefactos de vuelta a la sesión](/es/claude-code-on-the-web#link-artifacts-back-to-the-session) |

132| `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 |137| `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 |

133| `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 |138| `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 |

134| `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. Establezca en `3` para coincidir con `vim` si su terminal envía un evento de rueda por muesca sin amplificación |139| `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. 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 |

135| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Anule el presupuesto de tiempo en milisegundos para hooks [SessionEnd](/es/hooks#sessionend). Se aplica a la salida de sesión, `/clear` y cambio de sesiones a través de `/resume` interactivo. De forma predeterminada, el presupuesto es de 1,5 segundos, aumentado automáticamente al `timeout` más alto por hook configurado en archivos de configuración, hasta 60 segundos. Los tiempos de espera en hooks proporcionados por plugins no aumentan el presupuesto |140| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Anule el presupuesto de tiempo en milisegundos para hooks [SessionEnd](/es/hooks#sessionend). Se aplica a la salida de sesión, `/clear` y cambio de sesiones a través de `/resume` interactivo. De forma predeterminada, el presupuesto es de 1,5 segundos, aumentado automáticamente al `timeout` más alto por hook configurado en archivos de configuración, hasta 60 segundos. Los tiempos de espera en hooks proporcionados por plugins no aumentan el presupuesto |

141| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente en subprocesos de herramientas Bash y PowerShell en el ID de sesión actual. Coincide con el campo `session_id` pasado a [hooks](/es/hooks). Se actualiza en `/clear`. Utilice para correlacionar scripts y herramientas externas con la sesión de Claude Code que las lanzó |

136| `CLAUDE_CODE_SHELL` | Anule la detección automática de shell. Útil cuando su shell de inicio difiere de su shell de trabajo preferido (por ejemplo, `bash` vs `zsh`) |142| `CLAUDE_CODE_SHELL` | Anule la detección automática de shell. Útil cuando su shell de inicio difiere de su shell de trabajo preferido (por ejemplo, `bash` vs `zsh`) |

137| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve comandos shell que Claude Code genera: llamadas de herramienta Bash, comandos [hook](/es/hooks) y comandos de inicio de [servidor MCP](/es/mcp) stdio. Útil para registro o auditoría. Ejemplo: establecer `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh <command>` |143| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve comandos shell que Claude Code genera: llamadas de herramienta Bash, comandos [hook](/es/hooks) y comandos de inicio de [servidor MCP](/es/mcp) stdio. Útil para registro o auditoría. Ejemplo: establecer `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh <command>` |

138| `CLAUDE_CODE_SIMPLE` | Establezca en `1` para ejecutar con un indicador del sistema mínimo y solo las herramientas Bash, lectura de archivo y edición de archivo. Las herramientas MCP de `--mcp-config` siguen estando disponibles. Deshabilita el descubrimiento automático de hooks, skills, plugins, servidores MCP, memoria automática y CLAUDE.md. La bandera CLI [`--bare`](/es/headless#start-faster-with-bare-mode) establece esto |144| `CLAUDE_CODE_SIMPLE` | Establezca en `1` para ejecutar con un indicador del sistema mínimo y solo las herramientas Bash, lectura de archivo y edición de archivo. Las herramientas MCP de `--mcp-config` siguen estando disponibles. Deshabilita el descubrimiento automático de hooks, skills, plugins, servidores MCP, memoria automática y CLAUDE.md. La bandera CLI [`--bare`](/es/headless#start-faster-with-bare-mode) establece esto |


146| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establezca en `1` para eliminar credenciales de Anthropic y proveedores de nube de entornos de subprocesos (herramienta Bash, hooks, servidores MCP stdio). El proceso Claude principal mantiene estas credenciales para llamadas de API, pero los procesos secundarios no pueden leerlas, reduciendo la exposición a ataques de inyección de indicadores que intentan exfiltrar secretos a través de expansión de shell. En Linux, esto también ejecuta subprocesos Bash en un espacio de nombres PID aislado para que no puedan leer entornos de procesos de host a través de `/proc`; como efecto secundario, `ps`, `pgrep` y `kill` no pueden ver ni señalar procesos de host. `claude-code-action` establece esto automáticamente cuando se configura `allowed_non_write_users` |152| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establezca en `1` para eliminar credenciales de Anthropic y proveedores de nube de entornos de subprocesos (herramienta Bash, hooks, servidores MCP stdio). El proceso Claude principal mantiene estas credenciales para llamadas de API, pero los procesos secundarios no pueden leerlas, reduciendo la exposición a ataques de inyección de indicadores que intentan exfiltrar secretos a través de expansión de shell. En Linux, esto también ejecuta subprocesos Bash en un espacio de nombres PID aislado para que no puedan leer entornos de procesos de host a través de `/proc`; como efecto secundario, `ps`, `pgrep` y `kill` no pueden ver ni señalar procesos de host. `claude-code-action` establece esto automáticamente cuando se configura `allowed_non_write_users` |

147| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establezca en `1` en modo no interactivo (la bandera `-p`) para esperar a que se complete la instalación de plugins antes de la primera consulta. Sin esto, los plugins se instalan en segundo plano y pueden no estar disponibles en el primer turno. Combine con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |153| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establezca en `1` en modo no interactivo (la bandera `-p`) para esperar a que se complete la instalación de plugins antes de la primera consulta. Sin esto, los plugins se instalan en segundo plano y pueden no estar disponibles en el primer turno. Combine con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |

148| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la instalación sincrónica de plugins. Cuando se excede, Claude Code continúa sin plugins y registra un error. Sin predeterminado: sin esta variable, la instalación sincrónica espera hasta completarse |154| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la instalación sincrónica de plugins. Cuando se excede, Claude Code continúa sin plugins y registra un error. Sin predeterminado: sin esta variable, la instalación sincrónica espera hasta completarse |

149| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establezca en `false` para deshabilitar el resaltado de sintaxis en salida de diff. Útil cuando los colores interfieren con su configuración de terminal |155| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establezca en `false` para deshabilitar el resaltado de sintaxis en salida de diff. Útil cuando los colores interfieren con su configuración de terminal. Para también deshabilitar el resaltado en bloques de código y vistas previas de archivos, utilice la configuración [`syntaxHighlightingDisabled`](/es/settings) |

150| `CLAUDE_CODE_TASK_LIST_ID` | Comparta una lista de tareas entre sesiones. Establezca el mismo ID en múltiples instancias de Claude Code para coordinar una lista de tareas compartida. Consulte [Lista de tareas](/es/interactive-mode#task-list) |156| `CLAUDE_CODE_TASK_LIST_ID` | Comparta una lista de tareas entre sesiones. Establezca el mismo ID en múltiples instancias de Claude Code para coordinar una lista de tareas compartida. Consulte [Lista de tareas](/es/interactive-mode#task-list) |

151| `CLAUDE_CODE_TEAM_NAME` | Nombre del equipo de agentes al que pertenece este compañero de equipo. Se establece automáticamente en miembros de [equipo de agentes](/es/agent-teams) |157| `CLAUDE_CODE_TEAM_NAME` | Nombre del equipo de agentes al que pertenece este compañero de equipo. Se establece automáticamente en miembros de [equipo de agentes](/es/agent-teams) |

152| `CLAUDE_CODE_TMPDIR` | Anule el directorio temporal utilizado para archivos temporales internos. Claude Code añade `/claude-{uid}/` (Unix) o `/claude/` (Windows) a esta ruta. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux/Windows |158| `CLAUDE_CODE_TMPDIR` | Anule el directorio temporal utilizado para archivos temporales internos. Claude Code añade `/claude-{uid}/` (Unix) o `/claude/` (Windows) a esta ruta. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux/Windows |


181| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Haiku |187| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Haiku |

182| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Opus |188| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Opus |

183| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Sonnet |189| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para deshabilitar el almacenamiento en caché de indicadores para modelos Sonnet |

184| `DISABLE_TELEMETRY` | Establezca en `1` para optar por no participar en la telemetría de Statsig (tenga en cuenta que los eventos de Statsig no incluyen datos de usuario como código, rutas de archivo o comandos bash) |190| `DISABLE_TELEMETRY` | Establezca en `1` para optar por no participar en la telemetría. Los eventos de telemetría no incluyen datos de usuario como código, rutas de archivo o comandos bash |

185| `DISABLE_UPDATES` | Establezca en `1` para bloquear todas las actualizaciones, incluido el comando manual `claude update` y `claude install`. Más estricto que `DISABLE_AUTOUPDATER`. Utilice cuando distribuya Claude Code a través de sus propios canales y los usuarios no deben auto-actualizarse |191| `DISABLE_UPDATES` | Establezca en `1` para bloquear todas las actualizaciones, incluido el comando manual `claude update` y `claude install`. Más estricto que `DISABLE_AUTOUPDATER`. Utilice cuando distribuya Claude Code a través de sus propios canales y los usuarios no deben auto-actualizarse |

186| `DISABLE_UPGRADE_COMMAND` | Establezca en `1` para ocultar el comando `/upgrade` |192| `DISABLE_UPGRADE_COMMAND` | Establezca en `1` para ocultar el comando `/upgrade` |

187| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establezca en `false` para deshabilitar [servidores MCP de claude.ai](/es/mcp#use-mcp-servers-from-claude-ai) en Claude Code. Habilitado de forma predeterminada para usuarios conectados |193| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establezca en `false` para deshabilitar [servidores MCP de claude.ai](/es/mcp#use-mcp-servers-from-claude-ai) en Claude Code. Habilitado de forma predeterminada para usuarios conectados |


198| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de veces para reintentar cuando la respuesta del modelo falla la validación contra el [`--json-schema`](/es/cli-reference#cli-flags) en modo no interactivo (la bandera `-p`). El valor predeterminado es 5 |204| `MAX_STRUCTURED_OUTPUT_RETRIES` | Número de veces para reintentar cuando la respuesta del modelo falla la validación contra el [`--json-schema`](/es/cli-reference#cli-flags) en modo no interactivo (la bandera `-p`). El valor predeterminado es 5 |

199| `MAX_THINKING_TOKENS` | Anule el presupuesto de tokens de [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). El techo es el [máximo de tokens de salida](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) del modelo menos uno. Establezca en `0` para deshabilitar el pensamiento completamente. En modelos con [razonamiento adaptativo](/es/model-config#adjust-effort-level), el presupuesto se ignora a menos que el razonamiento adaptativo esté deshabilitado a través de `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |205| `MAX_THINKING_TOKENS` | Anule el presupuesto de tokens de [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). El techo es el [máximo de tokens de salida](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) del modelo menos uno. Establezca en `0` para deshabilitar el pensamiento completamente. En modelos con [razonamiento adaptativo](/es/model-config#adjust-effort-level), el presupuesto se ignora a menos que el razonamiento adaptativo esté deshabilitado a través de `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` |

200| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para servidores MCP que requieren [credenciales preconfiguradas](/es/mcp#use-pre-configured-oauth-credentials). Evita el indicador interactivo al agregar un servidor con `--client-secret` |206| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para servidores MCP que requieren [credenciales preconfiguradas](/es/mcp#use-pre-configured-oauth-credentials). Evita el indicador interactivo al agregar un servidor con `--client-secret` |

201| `MCP_CONNECTION_NONBLOCKING` | Establezca en `true` en modo no interactivo (`-p`) para omitir completamente la espera de conexión MCP. Útil para canalizaciones con scripts donde las herramientas MCP no son necesarias. Sin esta variable, la primera consulta espera hasta 5 segundos para que se conecten los servidores `--mcp-config` |207| `MCP_CONNECTION_NONBLOCKING` | Establezca en `true` en modo no interactivo (`-p`) para omitir completamente la espera de conexión MCP. Útil para canalizaciones con scripts donde las herramientas MCP no son necesarias. Sin esta variable, la primera consulta espera hasta 5 segundos para que se conecten los servidores `--mcp-config`. Los servidores configurados con [`alwaysLoad: true`](/es/mcp#exempt-a-server-from-deferral) siempre bloquean el inicio independientemente de esta variable, ya que sus herramientas deben estar presentes cuando se construye el primer indicador |

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

203| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) para conectar en paralelo durante el inicio (predeterminado: 20) |209| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP remotos (HTTP/SSE) para conectar en paralelo durante el inicio (predeterminado: 20) |

204| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) para conectar en paralelo durante el inicio (predeterminado: 3) |210| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Número máximo de servidores MCP locales (stdio) para conectar en paralelo durante el inicio (predeterminado: 3) |

errors.md +27 −5

Details

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

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

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

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

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

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

40| `Request too large` | [Errores de solicitud](#request-too-large) |41| `Request too large` | [Errores de solicitud](#request-too-large) |


282 283 

283## Errores de red y conexión284## Errores de red y conexión

284 285 

285Estos errores significan que Claude Code no pudo alcanzar la API en absoluto. Casi siempre se originan en su red local, proxy o firewall en lugar de la infraestructura de Anthropic.286Estos errores significan que una solicitud de red desde Claude Code no pudo alcanzar su destino. Generalmente se originan en su red local, proxy o firewall, o en la política de red del entorno en la nube.

286 287 

287### Unable to connect to API288### Unable to connect to API

288 289 


307* Asegúrese de que su firewall permite los hosts enumerados en [Network access requirements](/es/network-config#network-access-requirements)308* Asegúrese de que su firewall permite los hosts enumerados en [Network access requirements](/es/network-config#network-access-requirements)

308* Los fallos intermitentes se [reintentan automáticamente](#automatic-retries); los fallos persistentes apuntan a un problema de red local309* Los fallos intermitentes se [reintentan automáticamente](#automatic-retries); los fallos persistentes apuntan a un problema de red local

309 310 

310Si `curl` tiene éxito pero Claude Code aún falla, la causa suele ser algo entre Node.js y la red en lugar de la red misma:311Si `curl` tiene éxito pero Claude Code aún falla, la causa suele ser algo entre el tiempo de ejecución y la red en lugar de la red misma:

311 312 

312* En Linux y WSL, verifique `/etc/resolv.conf` para un servidor de nombres inalcanzable. WSL en particular puede heredar un resolutor roto del host.313* En Linux y WSL, verifique `/etc/resolv.conf` para un servidor de nombres inalcanzable. WSL en particular puede heredar un resolutor roto del host.

313* En macOS, un cliente VPN que fue desconectado o desinstalado puede dejar una interfaz de túnel o regla de enrutamiento. Verifique `ifconfig` para interfaces `utun` obsoletas y elimine la extensión de red de la VPN en Configuración del Sistema.314* En macOS, un cliente VPN que fue desconectado o desinstalado puede dejar una interfaz de túnel o regla de enrutamiento. Verifique `ifconfig` para interfaces `utun` obsoletas y elimine la extensión de red de la VPN en Configuración del Sistema.


315 316 

316### SSL certificate errors317### SSL certificate errors

317 318 

318Un proxy o dispositivo de seguridad en su red está interceptando tráfico TLS con su propio certificado, y Node.js no lo confía.319Un proxy o dispositivo de seguridad en su red está interceptando tráfico TLS con su propio certificado, y Claude Code no lo confía.

319 320 

320```text theme={null}321```text theme={null}

321Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates322Unable to connect to API: SSL certificate verification failed. Check your proxy or corporate SSL certificates


324 325 

325**Qué hacer:**326**Qué hacer:**

326 327 

327* Exporte el paquete de CA de su organización y apunte Node a él con `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`328* 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`

328* Consulte [Network configuration](/es/network-config#custom-ca-certificates) para obtener instrucciones de configuración completas329* Consulte [Network configuration](/es/network-config#custom-ca-certificates) para obtener instrucciones de configuración completas

329* No configure `NODE_TLS_REJECT_UNAUTHORIZED=0`, que deshabilita completamente la validación de certificados330* No configure `NODE_TLS_REJECT_UNAUTHORIZED=0`, que deshabilita completamente la validación de certificados

330 331 

332### Host not allowed in a cloud session

333 

334Una solicitud HTTP saliente desde una sesión en la nube o rutina fue bloqueada por la política de red del entorno.

335 

336```text theme={null}

337HTTP 403

338x-deny-reason: host_not_allowed

339```

340 

341También puede ver un certificado TLS que no coincide con el certificado real del destino. El entorno en la nube enruta el tráfico saliente a través de un proxy que aplica la política de red, por lo que un certificado que no coincide significa que el proxy terminó la conexión, no el destino.

342 

343Esto no es un problema de red del lado del cliente. Las sesiones en la nube y las [routines](/es/routines) se ejecutan dentro de un entorno aislado cuyo tráfico saliente se filtra a la lista de permitidos del entorno. El entorno **Default** utiliza acceso **Trusted**, que permite la [lista de permitidos predeterminada](/es/claude-code-on-the-web#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes, pero bloquea todo lo demás.

344 

345**Qué hacer:**

346 

347* Abra la rutina para editar, o inicie una sesión en la nube. Seleccione el icono de nube que muestra el nombre de su entorno, como **Default**, para abrir el selector. Pase el cursor sobre su entorno y haga clic en el icono de configuración.

348* En el diálogo **Update cloud environment**, cambie **Network access** de **Trusted** a **Custom**, luego agregue el dominio bloqueado a **Allowed domains**. Ingrese un dominio por línea. Marque **Also include default list of common package managers** para mantener la [lista de permitidos predeterminada](/es/claude-code-on-the-web#default-allowed-domains) junto con sus dominios personalizados. Seleccione **Full** en su lugar si desea acceso sin restricciones.

349* Haga clic en **Save changes**. La siguiente ejecución utiliza la lista de permitidos actualizada.

350 

351Consulte [Network access](/es/claude-code-on-the-web#network-access) para los niveles de acceso y la lista de permitidos predeterminada. Las sesiones locales de CLI no se ven afectadas por esta política.

352 

331## Errores de solicitud353## Errores de solicitud

332 354 

333Estos errores significan que la API recibió su solicitud pero rechazó su contenido.355Estos errores significan que la API recibió su solicitud pero rechazó su contenido.


487**Qué hacer:**509**Qué hacer:**

488 510 

489* Reduzca `MAX_THINKING_TOKENS`, o aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/es/env-vars) por encima del presupuesto de pensamiento511* Reduzca `MAX_THINKING_TOKENS`, o aumente [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/es/env-vars) por encima del presupuesto de pensamiento

490* Consulte [Extended thinking](/es/common-workflows#use-extended-thinking-thinking-mode) para saber cómo el presupuesto interactúa con la longitud de salida512* Consulte [Extended thinking](/es/model-config#extended-thinking) para saber cómo el presupuesto interactúa con la longitud de salida

491 513 

492### Tool use or thinking block mismatch514### Tool use or thinking block mismatch

493 515 

Details

219| **Subagents** | Cuando se generan | Contexto fresco con skills especificadas | Aislado de la sesión principal |219| **Subagents** | Cuando se generan | Contexto fresco con skills especificadas | Aislado de la sesión principal |

220| **Hooks** | Al desencadenar | Nada (se ejecuta externamente) | Cero, a menos que el hook devuelva contexto adicional |220| **Hooks** | Al desencadenar | Nada (se ejecuta externamente) | Cero, a menos que el hook devuelva contexto adicional |

221 221 

222\*Por defecto, las descripciones de skills se cargan al inicio de sesión para que Claude pueda decidir cuándo usarlas. Establezca `disable-model-invocation: true` en el frontmatter de una skill para ocultarla de Claude completamente hasta que la invoque manualmente. Esto reduce el costo de contexto a cero para las skills que solo desencadena usted mismo.222\*Por defecto, las descripciones de skills se cargan al inicio de sesión para que Claude pueda decidir cuándo usarlas. Establezca `disable-model-invocation: true` en el frontmatter de una skill para ocultarla de Claude completamente hasta que la invoque manualmente. Esto reduce el costo de contexto a cero para las skills que solo desencadena usted mismo. Para una skill que no escribió, establezca [`skillOverrides`](/es/skills#override-skill-visibility-from-settings) en la configuración para hacer lo mismo sin editar su archivo.

223 223 

224### Entender cómo se cargan las características224### Entender cómo se cargan las características

225 225 

fullscreen.md +10 −2

Details

93 93 

94Un valor de `3` coincide con el predeterminado en `vim` y aplicaciones similares. La configuración acepta valores de 1 a 20.94Un valor de `3` coincide con el predeterminado en `vim` y aplicaciones similares. La configuración acepta valores de 1 a 20.

95 95 

96### Desplazamiento en la terminal del IDE de JetBrains

97 

98En la terminal del IDE de JetBrains, Claude Code aplica su propio manejo de desplazamiento e ignora `CLAUDE_CODE_SCROLL_SPEED`. La terminal envía eventos de desplazamiento a una velocidad mucho más alta que otros emuladores, por lo que un multiplicador ajustado en otro lugar se excede aquí.

99 

100En 2025.2, la terminal también tiene errores de desplazamiento de rueda que producen teclas de flecha espurias y eventos de dirección incorrecta. Claude Code detecta estos en tiempo de ejecución y los mitiga automáticamente, por lo que el desplazamiento del trackpad y la rueda del ratón funcionan sin configuración. Para la mejor experiencia de desplazamiento, actualice a 2025.3 o posterior. Claude Code muestra una sugerencia la primera vez que se desplaza si detecta el error.

101 

96## Buscar y revisar la conversación102## Buscar y revisar la conversación

97 103 

98`Ctrl+o` alterna entre el indicador normal y el modo de transcripción. Para una vista más tranquila que muestre solo su último indicador, un resumen de una línea de llamadas de herramientas con estadísticas de diferencias de edición y la respuesta final, ejecute `/focus`. La configuración persiste entre sesiones. Ejecute `/focus` nuevamente para desactivarla.104`Ctrl+o` alterna entre el indicador normal y el modo de transcripción. Para una vista más tranquila que muestre solo su último indicador, un resumen de una línea de llamadas de herramientas con estadísticas de diferencias de edición y la respuesta final, ejecute `/focus`. La configuración persiste entre sesiones. Ejecute `/focus` nuevamente para desactivarla.


122 128 

123## Usar con tmux129## Usar con tmux

124 130 

125El renderizado a pantalla completa funciona dentro de tmux, con dos advertencias.131El renderizado a pantalla completa funciona dentro de tmux, con tres advertencias.

126 132 

127El desplazamiento de la rueda del ratón requiere el modo de ratón de tmux. Si su `~/.tmux.conf` no lo habilita ya, agregue esta línea y recargue su configuración:133El desplazamiento de la rueda del ratón requiere el modo de ratón de tmux. Si su `~/.tmux.conf` no lo habilita ya, agregue esta línea y recargue su configuración:

128 134 


134 140 

135El renderizado a pantalla completa es incompatible con el modo de integración de tmux de iTerm2, que es el modo en el que entra con `tmux -CC`. En modo de integración, iTerm2 renderiza cada panel de tmux como una división nativa en lugar de permitir que tmux dibuje en la terminal. El búfer de pantalla alternativa y el seguimiento de ratón no funcionan correctamente allí: la rueda del ratón no hace nada, y el doble clic puede corromper el estado de la terminal. No habilite el renderizado a pantalla completa en sesiones `tmux -CC`. El tmux regular dentro de iTerm2, sin `-CC`, funciona bien.141El renderizado a pantalla completa es incompatible con el modo de integración de tmux de iTerm2, que es el modo en el que entra con `tmux -CC`. En modo de integración, iTerm2 renderiza cada panel de tmux como una división nativa en lugar de permitir que tmux dibuje en la terminal. El búfer de pantalla alternativa y el seguimiento de ratón no funcionan correctamente allí: la rueda del ratón no hace nada, y el doble clic puede corromper el estado de la terminal. No habilite el renderizado a pantalla completa en sesiones `tmux -CC`. El tmux regular dentro de iTerm2, sin `-CC`, funciona bien.

136 142 

143tmux no admite salida sincronizada, por lo que puede ver más parpadeo durante los redibujados que cuando ejecuta Claude Code directamente en su terminal. Si el parpadeo es notable, especialmente a través de SSH, ejecute Claude Code en su propia pestaña de terminal fuera de tmux.

144 

137## Mantener la selección de texto nativa145## Mantener la selección de texto nativa

138 146 

139La captura de ratón es el punto de fricción más común, especialmente sobre SSH o dentro de tmux. Cuando Claude Code captura eventos de ratón, la copia nativa al seleccionar de su terminal deja de funcionar. La selección que realiza con clic y arrastre existe dentro de Claude Code, no en el búfer de selección de su terminal, por lo que el modo de copia de tmux, sugerencias de Kitty y herramientas similares no la ven.147La captura de ratón es el punto de fricción más común, especialmente sobre SSH o dentro de tmux. Cuando Claude Code captura eventos de ratón, la copia nativa al seleccionar de su terminal deja de funcionar. La selección que realiza con clic y arrastre existe dentro de Claude Code, no en el búfer de selección de su terminal, por lo que el modo de copia de tmux, sugerencias de Kitty y herramientas similares no la ven.


156 164 

157Si encuentra un problema, ejecute `/feedback` dentro de Claude Code para reportarlo, o abra un problema en el [repositorio de GitHub de claude-code](https://github.com/anthropics/claude-code/issues). Incluya el nombre y la versión de su emulador de terminal.165Si encuentra un problema, ejecute `/feedback` dentro de Claude Code para reportarlo, o abra un problema en el [repositorio de GitHub de claude-code](https://github.com/anthropics/claude-code/issues). Incluya el nombre y la versión de su emulador de terminal.

158 166 

159Para desactivar el renderizado a pantalla completa, ejecute `/tui default`, o desestablezca la variable de entorno si la habilitó de esa manera.167Para desactivar el renderizado a pantalla completa, ejecute `/tui default`, o desestablezca `CLAUDE_CODE_NO_FLICKER` si la habilitó de esa manera. Para forzar el renderizador clásico independientemente de la configuración `tui` guardada, establezca `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`. El renderizador clásico mantiene la conversación en el desplazamiento nativo de su terminal para que `Cmd+f` y el modo de copia de tmux funcionen como de costumbre.

Details

266Claude Code v2.1.121 o posterior admite [Federación de identidad de carga de trabajo basada en certificados X.509](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates) a través de la misma cadena de credenciales de aplicación predeterminada. Establezca `GOOGLE_APPLICATION_CREDENTIALS` en la ruta de su archivo de configuración de credenciales.266Claude Code v2.1.121 o posterior admite [Federación de identidad de carga de trabajo basada en certificados X.509](https://cloud.google.com/iam/docs/workload-identity-federation-with-x509-certificates) a través de la misma cadena de credenciales de aplicación predeterminada. Establezca `GOOGLE_APPLICATION_CREDENTIALS` en la ruta de su archivo de configuración de credenciales.

267 267 

268<Note>268<Note>

269 Al autenticarse, Claude Code utilizará automáticamente el ID de proyecto de la variable de entorno `ANTHROPIC_VERTEX_PROJECT_ID`. Para anular esto, establezca una de estas variables de entorno: `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` o `GOOGLE_APPLICATION_CREDENTIALS`.269 Claude Code utiliza `ANTHROPIC_VERTEX_PROJECT_ID` como el ID de proyecto para solicitudes de Vertex AI. Las variables de entorno `GCLOUD_PROJECT` y `GOOGLE_CLOUD_PROJECT` y el archivo de credenciales referenciado por `GOOGLE_APPLICATION_CREDENTIALS` tienen prioridad sobre él. Si ninguno de estos está establecido, el ID de proyecto se resuelve desde su configuración de `gcloud` o la cuenta de servicio adjunta.

270</Note>270</Note>

271 271 

272#### Configuración avanzada de credenciales

273 

274Claude Code admite la actualización automática de credenciales para GCP a través de la configuración `gcpAuthRefresh`. Cuando Claude Code detecta que sus credenciales de GCP han expirado o no se pueden cargar, ejecuta el comando configurado para obtener nuevas credenciales antes de reintentar la solicitud.

275 

276```json theme={null}

277{

278 "gcpAuthRefresh": "gcloud auth application-default login",

279 "env": {

280 "ANTHROPIC_VERTEX_PROJECT_ID": "your-project-id"

281 }

282}

283```

284 

285La salida del comando se muestra al usuario, pero la entrada interactiva no es compatible. Esto funciona bien para flujos de autenticación basados en navegador donde la CLI muestra una URL y usted completa la autenticación en el navegador. El comando de actualización agota el tiempo de espera después de tres minutos si la autenticación no se completa. Si establece `gcpAuthRefresh` en la configuración del proyecto como `.claude/settings.json`, el comando se ejecuta solo después de que acepte el mensaje de confianza del espacio de trabajo.

286 

272### 4. Configurar Claude Code287### 4. Configurar Claude Code

273 288 

274Establezca las siguientes variables de entorno:289Establezca las siguientes variables de entorno:


363 378 

364## Solución de problemas379## Solución de problemas

365 380 

381Si encuentra errores "No se pudieron cargar las credenciales predeterminadas":

382 

383* Ejecute `gcloud auth application-default login` para configurar las credenciales predeterminadas de la aplicación

384* Establezca `GOOGLE_APPLICATION_CREDENTIALS` en una ruta de archivo de clave de cuenta de servicio

385* Consulte [Configurar credenciales de GCP](#3-configure-gcp-credentials) para todas las opciones

386 

366Si encuentra problemas de cuota:387Si encuentra problemas de cuota:

367 388 

368* Verifique las cuotas actuales o solicite un aumento de cuota a través de [Cloud Console](https://cloud.google.com/docs/quotas/view-manage)389* Verifique las cuotas actuales o solicite un aumento de cuota a través de [Cloud Console](https://cloud.google.com/docs/quotas/view-manage)

headless.md +33 −3

Details

54| Configuración | `--settings <file-or-json>` |54| Configuración | `--settings <file-or-json>` |

55| Servidores MCP | `--mcp-config <file-or-json>` |55| Servidores MCP | `--mcp-config <file-or-json>` |

56| Agentes personalizados | `--agents <json>` |56| Agentes personalizados | `--agents <json>` |

57| Un directorio de plugin | `--plugin-dir <path>` |57| Un plugin | `--plugin-dir <path>`, `--plugin-url <url>` |

58 58 

59El modo bare omite lecturas de OAuth y llavero. La autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o un `apiKeyHelper` en el JSON pasado a `--settings`. Bedrock, Vertex y Foundry utilizan sus credenciales de proveedor habituales.59El modo bare omite lecturas de OAuth y llavero. La autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o un `apiKeyHelper` en el JSON pasado a `--settings`. Bedrock, Vertex y Foundry utilizan sus credenciales de proveedor habituales.

60 60 


66 66 

67Estos ejemplos destacan patrones comunes de CLI. Para CI y otras llamadas con scripts, agregue [`--bare`](#start-faster-with-bare-mode) para que no recojan lo que esté configurado localmente.67Estos ejemplos destacan patrones comunes de CLI. Para CI y otras llamadas con scripts, agregue [`--bare`](#start-faster-with-bare-mode) para que no recojan lo que esté configurado localmente.

68 68 

69### Canalizar datos a través de Claude

70 

71El modo no interactivo lee stdin, por lo que puede canalizar datos y redirigir la respuesta como cualquier otra herramienta de línea de comandos.

72 

73Este ejemplo canaliza un registro de compilación a Claude y escribe la explicación en un archivo:

74 

75```bash theme={null}

76cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

77```

78 

79Con `--output-format json`, la carga útil de respuesta incluye `total_cost_usd` y un desglose de costos por modelo, por lo que los llamadores con scripts pueden rastrear el gasto por invocación sin consultar el [panel de uso](/es/costs).

80 

81<Note>

82 A partir de Claude Code v2.1.128, stdin canalizado está limitado a 10MB. Si excede el límite, Claude Code sale con un error claro y un estado distinto de cero. Para trabajar con entradas más grandes, escriba el contenido en un archivo y haga referencia a la ruta del archivo en su indicador en lugar de canalizarlo.

83</Note>

84 

85### Agregar Claude a un script de compilación

86 

87Puede envolver una llamada no interactiva en un script para usar Claude como un linter o revisor específico del proyecto.

88 

89Este script `package.json` canaliza el diff contra `main` a Claude y le pide que informe sobre errores tipográficos. Canalizar el diff significa que Claude no necesita permiso de Bash para leerlo, y las comillas dobles escapadas mantienen el script portátil a Windows:

90 

91```json theme={null}

92{

93 "scripts": {

94 "lint:claude": "git diff main | claude -p \"you are a typo linter. for each typo in this diff, report filename:line on one line and the issue on the next. return nothing else.\""

95 }

96}

97```

98 

69### Obtener salida estructurada99### Obtener salida estructurada

70 100 

71Utilice `--output-format` para controlar cómo se devuelven las respuestas:101Utilice `--output-format` para controlar cómo se devuelven las respuestas:


137El evento `system/init` informa metadatos de sesión incluyendo el modelo, herramientas, servidores MCP y plugins cargados. Es el primer evento en la transmisión a menos que [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/es/env-vars) esté configurado, en cuyo caso los eventos `plugin_install` lo preceden. Use los campos de plugin para fallar CI cuando un plugin no se cargó:167El evento `system/init` informa metadatos de sesión incluyendo el modelo, herramientas, servidores MCP y plugins cargados. Es el primer evento en la transmisión a menos que [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/es/env-vars) esté configurado, en cuyo caso los eventos `plugin_install` lo preceden. Use los campos de plugin para fallar CI cuando un plugin no se cargó:

138 168 

139| Campo | Tipo | Descripción |169| Campo | Tipo | Descripción |

140| --------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |170| --------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

141| `plugins` | matriz | plugins que se cargaron exitosamente, cada uno con `name` y `path` |171| `plugins` | matriz | plugins que se cargaron exitosamente, cada uno con `name` y `path` |

142| `plugin_errors` | matriz | errores de tiempo de carga de plugin como una versión de dependencia insatisfecha, cada uno con `plugin`, `type` y `message`. Los plugins afectados se degradan y están ausentes de `plugins`. La clave se omite cuando no hay errores |172| `plugin_errors` | matriz | errores de tiempo de carga de plugin, cada uno con `plugin`, `type` y `message`. Incluye versiones de dependencia insatisfechas y fallos de carga de `--plugin-dir` como una ruta faltante o archivo inválido. Los plugins afectados se degradan y están ausentes de `plugins`. La clave se omite cuando no hay errores |

143 173 

144Cuando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/es/env-vars) está configurado, Claude Code emite eventos `system/plugin_install` mientras los plugins del marketplace se instalan antes del primer turno. Use estos para mostrar el progreso de instalación en su propia interfaz de usuario.174Cuando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/es/env-vars) está configurado, Claude Code emite eventos `system/plugin_install` mientras los plugins del marketplace se instalan antes del primer turno. Use estos para mostrar el progreso de instalación en su propia interfaz de usuario.

145 175 

Details

94 94 

95## Trabajar con sesiones95## Trabajar con sesiones

96 96 

97Claude Code guarda su conversación localmente mientras trabaja. Cada mensaje, uso de herramienta y resultado se almacena, lo que permite [rebobinar](#undo-changes-with-checkpoints), [reanudar y bifurcar](#resume-or-fork-sessions) sesiones. Antes de que Claude realice cambios de código, también toma una instantánea de los archivos afectados para que pueda revertir si es necesario.97Claude Code guarda su conversación localmente mientras trabaja. Cada mensaje, uso de herramienta y resultado se escribe en un archivo JSONL de texto plano bajo `~/.claude/projects/`, lo que permite [rebobinar](#undo-changes-with-checkpoints), [reanudar y bifurcar](#resume-or-fork-sessions) sesiones. Antes de que Claude realice cambios de código, también toma una instantánea de los archivos afectados para que pueda revertir si es necesario. Para rutas, retención y cómo borrar estos datos, consulte [datos de aplicación en `~/.claude`](/es/claude-directory#application-data).

98 98 

99**Las sesiones son independientes.** Cada nueva sesión comienza con una ventana de contexto nueva, sin el historial de conversación de sesiones anteriores. Claude puede persistir aprendizajes entre sesiones usando [auto memory](/es/memory#auto-memory), y puede agregar sus propias instrucciones persistentes en [CLAUDE.md](/es/memory).99**Las sesiones son independientes.** Cada nueva sesión comienza con una ventana de contexto nueva, sin el historial de conversación de sesiones anteriores. Claude puede persistir aprendizajes entre sesiones usando [auto memory](/es/memory#auto-memory), y puede agregar sus propias instrucciones persistentes en [CLAUDE.md](/es/memory).

100 100 

101### Trabajar entre ramas101### Trabajar entre ramas

102 102 

103Cada conversación de Claude Code es una sesión vinculada a su directorio actual. Cuando reanuda, solo ve sesiones de ese directorio.103Cada conversación de Claude Code es una sesión vinculada a su directorio actual. El selector `/resume` muestra sesiones del worktree actual de forma predeterminada, con atajos de teclado para ampliar la lista a otros worktrees o proyectos. Consulte [Gestionar sesiones](/es/sessions#use-the-session-picker) para la lista completa de atajos de teclado del selector y cómo funciona la resolución de nombres.

104 104 

105Claude ve los archivos de su rama actual. Cuando cambia de rama, Claude ve los archivos de la nueva rama, pero el historial de conversación permanece igual. Claude recuerda lo que discutió incluso después de cambiar de rama.105Claude ve los archivos de su rama actual. Cuando cambia de rama, Claude ve los archivos de la nueva rama, pero el historial de conversación permanece igual. Claude recuerda lo que discutió incluso después de cambiar de rama.

106 106 

107Dado que las sesiones están vinculadas a directorios, puede ejecutar sesiones paralelas de Claude Code usando [git worktrees](/es/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees), que crean directorios separados para ramas individuales.107Dado que las sesiones están vinculadas a directorios, puede ejecutar sesiones paralelas de Claude Code usando [git worktrees](/es/worktrees), que crean directorios separados para ramas individuales.

108 108 

109### Reanudar o bifurcar sesiones109### Reanudar o bifurcar sesiones

110 110 

111Cuando reanuda una sesión con `claude --continue` o `claude --resume`, continúa donde lo dejó usando el mismo ID de sesión. Los nuevos mensajes se agregan a la conversación existente. Su historial de conversación completo se restaura, pero los permisos con alcance de sesión no. Deberá volver a aprobarlos.111Reanudar una sesión con `claude --continue` o `claude --resume` la reabre bajo el mismo ID de sesión y agrega nuevos mensajes a la conversación existente. Bifurcar con `--fork-session` o `/branch` copia el historial en un nuevo ID de sesión, dejando el original sin cambios.

112 112 

113<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/session-continuity.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=fa41d12bfb57579cabfeece907151d30" alt="Continuidad de sesión: reanudar continúa la misma sesión, bifurcar crea una nueva rama con un nuevo ID." width="560" height="280" data-path="images/session-continuity.svg" />113<img src="https://mintcdn.com/claude-code/c5r9_6tjPMzFdDDT/images/session-continuity.svg?fit=max&auto=format&n=c5r9_6tjPMzFdDDT&q=85&s=fa41d12bfb57579cabfeece907151d30" alt="Continuidad de sesión: reanudar continúa la misma sesión, bifurcar crea una nueva rama con un nuevo ID." width="560" height="280" data-path="images/session-continuity.svg" />

114 114 

115Para ramificar e intentar un enfoque diferente sin afectar la sesión original, use la bandera `--fork-session`:115Para las banderas de reanudación, el selector `/resume`, nombres y qué sucede cuando la misma sesión está abierta en dos terminales, consulte [Gestionar sesiones](/es/sessions).

116 

117```bash theme={null}

118claude --continue --fork-session

119```

120 

121Esto crea un nuevo ID de sesión mientras preserva el historial de conversación hasta ese punto. La sesión original permanece sin cambios. Como reanudar, las sesiones bifurcadas no heredan permisos con alcance de sesión.

122 

123**Misma sesión en múltiples terminales**: Si reanuda la misma sesión en múltiples terminales, ambos terminales escriben en el mismo archivo de sesión. Los mensajes de ambos se intercalan, como dos personas escribiendo en el mismo cuaderno. Nada se corrompe, pero la conversación se vuelve confusa. Cada terminal solo ve sus propios mensajes durante la sesión, pero si reanuda esa sesión más tarde, verá todo intercalado. Para trabajo paralelo desde el mismo punto de partida, use `--fork-session` para dar a cada terminal su propia sesión limpia.

124 116 

125### La ventana de contexto117### La ventana de contexto

126 118 


134 126 

135Para controlar qué se preserva durante la compactación, agregue una sección "Compact Instructions" a CLAUDE.md o ejecute `/compact` con un enfoque (como `/compact focus on the API changes`).127Para controlar qué se preserva durante la compactación, agregue una sección "Compact Instructions" a CLAUDE.md o ejecute `/compact` con un enfoque (como `/compact focus on the API changes`).

136 128 

129Si un archivo único o salida de herramienta es tan grande que el contexto se vuelve a llenar inmediatamente después de cada resumen, Claude Code deja de compactarse automáticamente después de algunos intentos y muestra un error en lugar de hacer un bucle. Consulte [Auto-compaction stops with a thrashing error](/es/troubleshooting#auto-compaction-stops-with-a-thrashing-error) para pasos de recuperación.

130 

137Ejecute `/context` para ver qué está usando espacio. Las definiciones de herramientas MCP se difieren por defecto y se cargan bajo demanda a través de [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search), por lo que solo los nombres de herramientas consumen contexto hasta que Claude use una herramienta específica. Ejecute `/mcp` para verificar costos por servidor.131Ejecute `/context` para ver qué está usando espacio. Las definiciones de herramientas MCP se difieren por defecto y se cargan bajo demanda a través de [búsqueda de herramientas](/es/mcp#scale-with-mcp-tool-search), por lo que solo los nombres de herramientas consumen contexto hasta que Claude use una herramienta específica. Ejecute `/mcp` para verificar costos por servidor.

138 132 

139#### Gestionar contexto con skills y subagents133#### Gestionar contexto con skills y subagents

140 134 

141Más allá de la compactación, puede usar otras características para controlar qué se carga en el contexto.135Más allá de la compactación, puede usar otras características para controlar qué se carga en el contexto.

142 136 

143[Skills](/es/skills) se cargan bajo demanda. Claude ve descripciones de skills al inicio de la sesión, pero el contenido completo solo se carga cuando se usa una skill. Para skills que invoca manualmente, establezca `disable-model-invocation: true` para mantener descripciones fuera del contexto hasta que las necesite.137[Skills](/es/skills) se cargan bajo demanda. Claude ve descripciones de skills al inicio de la sesión, pero el contenido completo solo se carga cuando se usa una skill. Para skills que invoca manualmente, establezca `disable-model-invocation: true` para mantener descripciones fuera del contexto hasta que las necesite. Para skills que no escribió, use [`skillOverrides`](/es/skills#override-skill-visibility-from-settings) para hacer lo mismo desde la configuración.

144 138 

145[Subagents](/es/sub-agents) obtienen su propio contexto nuevo, completamente separado de su conversación principal. Su trabajo no infla su contexto. Cuando terminan, devuelven un resumen. Este aislamiento es por qué los subagents ayudan con sesiones largas.139[Subagents](/es/sub-agents) obtienen su propio contexto nuevo, completamente separado de su conversación principal. Su trabajo no infla su contexto. Cuando terminan, devuelven un resumen. Este aislamiento es por qué los subagents ayudan con sesiones largas.

146 140 


161Presione `Shift+Tab` para ciclar a través de modos de permiso:155Presione `Shift+Tab` para ciclar a través de modos de permiso:

162 156 

163* **Predeterminado**: Claude pregunta antes de ediciones de archivo y comandos de shell157* **Predeterminado**: Claude pregunta antes de ediciones de archivo y comandos de shell

164* **Auto-aceptar ediciones**: Claude edita archivos sin preguntar, aún pregunta por comandos158* **Auto-aceptar ediciones**: Claude edita archivos y ejecuta comandos comunes del sistema de archivos como `mkdir` y `mv` sin preguntar, aún pregunta por otros comandos

165* **Plan Mode**: Claude usa solo herramientas de solo lectura, creando un plan que puede aprobar antes de la ejecución159* **Plan Mode**: Claude usa solo herramientas de solo lectura, creando un plan que puede aprobar antes de la ejecución

166* **Auto mode**: Claude evalúa todas las acciones con verificaciones de seguridad en segundo plano. Actualmente una vista previa de investigación160* **Auto mode**: Claude evalúa todas las acciones con verificaciones de seguridad en segundo plano. Actualmente una vista previa de investigación

167 161 

Details

11<Note>11<Note>

12 Los atajos de teclado pueden variar según la plataforma y la terminal. Presione `?` para ver los atajos disponibles en su entorno.12 Los atajos de teclado pueden variar según la plataforma y la terminal. Presione `?` para ver los atajos disponibles en su entorno.

13 13 

14 **Usuarios de macOS**: Los atajos de la tecla Option/Alt (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`, `Alt+T`) requieren configurar Option como Meta en su terminal:14 **Usuarios de macOS**: Los atajos de la tecla Option/Alt (`Alt+B`, `Alt+F`, `Alt+Y`, `Alt+M`, `Alt+P`) requieren configurar Option como Meta en su terminal:

15 15 

16 * **iTerm2**: Configuración → Perfiles → Teclas → General → establecer la tecla Option izquierda/derecha en "Esc+"16 * **iTerm2**: Configuración → Perfiles → Teclas → General → establecer la tecla Option izquierda/derecha en "Esc+"

17 * **Terminal de Apple**: Configuración → Perfiles → Teclado → marcar "Usar Option como tecla Meta"17 * **Terminal de Apple**: Configuración → Perfiles → Teclado → marcar "Usar Option como tecla Meta"


39| `Esc` + `Esc` | Rebobinar o resumir | Restaurar código y/o conversación a un punto anterior, o resumir desde un mensaje seleccionado |39| `Esc` + `Esc` | Rebobinar o resumir | Restaurar código y/o conversación a un punto anterior, o resumir desde un mensaje seleccionado |

40| `Shift+Tab` o `Alt+M` (algunas configuraciones) | Ciclar modos de permiso | Ciclar a través de `default`, `acceptEdits`, `plan` y cualquier modo que haya habilitado, como `auto` o `bypassPermissions`. Consulte [modos de permiso](/es/permission-modes). |40| `Shift+Tab` o `Alt+M` (algunas configuraciones) | Ciclar modos de permiso | Ciclar a través de `default`, `acceptEdits`, `plan` y cualquier modo que haya habilitado, como `auto` o `bypassPermissions`. Consulte [modos de permiso](/es/permission-modes). |

41| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambiar modelos sin borrar su indicación |41| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambiar modelos sin borrar su indicación |

42| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. En macOS, configure su terminal para enviar Option como Meta para que este atajo funcione |42| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. {/* min-version: 2.1.132 */}A partir de v2.1.132, este atajo funciona en macOS sin configurar Option como Meta |

43| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/es/fast-mode) |43| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/es/fast-mode) |

44 44 

45### Edición de texto45### Edición de texto


68| :------------------- | :----------------- | :--------------------------------------------------------------------------------------------------------- |68| :------------------- | :----------------- | :--------------------------------------------------------------------------------------------------------- |

69| Escape rápido | `\` + `Enter` | Funciona en todas las terminales |69| Escape rápido | `\` + `Enter` | Funciona en todas las terminales |

70| Tecla Option | `Option+Enter` | Después de habilitar [Option como Meta](/es/terminal-config#enable-option-key-shortcuts-on-macos) en macOS |70| Tecla Option | `Option+Enter` | Después de habilitar [Option como Meta](/es/terminal-config#enable-option-key-shortcuts-on-macos) en macOS |

71| Shift+Enter | `Shift+Enter` | Nativo en iTerm2, WezTerm, Ghostty, Kitty, Warp, Terminal de Apple |71| Shift+Enter | `Shift+Enter` | Nativo en iTerm2, WezTerm, Ghostty, Kitty, Warp, Terminal de Apple, Windows Terminal |

72| Secuencia de control | `Ctrl+J` | Funciona en cualquier terminal sin configuración |72| Secuencia de control | `Ctrl+J` | Funciona en cualquier terminal sin configuración |

73| Modo de pegado | Pegar directamente | Para bloques de código, registros |73| Modo de pegado | Pegar directamente | Para bloques de código, registros |

74 74 

75<Tip>75<Tip>

76 Shift+Enter funciona sin configuración en iTerm2, WezTerm, Ghostty, Kitty, Warp y Terminal de Apple. Para VS Code, Cursor, Windsurf, Alacritty y Zed, ejecute `/terminal-setup` para instalar el enlace.76 Shift+Enter funciona sin configuración en iTerm2, WezTerm, Ghostty, Kitty, Warp, Terminal de Apple y Windows Terminal. Para VS Code, Cursor, Windsurf, Alacritty y Zed, ejecute `/terminal-setup` para instalar el enlace.

77</Tip>77</Tip>

78 78 

79### Comandos rápidos79### Comandos rápidos


130| Comando | Acción |130| Comando | Acción |

131| :-------------- | :---------------------------------------------------------- |131| :-------------- | :---------------------------------------------------------- |

132| `h`/`j`/`k`/`l` | Mover izquierda/abajo/arriba/derecha |132| `h`/`j`/`k`/`l` | Mover izquierda/abajo/arriba/derecha |

133| `Space` | Mover a la derecha |

133| `w` | Siguiente palabra |134| `w` | Siguiente palabra |

134| `e` | Final de palabra |135| `e` | Final de palabra |

135| `b` | Palabra anterior |136| `b` | Palabra anterior |


2201. **Iniciar búsqueda**: presione `Ctrl+R` para activar la búsqueda de historial inverso2211. **Iniciar búsqueda**: presione `Ctrl+R` para activar la búsqueda de historial inverso

2212. **Escribir consulta**: ingrese texto para buscar en comandos anteriores. El término de búsqueda se resalta en los resultados coincidentes2222. **Escribir consulta**: ingrese texto para buscar en comandos anteriores. El término de búsqueda se resalta en los resultados coincidentes

2223. **Navegar coincidencias**: presione `Ctrl+R` nuevamente para ciclar a través de coincidencias más antiguas2233. **Navegar coincidencias**: presione `Ctrl+R` nuevamente para ciclar a través de coincidencias más antiguas

2234. **Cambiar alcance**: presione `Ctrl+S` para ciclar entre esta sesión, este proyecto y todos los proyectos2244. **Cambiar alcance**: la búsqueda se establece de forma predeterminada en indicaciones de todos los proyectos. Presione `Ctrl+S` para ciclar el alcance entre esta sesión, este proyecto y todos los proyectos

2245. **Aceptar coincidencia**:2255. **Aceptar coincidencia**:

225 * Presione `Tab` o `Esc` para aceptar la coincidencia actual y continuar editando226 * Presione `Tab` o `Esc` para aceptar la coincidencia actual y continuar editando

226 * Presione `Enter` para aceptar y ejecutar el comando inmediatamente227 * Presione `Enter` para aceptar y ejecutar el comando inmediatamente

llm-gateway.md +2 −2

Details

53 53 

54Por defecto, Claude Code utiliza nombres de modelo estándar para el formato de API seleccionado.54Por defecto, Claude Code utiliza nombres de modelo estándar para el formato de API seleccionado.

55 55 

56Cuando `ANTHROPIC_BASE_URL` apunta a una puerta de enlace que expone el formato de Mensajes de Anthropic, Claude Code consulta el punto final `/v1/models` de la puerta de enlace al inicio y añade los modelos devueltos al selector `/model`. Cada entrada descubierta se etiqueta como "Desde puerta de enlace" y utiliza el campo `display_name` de la respuesta cuando se proporciona uno. Esto requiere Claude Code v2.1.126 o posterior.56Cuando `ANTHROPIC_BASE_URL` apunta a una puerta de enlace que expone el formato de Mensajes de Anthropic, Claude Code puede consultar el punto final `/v1/models` de la puerta de enlace al inicio y añadir los modelos devueltos al selector `/model`. Establezca `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` para habilitar esto. El descubrimiento está desactivado por defecto para que las puertas de enlace respaldadas por una clave de API compartida no expongan todos los modelos a los que la clave puede acceder a cada usuario. Cada entrada descubierta se etiqueta como "Desde puerta de enlace" y utiliza el campo `display_name` de la respuesta cuando se proporciona uno. Esto requiere Claude Code v2.1.129 o posterior.

57 57 

58El descubrimiento se aplica solo al formato de Mensajes de Anthropic. No se ejecuta para puntos finales de paso a través de Bedrock o Vertex, y no se ejecuta cuando `ANTHROPIC_BASE_URL` no está configurado o apunta a `api.anthropic.com`.58El descubrimiento se aplica solo al formato de Mensajes de Anthropic. No se ejecuta para puntos finales de paso a través de Bedrock o Vertex, y no se ejecuta cuando `ANTHROPIC_BASE_URL` no está configurado o apunta a `api.anthropic.com`.

59 59 

60La solicitud de descubrimiento se autentica de la misma manera que las solicitudes de inferencia: envía `ANTHROPIC_AUTH_TOKEN` como un token portador, o `ANTHROPIC_API_KEY` como el encabezado `x-api-key` cuando no hay un token de autenticación configurado, junto con cualquier encabezado de `ANTHROPIC_CUSTOM_HEADERS`. Solo se añaden al selector los modelos cuyo ID comienza con `claude` o `anthropic`. Los resultados se almacenan en caché en `~/.claude/cache/gateway-models.json` y se actualizan en cada inicio. Si la solicitud falla o la puerta de enlace no implementa `/v1/models`, el selector vuelve a la lista en caché del inicio anterior o a la lista de modelos integrada.60La solicitud de descubrimiento se autentica de la misma manera que las solicitudes de inferencia: envía `ANTHROPIC_AUTH_TOKEN` como un token portador, o `ANTHROPIC_API_KEY` como el encabezado `x-api-key` cuando no hay un token de autenticación configurado, junto con cualquier encabezado de `ANTHROPIC_CUSTOM_HEADERS`. Solo se añaden al selector los modelos cuyo ID comienza con `claude` o `anthropic`. Los resultados se almacenan en caché en `~/.claude/cache/gateway-models.json` y se actualizan en cada inicio. Si la solicitud falla o la puerta de enlace no implementa `/v1/models`, el selector vuelve a la lista en caché del inicio anterior o a la lista de modelos integrada.

61 61 

62Si tu puerta de enlace utiliza nombres de modelo que no coinciden con el filtro de descubrimiento, utiliza las variables de entorno documentadas en [Configuración de modelo](/es/model-config) para añadirlos manualmente.62Si su puerta de enlace utiliza nombres de modelo que no coinciden con el filtro de descubrimiento, utilice las variables de entorno documentadas en [Configuración de modelo](/es/model-config) para añadirlos manualmente.

63 63 

64## Configuración de LiteLLM64## Configuración de LiteLLM

65 65 

mcp.md +11 −1

Details

327/mcp327/mcp

328```328```

329 329 

330El panel `/mcp` muestra el recuento de herramientas junto a cada servidor conectado e indica los servidores que anuncian la capacidad de herramientas pero no exponen ninguna herramienta.

331 

332El nombre del servidor `workspace` está reservado para uso interno. Si su configuración define un servidor con ese nombre, Claude Code lo omite al cargar y muestra una advertencia pidiéndole que lo renombre.

333 

330### Actualizaciones dinámicas de herramientas334### Actualizaciones dinámicas de herramientas

331 335 

332Claude Code admite notificaciones `list_changed` de MCP, permitiendo que los servidores MCP actualicen dinámicamente sus herramientas disponibles, indicaciones y recursos sin requerir que se desconecte y reconecte. Cuando un servidor MCP envía una notificación `list_changed`, Claude Code actualiza automáticamente las capacidades disponibles de ese servidor.336Claude Code admite notificaciones `list_changed` de MCP, permitiendo que los servidores MCP actualicen dinámicamente sus herramientas disponibles, indicaciones y recursos sin requerir que se desconecte y reconecte. Cuando un servidor MCP envía una notificación `list_changed`, Claude Code actualiza automáticamente las capacidades disponibles de ese servidor.


423 427 

424## Alcances de instalación de MCP428## Alcances de instalación de MCP

425 429 

426Los servidores MCP se pueden configurar en tres alcances diferentes según sus necesidades:430Los servidores MCP se pueden configurar en tres alcances. El alcance que elija controla en qué proyectos se carga el servidor y si la configuración se comparte con su equipo. Los administradores también pueden implementar servidores a nivel empresarial a través de [configuración administrada](#managed-mcp-configuration).

427 431 

428| Alcance | Se carga en | Compartido con equipo | Almacenado en |432| Alcance | Se carga en | Compartido con equipo | Almacenado en |

429| -------------------------- | -------------------- | ------------------------------------- | ----------------------------------- |433| -------------------------- | -------------------- | ------------------------------------- | ----------------------------------- |


944 </Step>948 </Step>

945</Steps>949</Steps>

946 950 

951Un 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.

952 

947Para desactivar servidores MCP de Claude.ai en Claude Code, establezca la variable de entorno `ENABLE_CLAUDEAI_MCP_SERVERS` en `false`:953Para desactivar servidores MCP de Claude.ai en Claude Code, establezca la variable de entorno `ENABLE_CLAUDEAI_MCP_SERVERS` en `false`:

948 954 

949```bash theme={null}955```bash theme={null}


1183 1189 

1184El campo `alwaysLoad` está disponible en todos los tipos de servidor y requiere Claude Code v2.1.121 o posterior. Un servidor MCP también puede marcar herramientas individuales como siempre cargadas incluyendo `"anthropic/alwaysLoad": true` en el objeto `_meta` de la herramienta, que tiene el mismo efecto solo para esa herramienta.1190El campo `alwaysLoad` está disponible en todos los tipos de servidor y requiere Claude Code v2.1.121 o posterior. Un servidor MCP también puede marcar herramientas individuales como siempre cargadas incluyendo `"anthropic/alwaysLoad": true` en el objeto `_meta` de la herramienta, que tiene el mismo efecto solo para esa herramienta.

1185 1191 

1192Establecer `alwaysLoad: true` también bloquea el inicio hasta que el servidor se conecte, limitado al tiempo de espera de conexión estándar de 5 segundos. Esto se aplica incluso cuando [`MCP_CONNECTION_NONBLOCKING=1`](/es/env-vars) está establecido, ya que las herramientas deben estar presentes cuando se construye el primer mensaje. Otros servidores aún se conectan en segundo plano cuando el modo no bloqueante está habilitado.

1193 

1186## Usar indicaciones MCP como comandos1194## Usar indicaciones MCP como comandos

1187 1195 

1188Los servidores MCP pueden exponer indicaciones que se vuelven disponibles como comandos en Claude Code.1196Los servidores MCP pueden exponer indicaciones que se vuelven disponibles como comandos en Claude Code.


1351* `https://*.example.com/*` - Permitir cualquier subdominio de example.com1359* `https://*.example.com/*` - Permitir cualquier subdominio de example.com

1352* `http://localhost:*/*` - Permitir cualquier puerto en localhost1360* `http://localhost:*/*` - Permitir cualquier puerto en localhost

1353 1361 

1362La coincidencia de nombres de host no distingue entre mayúsculas y minúsculas e ignora un punto FQDN final, coincidiendo con la semántica de DNS. Un patrón como `*://Mcp.Example.com/*` coincide con `https://mcp.example.com/api`, y `https://mcp.example.com.` se trata igual que `https://mcp.example.com`. Los esquemas y rutas permanecen sensibles a mayúsculas y minúsculas.

1363 

1354**Comportamiento del servidor remoto**:1364**Comportamiento del servidor remoto**:

1355 1365 

1356* Cuando la lista de permitidos contiene **cualquier** entrada `serverUrl`, los servidores remotos **deben** coincidir con uno de esos patrones de URL1366* Cuando la lista de permitidos contiene **cualquier** entrada `serverUrl`, los servidores remotos **deben** coincidir con uno de esos patrones de URL

memory.md +2 −0

Details

378* Haga instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".378* Haga instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".

379* Busque instrucciones conflictivas en archivos CLAUDE.md. Si dos archivos dan orientación diferente para el mismo comportamiento, Claude puede elegir uno arbitrariamente.379* Busque instrucciones conflictivas en archivos CLAUDE.md. Si dos archivos dan orientación diferente para el mismo comportamiento, Claude puede elegir uno arbitrariamente.

380 380 

381Si la instrucción es algo que debe ejecutarse en un punto específico, como antes de cada commit o después de cada edición de archivo, escríbala como un [hook](/es/hooks-guide) en su lugar. Los hooks se ejecutan como comandos de shell en eventos de ciclo de vida fijos y se aplican independientemente de lo que Claude decida hacer.

382 

381Para instrucciones que desea a nivel de prompt del sistema, use [`--append-system-prompt`](/es/cli-reference#system-prompt-flags). Esto debe pasarse en cada invocación, por lo que es más adecuado para scripts y automatización que para uso interactivo.383Para instrucciones que desea a nivel de prompt del sistema, use [`--append-system-prompt`](/es/cli-reference#system-prompt-flags). Esto debe pasarse en cada invocación, por lo que es más adecuado para scripts y automatización que para uso interactivo.

382 384 

383<Tip>385<Tip>

model-config.md +18 −4

Details

184 184 

185La escala de esfuerzo se calibra por modelo, por lo que el mismo nombre de nivel no representa el mismo valor subyacente en todos los modelos.185La escala de esfuerzo se calibra por modelo, por lo que el mismo nombre de nivel no representa el mismo valor subyacente en todos los modelos.

186 186 

187Para razonamiento profundo único sin cambiar su configuración de sesión, incluya "ultrathink" en su indicación. Esto agrega una instrucción en contexto que le dice al modelo que razone más en ese turno; no cambia el nivel de esfuerzo enviado a la API.187#### Utilizar ultrathink para razonamiento profundo único

188 

189Incluya `ultrathink` en cualquier lugar de su indicación para solicitar un razonamiento más profundo en ese turno sin cambiar su configuración de esfuerzo de sesión. Claude Code reconoce la palabra clave y añade una instrucción en contexto. El nivel de esfuerzo enviado a la API no cambia. Otras frases como "think", "think hard" y "think more" se pasan como texto de indicación ordinario y no se reconocen como palabras clave.

188 190 

189#### Establecer el nivel de esfuerzo191#### Establecer el nivel de esfuerzo

190 192 


209 211 

210En Opus 4.6 y Sonnet 4.6, puede establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para revertir al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulte [variables de entorno](/es/env-vars).212En Opus 4.6 y Sonnet 4.6, puede establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para revertir al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulte [variables de entorno](/es/env-vars).

211 213 

214### Pensamiento extendido

215 

216El pensamiento extendido es el razonamiento que Claude emite antes de responder. En modelos que admiten [razonamiento adaptativo](#adjust-effort-level), el nivel de esfuerzo es el control principal de cuánto pensamiento ocurre; la configuración a continuación activa o desactiva el pensamiento y controla cómo se muestra.

217 

218| Control | Cómo configurarlo |

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

220| Alternar para la sesión actual | Presione `Option+T` en macOS o `Alt+T` en Windows y Linux |

221| Establecer el predeterminado global | Ejecute `/config` y alterne el modo de pensamiento. Se guarda como `alwaysThinkingEnabled` en `~/.claude/settings.json` |

222| Desactivar independientemente del esfuerzo | Establezca [`MAX_THINKING_TOKENS=0`](/es/env-vars). Otros valores se aplican solo con un [presupuesto de pensamiento fijo](#adaptive-reasoning-and-fixed-thinking-budgets) |

223 

224La salida de pensamiento se colapsa de forma predeterminada. Presione `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en la API de Anthropic reciben bloques de pensamiento redactados de forma predeterminada, por lo que establezca `showThinkingSummaries: true` en [configuración](/es/settings) si desea que los resúmenes completos estén disponibles cuando se expandan. Se le cobra por todos los tokens de pensamiento generados, incluso cuando se colapsan o se redactan.

225 

212### Contexto extendido226### Contexto extendido

213 227 

214Opus 4.7, Opus 4.6 y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas con bases de código grandes.228Opus 4.7, Opus 4.6 y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/es/build-with-claude/context-windows#1m-token-context-window) para sesiones largas con bases de código grandes.


247 261 

248## Agregar una opción de modelo personalizado262## Agregar una opción de modelo personalizado

249 263 

250Utilice `ANTHROPIC_CUSTOM_MODEL_OPTION` para agregar una única entrada personalizada al selector `/model` sin reemplazar los alias integrados. Esto es útil para probar IDs de modelo que Claude Code no enumera de forma predeterminada. Para implementaciones de puerta de enlace LLM, Claude Code completa automáticamente el selector desde el punto final `/v1/models` de la puerta de enlace, por lo que esta variable solo es necesaria cuando el descubrimiento no devuelve el modelo que desea. Consulte [Selección de modelo de puerta de enlace LLM](/es/llm-gateway#model-selection).264Utilice `ANTHROPIC_CUSTOM_MODEL_OPTION` para agregar una única entrada personalizada al selector `/model` sin reemplazar los alias integrados. Esto es útil para probar IDs de modelo que Claude Code no enumera de forma predeterminada. Para implementaciones de puerta de enlace LLM, Claude Code puede completar automáticamente el selector desde el punto final `/v1/models` de la puerta de enlace cuando se establece `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`, por lo que esta variable solo es necesaria cuando el descubrimiento está deshabilitado o no devuelve el modelo que desea. Consulte [Selección de modelo de puerta de enlace LLM](/es/llm-gateway#model-selection).

251 265 

252Este ejemplo establece las tres variables para hacer que una implementación de Opus enrutada por puerta de enlace sea seleccionable:266Este ejemplo establece las tres variables para hacer que una implementación de Opus enrutada por puerta de enlace sea seleccionable:

253 267 


320 334 

321Los mismos sufijos `_NAME`, `_DESCRIPTION` y `_SUPPORTED_CAPABILITIES` están disponibles para `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` y `ANTHROPIC_CUSTOM_MODEL_OPTION`.335Los mismos sufijos `_NAME`, `_DESCRIPTION` y `_SUPPORTED_CAPABILITIES` están disponibles para `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` y `ANTHROPIC_CUSTOM_MODEL_OPTION`.

322 336 

323Claude Code habilita características como [niveles de esfuerzo](#adjust-effort-level) y [pensamiento extendido](/es/common-workflows#use-extended-thinking-thinking-mode) haciendo coincidir el ID de modelo con patrones conocidos. Los IDs específicos del proveedor como ARNs de Bedrock o nombres de implementación personalizados a menudo no coinciden con estos patrones, dejando las características compatibles deshabilitadas. Establezca `_SUPPORTED_CAPABILITIES` para indicar a Claude Code qué características admite realmente el modelo:337Claude Code habilita características como [niveles de esfuerzo](#adjust-effort-level) y [pensamiento extendido](#extended-thinking) haciendo coincidir el ID de modelo con patrones conocidos. Los IDs específicos del proveedor como ARNs de Bedrock o nombres de implementación personalizados a menudo no coinciden con estos patrones, dejando las características compatibles deshabilitadas. Establezca `_SUPPORTED_CAPABILITIES` para indicar a Claude Code qué características admite realmente el modelo:

324 338 

325| Valor de capacidad | Habilita |339| Valor de capacidad | Habilita |

326| ---------------------- | ---------------------------------------------------------------------------------------------------- |340| ---------------------- | ---------------------------------------------------------------------------------------------------- |

327| `effort` | [Niveles de esfuerzo](#adjust-effort-level) y el comando `/effort` |341| `effort` | [Niveles de esfuerzo](#adjust-effort-level) y el comando `/effort` |

328| `xhigh_effort` | {/* min-version: 2.1.111 */}El nivel de esfuerzo `xhigh` |342| `xhigh_effort` | {/* min-version: 2.1.111 */}El nivel de esfuerzo `xhigh` |

329| `max_effort` | El nivel de esfuerzo `max` |343| `max_effort` | El nivel de esfuerzo `max` |

330| `thinking` | [Pensamiento extendido](/es/common-workflows#use-extended-thinking-thinking-mode) |344| `thinking` | [Pensamiento extendido](#extended-thinking) |

331| `adaptive_thinking` | Razonamiento adaptativo que asigna dinámicamente el pensamiento basado en la complejidad de la tarea |345| `adaptive_thinking` | Razonamiento adaptativo que asigna dinámicamente el pensamiento basado en la complejidad de la tarea |

332| `interleaved_thinking` | Pensamiento entre llamadas de herramientas |346| `interleaved_thinking` | Pensamiento entre llamadas de herramientas |

333 347 

Details

64 Los ajustes administrados pueden distribuirse a través de MDM (Mobile Device Management) u otras soluciones de gestión de dispositivos. Las variables de entorno definidas en el archivo de configuración administrada tienen alta precedencia y no pueden ser anuladas por los usuarios.64 Los ajustes administrados pueden distribuirse a través de MDM (Mobile Device Management) u otras soluciones de gestión de dispositivos. Las variables de entorno definidas en el archivo de configuración administrada tienen alta precedencia y no pueden ser anuladas por los usuarios.

65</Note>65</Note>

66 66 

67Claude Code no pasa variables de entorno `OTEL_*` a los subprocesos que genera, incluyendo la herramienta Bash, hooks, servidores MCP, y servidores de lenguaje. Una aplicación instrumentada con OpenTelemetry que ejecutes a través de la herramienta Bash no hereda el punto final del exportador de Claude Code ni los encabezados, así que establece esas variables directamente en el comando si esa aplicación necesita exportar su propia telemetría.

68 

67## Detalles de configuración69## Detalles de configuración

68 70 

69### Variables de configuración comunes71### Variables de configuración comunes


80| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | Protocolo para registros, anula la configuración general | `grpc`, `http/json`, `http/protobuf` |82| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | Protocolo para registros, anula la configuración general | `grpc`, `http/json`, `http/protobuf` |

81| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Punto final de registros OTLP, anula la configuración general | `http://localhost:4318/v1/logs` |83| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Punto final de registros OTLP, anula la configuración general | `http://localhost:4318/v1/logs` |

82| `OTEL_EXPORTER_OTLP_HEADERS` | Encabezados de autenticación para OTLP | `Authorization=Bearer token` |84| `OTEL_EXPORTER_OTLP_HEADERS` | Encabezados de autenticación para OTLP | `Authorization=Bearer token` |

83| `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` | Clave de cliente para autenticación mTLS | Ruta al archivo de clave de cliente |

84| `OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE` | Certificado de cliente para autenticación mTLS | Ruta al archivo de certificado de cliente |

85| `OTEL_METRIC_EXPORT_INTERVAL` | Intervalo de exportación en milisegundos (predeterminado: 60000) | `5000`, `60000` |85| `OTEL_METRIC_EXPORT_INTERVAL` | Intervalo de exportación en milisegundos (predeterminado: 60000) | `5000`, `60000` |

86| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalo de exportación de registros en milisegundos (predeterminado: 5000) | `1000`, `10000` |86| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalo de exportación de registros en milisegundos (predeterminado: 5000) | `1000`, `10000` |

87| `OTEL_LOG_USER_PROMPTS` | Habilitar registro del contenido del mensaje del usuario (predeterminado: deshabilitado) | `1` para habilitar |87| `OTEL_LOG_USER_PROMPTS` | Habilitar registro del contenido del mensaje del usuario (predeterminado: deshabilitado) | `1` para habilitar |


91| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferencia de temporalidad de métricas (predeterminado: `delta`). Establece en `cumulative` si tu backend espera temporalidad acumulativa | `delta`, `cumulative` |91| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferencia de temporalidad de métricas (predeterminado: `delta`). Establece en `cumulative` si tu backend espera temporalidad acumulativa | `delta`, `cumulative` |

92| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar encabezados dinámicos (predeterminado: 1740000ms / 29 minutos) | `900000` |92| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar encabezados dinámicos (predeterminado: 1740000ms / 29 minutos) | `900000` |

93 93 

94### Autenticación mTLS

95 

96Cómo configures certificados de cliente para el exportador OTLP depende del protocolo OTLP en uso para esa señal, establecido a través de `OTEL_EXPORTER_OTLP_PROTOCOL` o la anulación por señal. La misma configuración se aplica a métricas, registros y trazas.

97 

98| Protocolo | Variables de certificado de cliente | Confiar en la CA del recopilador con |

99| :--------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------- |

100| `http/protobuf`, `http/json` | `CLAUDE_CODE_CLIENT_CERT`, `CLAUDE_CODE_CLIENT_KEY`, y opcionalmente `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`. Consulta [Configuración de red](/es/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |

101| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` y `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, o las variantes por señal como `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` para usar un certificado diferente por señal | `OTEL_EXPORTER_OTLP_CERTIFICATE` |

102 

103Para `grpc`, el SDK de OpenTelemetry lee las variables OTLP estándar directamente, por lo que las configuraciones existentes que establecen las variables de métricas por señal continúan funcionando.

104 

94### Control de cardinalidad de métricas105### Control de cardinalidad de métricas

95 106 

96Las siguientes variables de entorno controlan qué atributos se incluyen en las métricas para gestionar la cardinalidad:107Las siguientes variables de entorno controlan qué atributos se incluyen en las métricas para gestionar la cardinalidad:


107 118 

108Las trazas distribuidas exportan spans que vinculan cada mensaje del usuario a las solicitudes de API y ejecuciones de herramientas que desencadena, para que puedas ver una solicitud completa como una única traza en tu backend de trazas.119Las trazas distribuidas exportan spans que vinculan cada mensaje del usuario a las solicitudes de API y ejecuciones de herramientas que desencadena, para que puedas ver una solicitud completa como una única traza en tu backend de trazas.

109 120 

110Las trazas están deshabilitadas por defecto. Para habilitarlas, establece tanto `CLAUDE_CODE_ENABLE_TELEMETRY=1` como `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`, luego establece `OTEL_TRACES_EXPORTER` para elegir dónde se envían los spans. Las trazas reutilizan la [configuración OTLP común](#common-configuration-variables) para punto final, protocolo y encabezados.121Las trazas están deshabilitadas por defecto. Para habilitarlas, establece tanto `CLAUDE_CODE_ENABLE_TELEMETRY=1` como `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`, luego establece `OTEL_TRACES_EXPORTER` para elegir dónde se envían los spans. Las trazas reutilizan la [configuración OTLP común](#common-configuration-variables) para punto final, protocolo, encabezados, y [mTLS](#mtls-authentication).

111 122 

112| Variable de Entorno | Descripción | Valores de Ejemplo |123| Variable de Entorno | Descripción | Valores de Ejemplo |

113| ------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------ |124| ------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------ |


233 244 

234### Encabezados dinámicos245### Encabezados dinámicos

235 246 

236Para entornos empresariales que requieren autenticación dinámica, puedes configurar un script para generar encabezados dinámicamente:247Para entornos empresariales que requieren autenticación dinámica, puedes configurar un script para generar encabezados dinámicamente. Los encabezados dinámicos se aplican solo a los protocolos `http/protobuf` e `http/json`. El exportador `grpc` usa solo el valor estático `OTEL_EXPORTER_OTLP_HEADERS`.

237 248 

238#### Configuración de ajustes249#### Configuración de ajustes

239 250 


410 421 

411#### Contador de solicitud de extracción422#### Contador de solicitud de extracción

412 423 

413Se incrementa al crear solicitudes de extracción a través de Claude Code.424Se incrementa cuando Claude Code crea una solicitud de extracción o solicitud de fusión a través de un comando de shell o una herramienta MCP.

414 425 

415**Atributos**:426**Atributos**:

416 427 


556* `cache_creation_tokens`: Número de tokens utilizados para la creación del caché567* `cache_creation_tokens`: Número de tokens utilizados para la creación del caché

557* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.568* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.

558* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo569* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

559* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagenteagente570* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

560* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando el modelo no admite esfuerzo.571* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando el modelo no admite esfuerzo.

561 572 

562#### Evento de error de API573#### Evento de error de API


578* `attempt`: Número total de intentos realizados, incluyendo la solicitud inicial (`1` significa que no ocurrieron reintentos)589* `attempt`: Número total de intentos realizados, incluyendo la solicitud inicial (`1` significa que no ocurrieron reintentos)

579* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.590* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.

580* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo591* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

581* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagenteagente592* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

582* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando el modelo no admite esfuerzo.593* `effort`: [Nivel de esfuerzo](/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando el modelo no admite esfuerzo.

583 594 

584#### Evento de cuerpo de solicitud de API595#### Evento de cuerpo de solicitud de API


865* Identificar sesiones de alto uso para optimización876* Identificar sesiones de alto uso para optimización

866 877 

867<Note>878<Note>

868 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulte su proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud Vertex).879 Las métricas de costo son aproximaciones. Para datos de facturación oficiales, consulta tu proveedor de API (Claude Console, Amazon Bedrock, o Google Cloud Vertex).

869</Note>880</Note>

870 881 

871### Alertas y segmentación882### Alertas y segmentación


890 901 

891Los datos de eventos proporcionan información detallada sobre las interacciones de Claude Code:902Los datos de eventos proporcionan información detallada sobre las interacciones de Claude Code:

892 903 

893**Patrones de Uso de Herramientas**: analice eventos de resultado de herramientas para identificar:904**Patrones de Uso de Herramientas**: analiza eventos de resultado de herramientas para identificar:

894 905 

895* Herramientas más utilizadas frecuentemente906* Herramientas más utilizadas frecuentemente

896* Tasas de éxito de herramientas907* Tasas de éxito de herramientas

897* Tiempos de ejecución promedio de herramientas908* Tiempos de ejecución promedio de herramientas

898* Patrones de error por tipo de herramienta909* Patrones de error por tipo de herramienta

899 910 

900**Monitoreo de Rendimiento**: rastreé duraciones de solicitudes de API y tiempos de ejecución de herramientas para identificar cuellos de botella de rendimiento.911**Monitoreo de Rendimiento**: rastrea duraciones de solicitudes de API y tiempos de ejecución de herramientas para identificar cuellos de botella de rendimiento.

901 912 

902## Consideraciones de backend913## Consideraciones de backend

903 914 

output-styles.md +12 −3

Details

6 6 

7> Adapte Claude Code para usos más allá de la ingeniería de software7> Adapte Claude Code para usos más allá de la ingeniería de software

8 8 

9Los estilos de salida le permiten usar Claude Code como cualquier tipo de agente mientras se mantienen sus capacidades principales, como ejecutar scripts locales, leer/escribir archivos y realizar un seguimiento de TODOs.9Los estilos de salida cambian cómo responde Claude, no lo que Claude sabe. Modifican el mensaje del sistema para establecer el rol, el tono y el formato de salida mientras se mantienen las capacidades principales como ejecutar scripts, leer y escribir archivos y realizar un seguimiento de TODOs. Use uno cuando siga re-solicitando la misma voz o formato en cada turno, o cuando desee que Claude actúe como algo diferente a un ingeniero de software.

10 

11Para instrucciones sobre su proyecto, convenciones o base de código, use [CLAUDE.md](/es/memory) en su lugar.

10 12 

11## Estilos de salida integrados13## Estilos de salida integrados

12 14 


63[Define how the assistant should behave in this style...]65[Define how the assistant should behave in this style...]

64```66```

65 67 

66Puede guardar estos archivos en el nivel de usuario (`~/.claude/output-styles`) o en el nivel de proyecto (`.claude/output-styles`).68Puede guardar estos archivos en tres niveles:

69 

70* Usuario: `~/.claude/output-styles`

71* Proyecto: `.claude/output-styles`

72* Política administrada: `.claude/output-styles` dentro del [directorio de configuración administrada](/es/settings#settings-files)

73 

74Los [Plugins](/es/plugins-reference) también pueden enviar estilos de salida en un directorio `output-styles/`.

67 75 

68### Frontmatter76### Frontmatter

69 77 

70Los archivos de estilo de salida admiten frontmatter para especificar metadatos:78Los archivos de estilo de salida admiten frontmatter para especificar metadatos:

71 79 

72| Frontmatter | Propósito | Predeterminado |80| Frontmatter | Propósito | Predeterminado |

73| :------------------------- | :------------------------------------------------------------------------------------------------------- | :------------------------------- |81| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------- |

74| `name` | Nombre del estilo de salida, si no es el nombre del archivo | Se hereda del nombre del archivo |82| `name` | Nombre del estilo de salida, si no es el nombre del archivo | Se hereda del nombre del archivo |

75| `description` | Descripción del estilo de salida, mostrada en el selector `/config` | Ninguno |83| `description` | Descripción del estilo de salida, mostrada en el selector `/config` | Ninguno |

76| `keep-coding-instructions` | Si se deben mantener las partes del mensaje del sistema de Claude Code relacionadas con la codificación. | false |84| `keep-coding-instructions` | Si se deben mantener las partes del mensaje del sistema de Claude Code relacionadas con la codificación. | false |

85| `force-for-plugin` | Solo estilos de salida de plugins: aplique este estilo automáticamente siempre que el plugin esté habilitado, sin requerir que los usuarios lo seleccionen. Anula la configuración `outputStyle` del usuario. Si varios plugins habilitados establecen esto, el primero cargado gana. | false |

77 86 

78## Comparaciones con características relacionadas87## Comparaciones con características relacionadas

79 88 

plugins.md +6 −0

Details

315 ```315 ```

316</Tip>316</Tip>

317 317 

318Para probar un plugin que ya está empaquetado como un archivo `.zip` y alojado en una URL, como un artefacto de compilación de CI, use `--plugin-url` en su lugar. Claude Code obtiene el archivo al inicio y lo carga solo para esa sesión. Si la obtención falla o el archivo no es válido, Claude Code reporta un error de carga de plugin e inicia sin él. Las mismas [consideraciones de confianza](/es/discover-plugins#security) se aplican como para cualquier fuente de plugin: solo apunte esta bandera a archivos que controle o en los que confíe.

319 

320```bash theme={null}

321claude --plugin-url https://example.com/my-plugin.zip

322```

323 

318### Depure problemas del plugin324### Depure problemas del plugin

319 325 

320Si su plugin no funciona como se espera:326Si su plugin no funciona como se espera:

Details

301]301]

302```302```

303 303 

304Para declarar monitores en línea, establezca la clave `monitors` en `plugin.json` en el mismo array. Para cargar desde una ruta no predeterminada, establezca `monitors` en una cadena de ruta relativa como `"./config/monitors.json"`.304Para declarar monitores en línea, establezca `experimental.monitors` en `plugin.json` en el mismo array. Para cargar desde una ruta no predeterminada, establezca `experimental.monitors` en una cadena de ruta relativa como `"./config/monitors.json"`. Los monitores son un [componente experimental](#experimental-components).

305 305 

306**Campos requeridos:**306**Campos requeridos:**

307 307 


323 323 

324### Themes324### Themes

325 325 

326Los plugins pueden distribuir temas de color que aparecen en `/theme` junto con los presets integrados y los temas locales del usuario. Un tema es un archivo JSON en `themes/` con un preset `base` y un mapa disperso `overrides` de tokens de color.326Los plugins pueden distribuir temas de color que aparecen en `/theme` junto con los presets integrados y los temas locales del usuario. Un tema es un archivo JSON en `themes/` con un preset `base` y un mapa disperso `overrides` de tokens de color. Los temas son un [componente experimental](#experimental-components).

327 327 

328```json theme={null}328```json theme={null}

329{329{


384 "hooks": "./config/hooks.json",384 "hooks": "./config/hooks.json",

385 "mcpServers": "./mcp-config.json",385 "mcpServers": "./mcp-config.json",

386 "outputStyles": "./styles/",386 "outputStyles": "./styles/",

387 "themes": "./themes/",

388 "lspServers": "./.lsp.json",387 "lspServers": "./.lsp.json",

389 "monitors": "./monitors.json",388 "experimental": {

389 "themes": "./themes/",

390 "monitors": "./monitors.json"

391 },

390 "dependencies": [392 "dependencies": [

391 "helper-lib",393 "helper-lib",

392 { "name": "secrets-vault", "version": "~2.1.0" }394 { "name": "secrets-vault", "version": "~2.1.0" }


420### Campos de ruta de componentes422### Campos de ruta de componentes

421 423 

422| Campo | Tipo | Descripción | Ejemplo |424| Campo | Tipo | Descripción | Ejemplo |

423| :------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |425| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

424| `skills` | string\|array | Directorios de skills personalizados que contienen `<name>/SKILL.md` (reemplaza el predeterminado `skills/`) | `"./custom/skills/"` |426| `skills` | string\|array | Directorios de skills personalizados que contienen `<name>/SKILL.md` (reemplaza el predeterminado `skills/`) | `"./custom/skills/"` |

425| `commands` | string\|array | Archivos de skill planos `.md` o directorios personalizados (reemplaza el predeterminado `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |427| `commands` | string\|array | Archivos de skill planos `.md` o directorios personalizados (reemplaza el predeterminado `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |

426| `agents` | string\|array | Archivos de agent personalizados (reemplaza el predeterminado `agents/`) | `"./custom/agents/reviewer.md"` |428| `agents` | string\|array | Archivos de agent personalizados (reemplaza el predeterminado `agents/`) | `"./custom/agents/reviewer.md"` |

427| `hooks` | string\|array\|object | Rutas de configuración de hooks o configuración en línea | `"./my-extra-hooks.json"` |429| `hooks` | string\|array\|object | Rutas de configuración de hooks o configuración en línea | `"./my-extra-hooks.json"` |

428| `mcpServers` | string\|array\|object | Rutas de configuración de MCP o configuración en línea | `"./my-extra-mcp-config.json"` |430| `mcpServers` | string\|array\|object | Rutas de configuración de MCP o configuración en línea | `"./my-extra-mcp-config.json"` |

429| `outputStyles` | string\|array | Archivos/directorios de estilos de salida personalizados (reemplaza el predeterminado `output-styles/`) | `"./styles/"` |431| `outputStyles` | string\|array | Archivos/directorios de estilos de salida personalizados (reemplaza el predeterminado `output-styles/`) | `"./styles/"` |

430| `themes` | string\|array | Archivos/directorios de temas de color (reemplaza el predeterminado `themes/`). Consulta [Themes](#themes) | `"./themes/"` |

431| `lspServers` | string\|array\|object | Configuraciones de [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) para inteligencia de código (ir a definición, encontrar referencias, etc.) | `"./.lsp.json"` |432| `lspServers` | string\|array\|object | Configuraciones de [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) para inteligencia de código (ir a definición, encontrar referencias, etc.) | `"./.lsp.json"` |

432| `monitors` | string\|array | Configuraciones de [Monitor](/es/tools-reference#monitor-tool) de fondo que se inician automáticamente cuando el plugin está activo. Consulta [Monitors](#monitors) | `"./monitors.json"` |433| `experimental.themes` | string\|array | Archivos/directorios de temas de color (reemplaza el predeterminado `themes/`). Consulta [Themes](#themes) | `"./themes/"` |

434| `experimental.monitors` | string\|array | Configuraciones de [Monitor](/es/tools-reference#monitor-tool) de fondo que se inician automáticamente cuando el plugin está activo. Consulta [Monitors](#monitors) | `"./monitors.json"` |

433| `userConfig` | object | Valores configurables por el usuario solicitados al habilitar. Consulta [Configuración del usuario](#user-configuration) | Ver abajo |435| `userConfig` | object | Valores configurables por el usuario solicitados al habilitar. Consulta [Configuración del usuario](#user-configuration) | Ver abajo |

434| `channels` | array | Declaraciones de canales para inyección de mensajes (estilo Telegram, Slack, Discord). Consulta [Channels](#channels) | Ver abajo |436| `channels` | array | Declaraciones de canales para inyección de mensajes (estilo Telegram, Slack, Discord). Consulta [Channels](#channels) | Ver abajo |

435| `dependencies` | array | Otros plugins que requiere este plugin, opcionalmente con restricciones de versión semántica. Consulta [Restringir versiones de dependencias de plugins](/es/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |437| `dependencies` | array | Otros plugins que requiere este plugin, opcionalmente con restricciones de versión semántica. Consulta [Restringir versiones de dependencias de plugins](/es/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

436 438 

439### Componentes experimentales

440 

441Los componentes bajo la clave `experimental`, `themes` y `monitors`, tienen un esquema de manifiesto que puede cambiar entre versiones mientras se estabilizan. Dónde los declares es una migración separada: el nivel superior aún funciona, `claude plugin validate` advierte, y una versión futura requerirá `experimental.*`.

442 

437### Configuración del usuario443### Configuración del usuario

438 444 

439El campo `userConfig` declara valores que Claude Code solicita al usuario cuando se habilita el plugin. Usa esto en lugar de requerir que los usuarios editen manualmente `settings.json`.445El campo `userConfig` declara valores que Claude Code solicita al usuario cuando se habilita el plugin. Usa esto en lugar de requerir que los usuarios editen manualmente `settings.json`.


504 510 

505### Reglas de comportamiento de rutas511### Reglas de comportamiento de rutas

506 512 

507Para `skills`, `commands`, `agents`, `outputStyles`, `themes` y `monitors`, una ruta personalizada reemplaza la predeterminada. Si el manifiesto especifica `skills`, el directorio predeterminado `skills/` no se escanea; si especifica `monitors`, el `monitors/monitors.json` predeterminado no se carga. [Hooks](#hooks), [MCP servers](#mcp-servers) y [LSP servers](#lsp-servers) tienen semántica diferente para manejar múltiples fuentes.513Para `skills`, `commands`, `agents`, `outputStyles`, `experimental.themes` y `experimental.monitors`, una ruta personalizada reemplaza la predeterminada. Si el manifiesto especifica `skills`, el directorio predeterminado `skills/` no se escanea; si especifica `experimental.monitors`, el `monitors/monitors.json` predeterminado no se carga. [Hooks](#hooks), [MCP servers](#mcp-servers) y [LSP servers](#lsp-servers) tienen semántica diferente para manejar múltiples fuentes.

508 514 

509* Todas las rutas deben ser relativas a la raíz del plugin y comenzar con `./`515* Todas las rutas deben ser relativas a la raíz del plugin y comenzar con `./`

510* Los componentes de rutas personalizadas utilizan las mismas reglas de nomenclatura y espacios de nombres516* Los componentes de rutas personalizadas utilizan las mismas reglas de nomenclatura y espacios de nombres


605 611 

606Los plugins se especifican de una de dos formas:612Los plugins se especifican de una de dos formas:

607 613 

608* A través de `claude --plugin-dir`, durante la duración de una sesión.614* A través de `claude --plugin-dir` o `claude --plugin-url`, durante la duración de una sesión.

609* A través de un marketplace, instalado para sesiones futuras.615* A través de un marketplace, instalado para sesiones futuras.

610 616 

611Por razones de seguridad y verificación, Claude Code copia plugins del *marketplace* a la **caché de plugins** local del usuario (`~/.claude/plugins/cache`) en lugar de usarlos en su lugar. Entender este comportamiento es importante al desarrollar plugins que hacen referencia a archivos externos.617Por razones de seguridad y verificación, Claude Code copia plugins del *marketplace* a la **caché de plugins** local del usuario (`~/.claude/plugins/cache`) en lugar de usarlos en su lugar. Entender este comportamiento es importante al desarrollar plugins que hacen referencia a archivos externos.

612 618 

613Cada versión instalada es un directorio separado en la caché. Cuando actualizas o desinstales un plugin, el directorio de versión anterior se marca como huérfano y se elimina automáticamente 7 días después. El período de gracia permite que las sesiones de Claude Code concurrentes que ya cargaron la versión anterior sigan ejecutándose sin errores.619Cada versión instalada es un directorio separado en la caché. Cuando actualiza o desinstala un plugin, el directorio de versión anterior se marca como huérfano y se elimina automáticamente 7 días después. El período de gracia permite que las sesiones de Claude Code concurrentes que ya cargaron la versión anterior sigan ejecutándose sin errores.

614 620 

615Las herramientas Glob y Grep de Claude omiten directorios de versión huérfanos durante búsquedas, por lo que los resultados de archivos no incluyen código de plugin obsoleto.621Las herramientas Glob y Grep de Claude omiten directorios de versión huérfanos durante búsquedas, por lo que los resultados de archivos no incluyen código de plugin obsoleto.

616 622 


620 626 

621### Trabajar con dependencias externas627### Trabajar con dependencias externas

622 628 

623Si tu plugin necesita acceder a archivos fuera de su directorio, puedes crear enlaces simbólicos a archivos externos dentro de tu directorio de plugin. Los enlaces simbólicos se preservan en la caché en lugar de ser desreferenciados, y se resuelven a su destino en tiempo de ejecución. El siguiente comando crea un enlace desde dentro de tu directorio de plugin a una ubicación de utilidades compartidas:629Si su plugin necesita acceder a archivos fuera de su directorio, puede crear enlaces simbólicos a archivos externos dentro de su directorio de plugin. Los enlaces simbólicos se preservan en la caché en lugar de ser desreferenciados, y se resuelven a su destino en tiempo de ejecución. El siguiente comando crea un enlace desde dentro de su directorio de plugin a una ubicación de utilidades compartidas:

624 630 

625```bash theme={null}631```bash theme={null}

626ln -s /path/to/shared-utils ./shared-utils632ln -s /path/to/shared-utils ./shared-utils

routines.md +78 −26

Details

14 14 

15Cada rutina puede tener uno o más disparadores adjuntos:15Cada rutina puede tener uno o más disparadores adjuntos:

16 16 

17* **Programada**: se ejecuta en una cadencia recurrente como cada hora, cada noche o semanalmente17* **Programada**: se ejecuta en una cadencia recurrente como cada hora, cada noche o semanalmente, o una sola vez en un momento futuro específico

18* **API**: se activa bajo demanda enviando un POST HTTP a un punto final por rutina con un token de portador18* **API**: se activa bajo demanda enviando un POST HTTP a un punto final por rutina con un token de portador

19* **GitHub**: se ejecuta automáticamente en respuesta a eventos del repositorio como solicitudes de extracción o lanzamientos19* **GitHub**: se ejecuta automáticamente en respuesta a eventos del repositorio como solicitudes de extracción o lanzamientos

20 20 


44 44 

45## Crear una rutina45## Crear una rutina

46 46 

47Cree una rutina desde la web, la aplicación de escritorio o la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una rutina que cree en la CLI aparece en claude.ai/code/routines inmediatamente. En la aplicación de escritorio, haga clic en **Nueva tarea** y elija **Nueva tarea remota**; elegir **Nueva tarea local** en su lugar crea una [tarea programada local de escritorio](/es/desktop-scheduled-tasks), que se ejecuta en su máquina y no es una rutina.47Cree una rutina desde la web en [claude.ai/code/routines](https://claude.ai/code/routines), desde la aplicación de escritorio o desde la CLI. Las tres superficies escriben en la misma cuenta en la nube, por lo que una rutina que cree en una aparece en las otras inmediatamente. En la aplicación de escritorio, haga clic en **Routines** en la barra lateral, luego en **New routine**, y elija **Remote**; elegir **Local** en su lugar crea una [tarea programada de escritorio](/es/desktop-scheduled-tasks), que se ejecuta en su máquina en lugar de en la nube.

48 48 

49El formulario de creación configura el prompt de la rutina, repositorios, entorno, conectores y disparadores.49El formulario de creación configura el prompt de la rutina, repositorios, entorno, conectores y disparadores.

50 50 


56 56 

57<Steps>57<Steps>

58 <Step title="Abrir el formulario de creación">58 <Step title="Abrir el formulario de creación">

59 Visite [claude.ai/code/routines](https://claude.ai/code/routines) y haga clic en **Nueva rutina**.59 Visite [claude.ai/code/routines](https://claude.ai/code/routines) y haga clic en **New routine**.

60 </Step>60 </Step>

61 61 

62 <Step title="Nombrar la rutina y escribir el prompt">62 <Step title="Nombrar la rutina y escribir el prompt">


66 </Step>66 </Step>

67 67 

68 <Step title="Seleccionar repositorios">68 <Step title="Seleccionar repositorios">

69 Agregue uno o más repositorios de GitHub para que Claude trabaje. Cada repositorio se clona al inicio de una ejecución, comenzando desde la rama predeterminada. Claude crea ramas con prefijo `claude/` para sus cambios. Para permitir inserciones en cualquier rama, habilite **Permitir inserciones de rama sin restricciones** para ese repositorio.69 Agregue uno o más repositorios de GitHub para que Claude trabaje. Cada repositorio se clona al inicio de una ejecución, comenzando desde la rama predeterminada. Claude crea ramas con prefijo `claude/` para sus cambios.

70 </Step>70 </Step>

71 71 

72 <Step title="Seleccionar un entorno">72 <Step title="Seleccionar un entorno">

73 Elija un [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) para la rutina. Los entornos controlan a qué tiene acceso la sesión en la nube:73 Elija un [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) para la rutina. Los entornos controlan a qué tiene acceso la sesión en la nube:

74 74 

75 * **Acceso a la red**: establezca el nivel de acceso a Internet disponible durante cada ejecución75 * **Network access**: establezca el nivel de acceso a Internet disponible durante cada ejecución

76 * **Variables de entorno**: proporcione claves de API, tokens u otros secretos que Claude pueda usar76 * **Environment variables**: proporcione claves de API, tokens u otros secretos que Claude pueda usar

77 * **Script de configuración**: instale dependencias y herramientas que la rutina necesita. El resultado se [almacena en caché](/es/claude-code-on-the-web#environment-caching), por lo que el script no se vuelve a ejecutar en cada sesión77 * **Setup script**: instale dependencias y herramientas que la rutina necesita. El resultado se [almacena en caché](/es/claude-code-on-the-web#environment-caching), por lo que el script no se vuelve a ejecutar en cada sesión

78 78 

79 Se proporciona un entorno **Predeterminado**. Para usar un entorno personalizado, [cree uno](/es/claude-code-on-the-web#the-cloud-environment) antes de crear la rutina.79 Se proporciona un entorno **Default** con acceso a la red **Trusted**, que permite el [conjunto predeterminado](/es/claude-code-on-the-web#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes, pero bloquea todo lo demás. Si su rutina necesita alcanzar sus propios servicios o un dominio fuera de esa lista, edite el [acceso a la red](/es/claude-code-on-the-web#network-access) del entorno antes de ejecutar. Para usar un entorno separado, [cree uno](/es/claude-code-on-the-web#configure-your-environment) primero.

80 </Step>80 </Step>

81 81 

82 <Step title="Seleccionar un disparador">82 <Step title="Seleccionar un disparador">

83 En **Seleccionar un disparador**, elija cómo comienza la rutina. Puede elegir un tipo de disparador o combinar varios.83 En **Select a trigger**, elija cómo comienza la rutina. Puede elegir un tipo de disparador o combinar varios.

84 84 

85 <Tabs>85 <Tabs>

86 <Tab title="Horario">86 <Tab title="Schedule">

87 Elija una frecuencia preestablecida: cada hora, diaria, días de semana o semanal. Consulte [Agregar un disparador de horario](#add-a-schedule-trigger) para el manejo de zonas horarias, escalonamiento e intervalos cron personalizados.87 Elija una frecuencia preestablecida para una ejecución recurrente, o programe una ejecución única en una marca de tiempo específica. Consulte [Add a schedule trigger](#add-a-schedule-trigger) para el manejo de zonas horarias, escalonamiento, intervalos cron personalizados y ejecuciones únicas.

88 </Tab>88 </Tab>

89 89 

90 <Tab title="Evento de GitHub">90 <Tab title="GitHub event">

91 Seleccione el repositorio, el evento al que reaccionar y filtros opcionales. Consulte [Agregar un disparador de GitHub](#add-a-github-trigger) para la lista completa de eventos admitidos y campos de filtro.91 Seleccione el repositorio, el evento al que reaccionar y filtros opcionales. Consulte [Add a GitHub trigger](#add-a-github-trigger) para la lista completa de eventos admitidos y campos de filtro.

92 </Tab>92 </Tab>

93 93 

94 <Tab title="API">94 <Tab title="API">

95 Seleccione **API** aquí, luego guarde la rutina. La URL y el token se generan después de que se guarda la rutina, ya que dependen del ID de la rutina. Consulte [Agregar un disparador de API](#add-an-api-trigger) para copiar la URL y generar un token.95 Seleccione **API** aquí, luego guarde la rutina. La URL y el token se generan después de que se guarda la rutina, ya que dependen del ID de la rutina. Consulte [Add an API trigger](#add-an-api-trigger) para copiar la URL y generar un token.

96 </Tab>96 </Tab>

97 </Tabs>97 </Tabs>

98 </Step>98 </Step>

99 99 

100 <Step title="Revisar conectores">100 <Step title="Revisar conectores y permisos">

101 Todos sus [conectores MCP](/es/mcp) conectados se incluyen de forma predeterminada. Elimine cualquiera que la rutina no necesite. Los conectores dan a Claude acceso a servicios externos como Slack, Linear o Google Drive durante cada ejecución.101 Las pestañas **Connectors** y **Permissions** en la parte inferior del formulario controlan a qué puede acceder la rutina.

102 

103 En Connectors, todos sus [conectores MCP](/es/mcp) conectados se incluyen de forma predeterminada. Elimine cualquiera que la rutina no necesite. Claude puede usar todas las herramientas de un conector incluido, incluidas las escrituras, sin pedir permiso durante una ejecución.

104 

105 En Permissions, habilite **Allow unrestricted branch pushes** para cualquier repositorio donde Claude deba poder hacer push a ramas existentes en lugar de solo a las prefijadas con `claude/`.

102 </Step>106 </Step>

103 107 

104 <Step title="Crear la rutina">108 <Step title="Crear la rutina">

105 Haga clic en **Crear**. La rutina aparece en la lista y se ejecuta la próxima vez que uno de sus disparadores coincida. Para iniciar una ejecución inmediatamente, haga clic en **Ejecutar ahora** en la página de detalles de la rutina.109 Haga clic en **Create**. La rutina aparece en la lista y se ejecuta la próxima vez que uno de sus disparadores coincida. Para iniciar una ejecución inmediatamente, haga clic en **Run now** en la página de detalles de la rutina.

106 110 

107 Cada ejecución crea una nueva sesión junto con sus otras sesiones, donde puede ver qué hizo Claude, revisar cambios y crear una solicitud de extracción.111 Cada ejecución crea una nueva sesión junto con sus otras sesiones, donde puede ver qué hizo Claude, revisar cambios y crear una solicitud de extracción.

108 </Step>112 </Step>


110 114 

111### Crear desde la CLI115### Crear desde la CLI

112 116 

113Ejecute `/schedule` en cualquier sesión para crear una rutina programada conversacionalmente. También puede pasar una descripción directamente, como en `/schedule daily PR review at 9am`. Claude recorre la misma información que recopila el formulario web, luego guarda la rutina en su cuenta.117Ejecute `/schedule` en cualquier sesión para crear una rutina programada conversacionalmente. También puede pasar una descripción directamente, para una rutina recurrente como `/schedule daily PR review at 9am` o una única como `/schedule clean up feature flag in one week`. Claude recorre la misma información que recopila el formulario web, luego guarda la rutina en su cuenta.

114 118 

115`/schedule` en la CLI crea solo rutinas programadas. Para agregar un disparador de API o GitHub, edite la rutina en la web en [claude.ai/code/routines](https://claude.ai/code/routines).119`/schedule` en la CLI crea solo rutinas programadas. Para agregar un disparador de API o GitHub, edite la rutina en la web en [claude.ai/code/routines](https://claude.ai/code/routines).

116 120 

117La CLI también admite la administración de rutinas existentes. Ejecute `/schedule list` para ver todas las rutinas, `/schedule update` para cambiar una, o `/schedule run` para activarla inmediatamente.121La CLI también admite la administración de rutinas existentes. Ejecute `/schedule list` para ver todas las rutinas, `/schedule update` para cambiar una, o `/schedule run` para activarla inmediatamente.

118 122 

119### Crear desde la aplicación de escritorio

120 

121Abra la página **Horario** en la aplicación de escritorio, haga clic en **Nueva tarea** y elija **Nueva tarea remota**. La aplicación de escritorio muestra tanto tareas programadas locales como rutinas en la misma cuadrícula. Consulte [Tareas programadas de escritorio](/es/desktop-scheduled-tasks) para obtener detalles sobre la opción local.

122 

123## Configurar disparadores123## Configurar disparadores

124 124 

125Una rutina comienza cuando uno de sus disparadores coincide. Puede adjuntar cualquier combinación de disparadores de horario, API y GitHub a la misma rutina, y agregarlos o quitarlos en cualquier momento desde la sección **Seleccionar un disparador** del formulario de edición de la rutina.125Una rutina comienza cuando uno de sus disparadores coincide. Puede adjuntar cualquier combinación de disparadores de horario, API y GitHub a la misma rutina, y agregarlos o quitarlos en cualquier momento desde la sección **Seleccionar un disparador** del formulario de edición de la rutina.

126 126 

127### Agregar un disparador de horario127### Agregar un disparador de horario

128 128 

129Un disparador de horario ejecuta la rutina en una cadencia recurrente. Elija una frecuencia preestablecida en la sección **Seleccionar un disparador**: cada hora, diaria, días de semana o semanal. Los tiempos se ingresan en su zona local y se convierten automáticamente, por lo que la rutina se ejecuta a esa hora de reloj de pared independientemente de dónde se encuentre la infraestructura en la nube.129Un disparador de horario ejecuta la rutina en una cadencia recurrente, u una sola vez en un momento futuro específico. Elija una frecuencia preestablecida en la sección **Seleccionar un disparador**: cada hora, diaria, días de semana o semanal. Los tiempos se ingresan en su zona local y se convierten automáticamente, por lo que la rutina se ejecuta a esa hora de reloj de pared independientemente de dónde se encuentre la infraestructura en la nube.

130 130 

131Las ejecuciones pueden comenzar unos minutos después de la hora programada debido al escalonamiento. El desplazamiento es consistente para cada rutina.131Las ejecuciones pueden comenzar unos minutos después de la hora programada debido al escalonamiento. El desplazamiento es consistente para cada rutina.

132 132 

133Para un intervalo personalizado como cada dos horas o el primero de cada mes, elija el preestablecido más cercano en el formulario, luego ejecute `/schedule update` en la CLI para establecer una expresión cron específica. El intervalo mínimo es una hora; las expresiones que se ejecutan con más frecuencia se rechazan.133Para un intervalo personalizado como cada dos horas o el primero de cada mes, elija el preestablecido más cercano en el formulario, luego ejecute `/schedule update` en la CLI para establecer una expresión cron específica. El intervalo mínimo es una hora; las expresiones que se ejecutan con más frecuencia se rechazan.

134 134 

135#### Programar una ejecución única

136 

137Una programación única dispara la rutina una sola vez en una marca de tiempo específica. Úsela para recordarse más adelante en la semana, para abrir un PR de limpieza después de que finalice un despliegue, o para iniciar una tarea de seguimiento cuando llega un cambio ascendente. Después de que se dispara la rutina, se desactiva automáticamente y la interfaz de usuario web la marca como **Ejecutada**. Para ejecutarla nuevamente, edite la rutina y establezca una nueva hora única.

138 

139Cree una ejecución única desde la CLI describiendo la hora en lenguaje natural. Claude resuelve la frase contra la hora actual y confirma la marca de tiempo absoluta antes de guardar.

140 

141```text theme={null}

142/schedule tomorrow at 9am, summarize yesterday's merged PRs

143```

144 

145```text theme={null}

146/schedule in 2 weeks, open a cleanup PR that removes the feature flag

147```

148 

149La misma conversión de zona local a UTC que las programaciones recurrentes se aplica a las marcas de tiempo únicas.

150 

151Las ejecuciones únicas no cuentan contra el límite diario de ejecuciones de rutina. Consumen el uso de suscripción regular de su plan como cualquier otra sesión. Consulte [Uso y límites](#usage-and-limits) para obtener detalles.

152 

135### Agregar un disparador de API153### Agregar un disparador de API

136 154 

137Un disparador de API proporciona a una rutina un punto final HTTP dedicado. POSTear al punto final con el token de portador de la rutina inicia una nueva sesión y devuelve una URL de sesión. Úselo para conectar Claude Code en sistemas de alertas, canalizaciones de implementación, herramientas internas o en cualquier lugar donde pueda hacer una solicitud HTTP autenticada.155Un disparador de API proporciona a una rutina un punto final HTTP dedicado. POSTear al punto final con el token de portador de la rutina inicia una nueva sesión y devuelve una URL de sesión. Úselo para conectar Claude Code en sistemas de alertas, canalizaciones de implementación, herramientas internas o en cualquier lugar donde pueda hacer una solicitud HTTP autenticada.


144 </Step>162 </Step>

145 163 

146 <Step title="Agregar un disparador de API">164 <Step title="Agregar un disparador de API">

147 Desplácese hasta la sección **Seleccionar un disparador** debajo del prompt, haga clic en **Agregar otro disparador** y elija **API**.165 Desplácese hasta la sección **Seleccionar un disparador** debajo del cuadro **Instrucciones**, haga clic en **Agregar otro disparador** y elija **API**.

148 </Step>166 </Step>

149 167 

150 <Step title="Copiar la URL y generar un token">168 <Step title="Copiar la URL y generar un token">


273 291 

274Haga clic en cualquier ejecución para abrirla como una sesión completa. Desde allí puede ver qué hizo Claude, revisar cambios, crear una solicitud de extracción o continuar la conversación. Cada sesión de ejecución funciona como cualquier otra sesión: use el menú desplegable junto al título de la sesión para renombrar, archivar o eliminar.292Haga clic en cualquier ejecución para abrirla como una sesión completa. Desde allí puede ver qué hizo Claude, revisar cambios, crear una solicitud de extracción o continuar la conversación. Cada sesión de ejecución funciona como cualquier otra sesión: use el menú desplegable junto al título de la sesión para renombrar, archivar o eliminar.

275 293 

294<Note>

295 Un estado verde en la lista de ejecuciones significa que la sesión se inició y se cerró sin un error de infraestructura. No significa que la tarea en su prompt haya tenido éxito. Abra la ejecución para leer la transcripción y confirmar qué hizo realmente Claude. Las solicitudes de red bloqueadas, las herramientas de conectores faltantes y los fallos a nivel de tarea aparecen allí en lugar de en el indicador de estado.

296</Note>

297 

276### Editar y controlar rutinas298### Editar y controlar rutinas

277 299 

278Desde la página de detalles de la rutina puede:300Desde la página de detalles de la rutina puede:


298 320 

299Para administrar o agregar conectores fuera del formulario de rutina, visite **Configuración > Conectores** en claude.ai o use `/schedule update` en la CLI.321Para administrar o agregar conectores fuera del formulario de rutina, visite **Configuración > Conectores** en claude.ai o use `/schedule update` en la CLI.

300 322 

301### Entornos323### Entornos y acceso a la red

302 324 

303Cada rutina se ejecuta en un [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) que controla el acceso a la red, variables de entorno y scripts de configuración. Configure entornos antes de crear una rutina para dar a Claude acceso a API, instalar dependencias o restringir el alcance de la red. Consulte [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) para la guía de configuración completa.325Cada rutina se ejecuta en un [entorno en la nube](/es/claude-code-on-the-web#the-cloud-environment) que controla el acceso a la red, variables de entorno y scripts de configuración. La rutina hereda la política de red del entorno en cada ejecución.

326 

327El entorno **Default** utiliza acceso a la red **Trusted**: la [lista de permitidos predeterminada](/es/claude-code-on-the-web#default-allowed-domains) de registros de paquetes, API de proveedores de nube, registros de contenedores y dominios de desarrollo comunes es accesible, pero los dominios arbitrarios no. Las solicitudes salientes a otros hosts fallan con `403` y `x-deny-reason: host_not_allowed`. El tráfico del conector MCP se enruta a través de los servidores de Anthropic, por lo que los conectores que agregue a la rutina funcionan sin agregar sus hosts a **Dominios permitidos**. Elimine cualquier conector que no necesite en [Conectores](#conectores).

328 

329Para permitir dominios adicionales:

330 

331<Steps>

332 <Step title="Abra la rutina para editar">

333 En la página de detalles de la rutina, haga clic en el icono de lápiz para abrir **Editar rutina**.

334 </Step>

335 

336 <Step title="Abra el selector de entorno">

337 Debajo del cuadro **Instrucciones**, seleccione el icono de nube que muestra el nombre de su entorno, como **Default**.

338 </Step>

339 

340 <Step title="Abra la configuración del entorno">

341 Pase el cursor sobre el entorno en la lista y haga clic en el icono de configuración que aparece a la derecha.

342 </Step>

343 

344 <Step title="Cambie el nivel de acceso a la red">

345 En el diálogo **Actualizar entorno en la nube**, cambie **Acceso a la red** a **Personalizado** e ingrese sus dominios en **Dominios permitidos**. Marque **También incluir lista predeterminada de administradores de paquetes comunes** para mantener la [lista de permitidos predeterminada](/es/claude-code-on-the-web#default-allowed-domains) junto con sus dominios personalizados. Seleccione **Completo** en su lugar para acceso sin restricciones.

346 </Step>

347 

348 <Step title="Guardar">

349 Haga clic en **Guardar cambios**. La nueva política se aplica desde la próxima ejecución.

350 </Step>

351</Steps>

352 

353Consulte [Acceso a la red](/es/claude-code-on-the-web#network-access) para obtener detalles sobre los niveles de acceso y la lista de permitidos predeterminada.

304 354 

305## Uso y límites355## Uso y límites

306 356 


308 358 

309Cuando una rutina alcanza el límite diario o el límite de uso de su suscripción, las organizaciones con uso adicional habilitado pueden continuar ejecutando rutinas en exceso medido. Sin uso adicional, las ejecuciones adicionales se rechazan hasta que se reinicia la ventana. Habilite el uso adicional desde **Configuración > Facturación** en claude.ai.359Cuando una rutina alcanza el límite diario o el límite de uso de su suscripción, las organizaciones con uso adicional habilitado pueden continuar ejecutando rutinas en exceso medido. Sin uso adicional, las ejecuciones adicionales se rechazan hasta que se reinicia la ventana. Habilite el uso adicional desde **Configuración > Facturación** en claude.ai.

310 360 

361Las ejecuciones únicas no cuentan contra el límite diario de ejecuciones de rutina. Reducen su uso de suscripción regular como cualquier otra sesión, pero están exentas de la asignación diaria de ejecuciones de rutina por cuenta.

362 

311## Recursos relacionados363## Recursos relacionados

312 364 

313* [`/loop` e programación en sesión](/es/scheduled-tasks): programe tareas locales dentro de una sesión de CLI abierta365* [`/loop` e programación en sesión](/es/scheduled-tasks): programe tareas locales dentro de una sesión de CLI abierta

settings.md +19 −15

Details

164| `allowManagedHooksOnly` | (Solo configuraciones administradas) Solo se cargan hooks administrados, hooks SDK y hooks de plugins forzadamente habilitados en la configuración administrada `enabledPlugins`. Se bloquean hooks de usuario, proyecto y todos los demás plugins. Consulte [Configuración de hooks](#hook-configuration) | `true` |164| `allowManagedHooksOnly` | (Solo configuraciones administradas) Solo se cargan hooks administrados, hooks SDK y hooks de plugins forzadamente habilitados en la configuración administrada `enabledPlugins`. Se bloquean hooks de usuario, proyecto y todos los demás plugins. Consulte [Configuración de hooks](#hook-configuration) | `true` |

165| `allowManagedMcpServersOnly` | (Solo configuraciones administradas) Solo se respetan `allowedMcpServers` de configuraciones administradas. `deniedMcpServers` aún se fusiona desde todas las fuentes. Los usuarios aún pueden agregar MCP servers, pero solo se aplica la lista blanca definida por el administrador. Consulte [Configuración de MCP administrada](/es/mcp#managed-mcp-configuration) | `true` |165| `allowManagedMcpServersOnly` | (Solo configuraciones administradas) Solo se respetan `allowedMcpServers` de configuraciones administradas. `deniedMcpServers` aún se fusiona desde todas las fuentes. Los usuarios aún pueden agregar MCP servers, pero solo se aplica la lista blanca definida por el administrador. Consulte [Configuración de MCP administrada](/es/mcp#managed-mcp-configuration) | `true` |

166| `allowManagedPermissionRulesOnly` | (Solo configuraciones administradas) Evitar que configuraciones de usuario y proyecto definan reglas de permiso `allow`, `ask` o `deny`. Solo se aplican las reglas en configuraciones administradas. Consulte [Configuraciones solo administradas](/es/permissions#managed-only-settings) | `true` |166| `allowManagedPermissionRulesOnly` | (Solo configuraciones administradas) Evitar que configuraciones de usuario y proyecto definan reglas de permiso `allow`, `ask` o `deny`. Solo se aplican las reglas en configuraciones administradas. Consulte [Configuraciones solo administradas](/es/permissions#managed-only-settings) | `true` |

167| `alwaysThinkingEnabled` | Habilitar [pensamiento extendido](/es/model-config#extended-thinking) de forma predeterminada para todas las sesiones. Típicamente configurado a través del comando `/config` en lugar de editar directamente | `true` |167| `alwaysThinkingEnabled` | Habilitar [pensamiento extendido](/es/model-config#extended-thinking) de forma predeterminada para todas las sesiones. Típicamente configurado a través del comando `/config` en lugar de editar directamente. Para forzar el pensamiento desactivado independientemente de esta configuración, establezca [`CLAUDE_CODE_DISABLE_THINKING`](/es/env-vars) en `env` | `true` |

168| `apiKeyHelper` | Script personalizado, a ejecutarse en `/bin/sh`, para generar un valor de autenticación. Este valor se enviará como encabezados `X-Api-Key` y `Authorization: Bearer` para solicitudes de modelo | `/bin/generate_temp_api_key.sh` |168| `apiKeyHelper` | Script personalizado, a ejecutarse en `/bin/sh`, para generar un valor de autenticación. Este valor se enviará como encabezados `X-Api-Key` y `Authorization: Bearer` para solicitudes de modelo. Establezca el intervalo de actualización con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/es/env-vars) | `/bin/generate_temp_api_key.sh` |

169| `attribution` | Personalizar atribución para commits de git y solicitudes de extracción. Consulte [Configuración de atribución](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |169| `attribution` | Personalizar atribución para commits de git y solicitudes de extracción. Consulte [Configuración de atribución](#attribution-settings) | `{"commit": "🤖 Generated with Claude Code", "pr": ""}` |

170| `autoMemoryDirectory` | Directorio personalizado para almacenamiento de [memoria automática](/es/memory#storage-location). Acepta una ruta absoluta o una ruta con prefijo `~/`. Se acepta desde configuraciones de política y usuario, y desde la bandera `--settings`. No se acepta desde configuraciones de proyecto o local, ya que un repositorio clonado podría proporcionar cualquiera de los archivos para redirigir escrituras de memoria a ubicaciones sensibles | `"~/my-memory-dir"` |170| `autoMemoryDirectory` | Directorio personalizado para almacenamiento de [memoria automática](/es/memory#storage-location). Acepta una ruta absoluta o una ruta con prefijo `~/`. Se acepta desde configuraciones de política y usuario, y desde la bandera `--settings`. No se acepta desde configuraciones de proyecto o local, ya que un repositorio clonado podría proporcionar cualquiera de los archivos para redirigir escrituras de memoria a ubicaciones sensibles | `"~/my-memory-dir"` |

171| `autoMemoryEnabled` | Habilitar [memoria automática](/es/memory#enable-or-disable-auto-memory). Cuando es `false`, Claude no lee ni escribe en el directorio de memoria automática. Predeterminado: `true`. También puede alternar esto con `/memory` durante una sesión | `false` |171| `autoMemoryEnabled` | Habilitar [memoria automática](/es/memory#enable-or-disable-auto-memory). Cuando es `false`, Claude no lee ni escribe en el directorio de memoria automática. Predeterminado: `true`. También puede alternar esto con `/memory` durante una sesión. Para deshabilitar a través de variable de entorno, establezca [`CLAUDE_CODE_DISABLE_AUTO_MEMORY`](/es/env-vars) en `env` | `false` |

172| `autoMode` | Personalizar qué bloquea y permite el clasificador de [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode). Contiene matrices `environment`, `allow` y `soft_deny` de reglas en prosa. Incluya la cadena literal `"$defaults"` en una matriz para heredar las reglas integradas en esa posición. Consulte [Configurar modo automático](/es/auto-mode-config). No se lee desde configuraciones de proyecto compartidas | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |172| `autoMode` | Personalizar qué bloquea y permite el clasificador de [modo automático](/es/permission-modes#eliminate-prompts-with-auto-mode). Contiene matrices `environment`, `allow` y `soft_deny` de reglas en prosa. Incluya la cadena literal `"$defaults"` en una matriz para heredar las reglas integradas en esa posición. Consulte [Configurar modo automático](/es/auto-mode-config). No se lee desde configuraciones de proyecto compartidas | `{"soft_deny": ["$defaults", "Never run terraform apply"]}` |

173| `autoScrollEnabled` | En [renderizado de pantalla completa](/es/fullscreen), seguir la nueva salida hasta el final de la conversación. Predeterminado: `true`. Aparece en `/config` como **Auto-scroll**. Los avisos de permiso aún se desplazan a la vista cuando esto está desactivado | `false` |173| `autoScrollEnabled` | En [renderizado de pantalla completa](/es/fullscreen), seguir la nueva salida hasta el final de la conversación. Predeterminado: `true`. Aparece en `/config` como **Auto-scroll**. Los avisos de permiso aún se desplazan a la vista cuando esto está desactivado | `false` |

174| `autoUpdatesChannel` | Canal de lanzamiento a seguir para actualizaciones. Use `"stable"` para una versión que típicamente tiene aproximadamente una semana de antigüedad y omite versiones con regresiones importantes, o `"latest"` (predeterminado) para el lanzamiento más reciente | `"stable"` |174| `autoUpdatesChannel` | Canal de lanzamiento a seguir para actualizaciones. Use `"stable"` para una versión que típicamente tiene aproximadamente una semana de antigüedad y omite versiones con regresiones importantes, o `"latest"` (predeterminado) para el lanzamiento más reciente. Para deshabilitar completamente las actualizaciones automáticas, establezca [`DISABLE_AUTOUPDATER`](/es/setup#disable-auto-updates) en `env` | `"stable"` |

175| `availableModels` | Restringir qué modelos pueden seleccionar los usuarios a través de `/model`, `--model`, o `ANTHROPIC_MODEL`. No afecta la opción Predeterminado. Consulte [Restringir selección de modelo](/es/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |175| `availableModels` | Restringir qué modelos pueden seleccionar los usuarios a través de `/model`, `--model`, o `ANTHROPIC_MODEL`. No afecta la opción Predeterminado. Consulte [Restringir selección de modelo](/es/model-config#restrict-model-selection) | `["sonnet", "haiku"]` |

176| `awaySummaryEnabled` | Mostrar un resumen de sesión de una línea cuando regresa a la terminal después de estar ausente unos minutos. Establezca en `false` o desactive Resumen de sesión en `/config` para deshabilitar. Igual que [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/es/env-vars) | `true` |176| `awaySummaryEnabled` | Mostrar un resumen de sesión de una línea cuando regresa a la terminal después de estar ausente unos minutos. Establezca en `false` o desactive Resumen de sesión en `/config` para deshabilitar. Igual que [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/es/env-vars) | `true` |

177| `awsAuthRefresh` | Script personalizado que modifica el directorio `.aws` (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |177| `awsAuthRefresh` | Script personalizado que modifica el directorio `.aws` (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` |

178| `awsCredentialExport` | Script personalizado que genera JSON con credenciales de AWS (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |178| `awsCredentialExport` | Script personalizado que genera JSON con credenciales de AWS (consulte [configuración avanzada de credenciales](/es/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` |

179| `blockedMarketplaces` | (Solo configuraciones administradas) Lista negra de fuentes de marketplace. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Las fuentes bloqueadas se verifican antes de descargar, por lo que nunca tocan el sistema de archivos. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |179| `blockedMarketplaces` | (Solo configuraciones administradas) Lista negra de fuentes de marketplace. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Las fuentes bloqueadas se verifican antes de descargar, por lo que nunca tocan el sistema de archivos. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "untrusted/plugins" }]` |

180| `channelsEnabled` | (Solo configuraciones administradas) Permitir [canales](/es/channels) para la organización. En planes de Claude.ai Team y Enterprise, los canales se bloquean cuando esto no está definido o es `false`. Para cuentas de [Anthropic Console](/es/authentication#claude-console-authentication) que usan autenticación de clave API, los canales se permiten de forma predeterminada a menos que su organización implemente configuraciones administradas, en cuyo caso esta clave debe establecerse en `true` | `true` |180| `channelsEnabled` | (Solo configuraciones administradas) Permitir [canales](/es/channels) para la organización. En planes de Claude.ai Team y Enterprise, los canales se bloquean cuando esto no está definido o es `false`. Para cuentas de [Anthropic Console](/es/authentication#claude-console-authentication) que usan autenticación de clave API, los canales se permiten de forma predeterminada a menos que su organización implemente configuraciones administradas, en cuyo caso esta clave debe establecerse en `true` | `true` |

181| `claudeMdExcludes` | Patrones Glob o rutas absolutas de archivos `CLAUDE.md` a omitir al cargar [memoria](/es/memory). Los patrones coinciden con rutas de archivo absolutas. Solo se aplica a memoria de usuario, proyecto y local; los archivos de política administrada no pueden excluirse | `["**/vendor/**/CLAUDE.md"]` |

181| `cleanupPeriodDays` | Las sesiones inactivas durante más tiempo que este período se eliminan al inicio (predeterminado: 30 días, mínimo 1). Establecer en `0` se rechaza con un error de validación. También controla el corte de edad para la eliminación automática de [worktrees de subagent huérfanos](/es/worktrees#clean-up-worktrees) al inicio. Para deshabilitar completamente las escrituras de transcripción, establezca la variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/es/env-vars), o en modo no interactivo (`-p`) use la bandera `--no-session-persistence` o la opción SDK `persistSession: false`. | `20` |182| `cleanupPeriodDays` | Las sesiones inactivas durante más tiempo que este período se eliminan al inicio (predeterminado: 30 días, mínimo 1). Establecer en `0` se rechaza con un error de validación. También controla el corte de edad para la eliminación automática de [worktrees de subagent huérfanos](/es/worktrees#clean-up-worktrees) al inicio. Para deshabilitar completamente las escrituras de transcripción, establezca la variable de entorno [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/es/env-vars), o en modo no interactivo (`-p`) use la bandera `--no-session-persistence` o la opción SDK `persistSession: false`. | `20` |

182| `companyAnnouncements` | Anuncio a mostrar a los usuarios al inicio. Si se proporcionan múltiples anuncios, se alternarán aleatoriamente. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |183| `companyAnnouncements` | Anuncio a mostrar a los usuarios al inicio. Si se proporcionan múltiples anuncios, se alternarán aleatoriamente. | `["Welcome to Acme Corp! Review our code guidelines at docs.acme.com"]` |

183| `defaultShell` | Shell predeterminado para comandos `!` de cuadro de entrada. Acepta `"bash"` (predeterminado) o `"powershell"`. Establecer `"powershell"` enruta comandos `!` interactivos a través de PowerShell en Windows. Requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Consulte [herramienta PowerShell](/es/tools-reference#powershell-tool) | `"powershell"` |184| `defaultShell` | Shell predeterminado para comandos `!` de cuadro de entrada. Acepta `"bash"` (predeterminado) o `"powershell"`. Establecer `"powershell"` enruta comandos `!` interactivos a través de PowerShell en Windows. Requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Consulte [herramienta PowerShell](/es/tools-reference#powershell-tool) | `"powershell"` |


189| `disableRemoteControl` | {/* min-version: 2.1.128 */}Deshabilitar [Control Remoto](/es/remote-control): bloquea `claude remote-control`, la bandera `--remote-control`, auto-inicio y el toggle en sesión. Típicamente colocado en [configuraciones administradas](/es/permissions#managed-settings) para aplicación de MDM por dispositivo, pero funciona desde cualquier ámbito. Requiere Claude Code v2.1.128 o posterior | `true` |190| `disableRemoteControl` | {/* min-version: 2.1.128 */}Deshabilitar [Control Remoto](/es/remote-control): bloquea `claude remote-control`, la bandera `--remote-control`, auto-inicio y el toggle en sesión. Típicamente colocado en [configuraciones administradas](/es/permissions#managed-settings) para aplicación de MDM por dispositivo, pero funciona desde cualquier ámbito. Requiere Claude Code v2.1.128 o posterior | `true` |

190| `disableSkillShellExecution` | Deshabilitar la ejecución de shell en línea para bloques `` !`...` `` y ` ```! ` en [skills](/es/skills) y comandos personalizados de fuentes de usuario, proyecto, plugin o directorio adicional. Los comandos se reemplazan con `[shell command execution disabled by policy]` en lugar de ejecutarse. Los skills agrupados y administrados no se ven afectados. Más útil en [configuraciones administradas](/es/permissions#managed-settings) donde los usuarios no pueden anularlo | `true` |191| `disableSkillShellExecution` | Deshabilitar la ejecución de shell en línea para bloques `` !`...` `` y ` ```! ` en [skills](/es/skills) y comandos personalizados de fuentes de usuario, proyecto, plugin o directorio adicional. Los comandos se reemplazan con `[shell command execution disabled by policy]` en lugar de ejecutarse. Los skills agrupados y administrados no se ven afectados. Más útil en [configuraciones administradas](/es/permissions#managed-settings) donde los usuarios no pueden anularlo | `true` |

191| `editorMode` | Modo de atajos de teclado para el indicador de entrada: `"normal"` o `"vim"`. Predeterminado: `"normal"`. Aparece en `/config` como **Editor mode** | `"vim"` |192| `editorMode` | Modo de atajos de teclado para el indicador de entrada: `"normal"` o `"vim"`. Predeterminado: `"normal"`. Aparece en `/config` como **Editor mode** | `"vim"` |

192| `effortLevel` | Persistir el [nivel de esfuerzo](/es/model-config#adjust-effort-level) entre sesiones. Acepta `"low"`, `"medium"`, `"high"`, o `"xhigh"`. Se escribe automáticamente cuando ejecuta `/effort` con uno de esos valores. Consulte [Ajustar nivel de esfuerzo](/es/model-config#adjust-effort-level) para modelos compatibles | `"xhigh"` |193| `effortLevel` | Persistir el [nivel de esfuerzo](/es/model-config#adjust-effort-level) entre sesiones. Acepta `"low"`, `"medium"`, `"high"`, o `"xhigh"`. Se escribe automáticamente cuando ejecuta `/effort` con uno de esos valores. `--effort` y [`CLAUDE_CODE_EFFORT_LEVEL`](/es/env-vars) anulan esto para una sesión. Consulte [Ajustar nivel de esfuerzo](/es/model-config#adjust-effort-level) para modelos compatibles | `"xhigh"` |

193| `enableAllProjectMcpServers` | Aprobar automáticamente todos los MCP servers definidos en archivos `.mcp.json` de proyecto | `true` |194| `enableAllProjectMcpServers` | Aprobar automáticamente todos los MCP servers definidos en archivos `.mcp.json` de proyecto | `true` |

194| `enabledMcpjsonServers` | Lista de MCP servers específicos de archivos `.mcp.json` para aprobar | `["memory", "github"]` |195| `enabledMcpjsonServers` | Lista de MCP servers específicos de archivos `.mcp.json` para aprobar | `["memory", "github"]` |

195| `env` | Variables de entorno que se aplicarán a cada sesión | `{"FOO": "bar"}` |196| `env` | Variables de entorno que se aplicarán a cada sesión | `{"FOO": "bar"}` |

196| `fastModePerSessionOptIn` | Cuando es `true`, el modo rápido no persiste entre sesiones. Cada sesión comienza con el modo rápido desactivado, requiriendo que los usuarios lo habiliten con `/fast`. La preferencia de modo rápido del usuario aún se guarda. Consulte [Requerir opt-in por sesión](/es/fast-mode#require-per-session-opt-in) | `true` |197| `fastModePerSessionOptIn` | Cuando es `true`, el modo rápido no persiste entre sesiones. Cada sesión comienza con el modo rápido desactivado, requiriendo que los usuarios lo habiliten con `/fast`. La preferencia de modo rápido del usuario aún se guarda. Consulte [Requerir opt-in por sesión](/es/fast-mode#require-per-session-opt-in) | `true` |

197| `feedbackSurveyRate` | Probabilidad (0–1) de que la [encuesta de calidad de sesión](/es/data-usage#session-quality-surveys) aparezca cuando sea elegible. Establecer en `0` para suprimir completamente. Útil cuando se usa Bedrock, Vertex, o Foundry donde la tasa de muestreo predeterminada no se aplica | `0.05` |198| `feedbackSurveyRate` | Probabilidad (0–1) de que la [encuesta de calidad de sesión](/es/data-usage#session-quality-surveys) aparezca cuando sea elegible. Establecer en `0` para suprimir completamente, o establezca [`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY`](/es/env-vars) en `env`. Útil cuando se usa Bedrock, Vertex, o Foundry donde la tasa de muestreo predeterminada no se aplica | `0.05` |

198| `fileSuggestion` | Configurar un script personalizado para autocompletado de archivo `@`. Consulte [Configuración de sugerencia de archivo](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |199| `fileSuggestion` | Configurar un script personalizado para autocompletado de archivo `@`. Consulte [Configuración de sugerencia de archivo](#file-suggestion-settings) | `{"type": "command", "command": "~/.claude/file-suggestion.sh"}` |

199| `forceLoginMethod` | Use `claudeai` para restringir el inicio de sesión a cuentas de Claude.ai, `console` para restringir el inicio de sesión a cuentas de Claude Console (facturación de uso de API) | `claudeai` |200| `forceLoginMethod` | Use `claudeai` para restringir el inicio de sesión a cuentas de Claude.ai, `console` para restringir el inicio de sesión a cuentas de Claude Console (facturación de uso de API) | `claudeai` |

200| `forceLoginOrgUUID` | Requerir que el inicio de sesión pertenezca a una organización específica. Acepta una cadena UUID única, que también preselecciona esa organización durante el inicio de sesión, o una matriz de UUID donde se acepta cualquier organización listada sin preselección. Cuando se establece en configuraciones administradas, el inicio de sesión falla si la cuenta autenticada no pertenece a una organización listada; una matriz vacía falla cerrada y bloquea el inicio de sesión con un mensaje de configuración incorrecta | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` o `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |201| `forceLoginOrgUUID` | Requerir que el inicio de sesión pertenezca a una organización específica. Acepta una cadena UUID única, que también preselecciona esa organización durante el inicio de sesión, o una matriz de UUID donde se acepta cualquier organización listada sin preselección. Cuando se establece en configuraciones administradas, el inicio de sesión falla si la cuenta autenticada no pertenece a una organización listada; una matriz vacía falla cerrada y bloquea el inicio de sesión con un mensaje de configuración incorrecta | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` o `["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"]` |

201| `forceRemoteSettingsRefresh` | (Solo configuraciones administradas) Bloquear el inicio de CLI hasta que se obtengan configuraciones administradas remotas recientemente del servidor. Si la obtención falla, la CLI se cierra en lugar de continuar con configuraciones en caché o sin configuraciones. Cuando no se establece, el inicio continúa sin esperar configuraciones remotas. Consulte [aplicación de cierre de falla](/es/server-managed-settings#enforce-fail-closed-startup) | `true` |202| `forceRemoteSettingsRefresh` | (Solo configuraciones administradas) Bloquear el inicio de CLI hasta que se obtengan configuraciones administradas remotas recientemente del servidor. Si la obtención falla, la CLI se cierra en lugar de continuar con configuraciones en caché o sin configuraciones. Cuando no se establece, el inicio continúa sin esperar configuraciones remotas. Consulte [aplicación de cierre de falla](/es/server-managed-settings#enforce-fail-closed-startup) | `true` |

203| `gcpAuthRefresh` | Script personalizado que actualiza las Credenciales Predeterminadas de Aplicación de GCP cuando expiran o no se pueden cargar. Consulte [configuración avanzada de credenciales](/es/google-vertex-ai#advanced-credential-configuration) | `gcloud auth application-default login` |

202| `hooks` | Configurar comandos personalizados para ejecutarse en eventos del ciclo de vida. Consulte [documentación de hooks](/es/hooks) para el formato | Consulte [hooks](/es/hooks) |204| `hooks` | Configurar comandos personalizados para ejecutarse en eventos del ciclo de vida. Consulte [documentación de hooks](/es/hooks) para el formato | Consulte [hooks](/es/hooks) |

203| `httpHookAllowedEnvVars` | Lista blanca de nombres de variables de entorno que los hooks HTTP pueden interpolar en encabezados. Cuando se establece, el `allowedEnvVars` efectivo de cada hook es la intersección con esta lista. Sin definir = sin restricción. Las matrices se fusionan entre fuentes de configuración. Consulte [Configuración de hooks](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |205| `httpHookAllowedEnvVars` | Lista blanca de nombres de variables de entorno que los hooks HTTP pueden interpolar en encabezados. Cuando se establece, el `allowedEnvVars` efectivo de cada hook es la intersección con esta lista. Sin definir = sin restricción. Las matrices se fusionan entre fuentes de configuración. Consulte [Configuración de hooks](#hook-configuration) | `["MY_TOKEN", "HOOK_SECRET"]` |

204| `includeCoAuthoredBy` | **Obsoleto**: Use `attribution` en su lugar. Si incluir la línea `co-authored-by Claude` en commits de git y solicitudes de extracción (predeterminado: `true`) | `false` |206| `includeCoAuthoredBy` | **Obsoleto**: Use `attribution` en su lugar. Si incluir la línea `co-authored-by Claude` en commits de git y solicitudes de extracción (predeterminado: `true`) | `false` |

205| `includeGitInstructions` | Incluir instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git en el indicador del sistema de Claude (predeterminado: `true`). Establecer en `false` para eliminar ambas, por ejemplo cuando se usan skills de flujo de trabajo de git personalizados. La variable de entorno `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` tiene precedencia sobre esta configuración cuando se establece | `false` |207| `includeGitInstructions` | Incluir instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git en el indicador del sistema de Claude (predeterminado: `true`). Establecer en `false` para eliminar ambas, por ejemplo cuando se usan skills de flujo de trabajo de git personalizados. La variable de entorno `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` tiene precedencia sobre esta configuración cuando se establece | `false` |

206| `language` | Configurar el idioma de respuesta preferido de Claude (por ejemplo, `"japanese"`, `"spanish"`, `"french"`). Claude responderá en este idioma de forma predeterminada. También establece el idioma de [dictado de voz](/es/voice-dictation#change-the-dictation-language) | `"japanese"` |208| `language` | Configurar el idioma de respuesta preferido de Claude (por ejemplo, `"japanese"`, `"spanish"`, `"french"`). Claude responderá en este idioma de forma predeterminada. También establece el idioma de [dictado de voz](/es/voice-dictation#change-the-dictation-language) | `"japanese"` |

207| `minimumVersion` | Piso que evita que las actualizaciones automáticas en segundo plano e `claude update` instalen una versión por debajo de esta. Cambiar del canal `"latest"` a `"stable"` a través de `/config` le solicita que permanezca en la versión actual o permita la degradación. Elegir permanecer establece este valor. También útil en [configuraciones administradas](/es/permissions#managed-settings) para fijar un mínimo en toda la organización | `"2.1.100"` |209| `minimumVersion` | Piso que evita que las actualizaciones automáticas en segundo plano e `claude update` instalen una versión por debajo de esta. Cambiar del canal `"latest"` a `"stable"` a través de `/config` le solicita que permanezca en la versión actual o permita la degradación. Elegir permanecer establece este valor. También útil en [configuraciones administradas](/es/permissions#managed-settings) para fijar un mínimo en toda la organización | `"2.1.100"` |

208| `model` | Anular el modelo predeterminado a usar para Claude Code | `"claude-sonnet-4-6"` |210| `model` | Anular el modelo predeterminado a usar para Claude Code. `--model` y [`ANTHROPIC_MODEL`](/es/model-config#environment-variables) anulan esto para una sesión | `"claude-sonnet-4-6"` |

209| `modelOverrides` | Asignar IDs de modelo de Anthropic a IDs de modelo específicos del proveedor como ARNs de perfil de inferencia de Bedrock. Cada entrada del selector de modelo usa su valor asignado al llamar a la API del proveedor. Consulte [Anular IDs de modelo por versión](/es/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |211| `modelOverrides` | Asignar IDs de modelo de Anthropic a IDs de modelo específicos del proveedor como ARNs de perfil de inferencia de Bedrock. Cada entrada del selector de modelo usa su valor asignado al llamar a la API del proveedor. Consulte [Anular IDs de modelo por versión](/es/model-config#override-model-ids-per-version) | `{"claude-opus-4-6": "arn:aws:bedrock:..."}` |

210| `otelHeadersHelper` | Script para generar encabezados dinámicos de OpenTelemetry. Se ejecuta al inicio y periódicamente (consulte [Encabezados dinámicos](/es/monitoring-usage#dynamic-headers)) | `/bin/generate_otel_headers.sh` |212| `otelHeadersHelper` | Script para generar encabezados dinámicos de OpenTelemetry. Se ejecuta al inicio y periódicamente. Establezca el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/es/env-vars). Consulte [Encabezados dinámicos](/es/monitoring-usage#dynamic-headers) | `/bin/generate_otel_headers.sh` |

211| `outputStyle` | Configurar un estilo de salida para ajustar el indicador del sistema. Consulte [documentación de estilos de salida](/es/output-styles) | `"Explanatory"` |213| `outputStyle` | Configurar un estilo de salida para ajustar el indicador del sistema. Consulte [documentación de estilos de salida](/es/output-styles) | `"Explanatory"` |

212| `permissions` | Consulte la tabla a continuación para la estructura de permisos. | |214| `permissions` | Consulte la tabla a continuación para la estructura de permisos. | |

213| `plansDirectory` | Personalizar dónde se almacenan los archivos de plan. La ruta es relativa a la raíz del proyecto. Predeterminado: `~/.claude/plans` | `"./plans"` |215| `plansDirectory` | Personalizar dónde se almacenan los archivos de plan. La ruta es relativa a la raíz del proyecto. Predeterminado: `~/.claude/plans` | `"./plans"` |


219| `showClearContextOnPlanAccept` | Mostrar la opción "borrar contexto" en la pantalla de aceptación del plan. Predeterminado: `false`. Establecer en `true` para restaurar la opción | `true` |221| `showClearContextOnPlanAccept` | Mostrar la opción "borrar contexto" en la pantalla de aceptación del plan. Predeterminado: `false`. Establecer en `true` para restaurar la opción | `true` |

220| `showThinkingSummaries` | Mostrar resúmenes de [pensamiento extendido](/es/model-config#extended-thinking) en sesiones interactivas. Cuando no está definido o es `false` (predeterminado en modo interactivo), los bloques de pensamiento se redactan por la API y se muestran como un stub contraído. La redacción solo cambia lo que ve, no lo que genera el modelo: para reducir el gasto de pensamiento, [baje el presupuesto o deshabilite el pensamiento](/es/model-config#extended-thinking) en su lugar. El modo no interactivo (`-p`) y los llamadores de SDK siempre reciben resúmenes independientemente de esta configuración | `true` |222| `showThinkingSummaries` | Mostrar resúmenes de [pensamiento extendido](/es/model-config#extended-thinking) en sesiones interactivas. Cuando no está definido o es `false` (predeterminado en modo interactivo), los bloques de pensamiento se redactan por la API y se muestran como un stub contraído. La redacción solo cambia lo que ve, no lo que genera el modelo: para reducir el gasto de pensamiento, [baje el presupuesto o deshabilite el pensamiento](/es/model-config#extended-thinking) en su lugar. El modo no interactivo (`-p`) y los llamadores de SDK siempre reciben resúmenes independientemente de esta configuración | `true` |

221| `showTurnDuration` | Mostrar mensajes de duración de turno después de respuestas, por ejemplo "Cooked for 1m 6s". Predeterminado: `true`. Aparece en `/config` como **Show turn duration** | `false` |223| `showTurnDuration` | Mostrar mensajes de duración de turno después de respuestas, por ejemplo "Cooked for 1m 6s". Predeterminado: `true`. Aparece en `/config` como **Show turn duration** | `false` |

224| `skillOverrides` | {/* min-version: 2.1.129 */}Anulaciones de visibilidad por skill con clave de nombre de skill. El valor es `"on"`, `"name-only"`, `"user-invocable-only"`, o `"off"`. Permite ocultar o contraer un skill sin editar su SKILL.md. No se aplica a skills de plugin, que se gestionan a través de `/plugin`. El menú `/skills` escribe estos en `.claude/settings.local.json`. Consulte [Anular visibilidad de skill desde configuraciones](/es/skills#override-skill-visibility-from-settings). Requiere Claude Code v2.1.129 o posterior | `{"legacy-context": "name-only", "deploy": "off"}` |

222| `skipWebFetchPreflight` | Omitir la [verificación de seguridad de dominio de WebFetch](/es/data-usage#webfetch-domain-safety-check) que envía cada nombre de host solicitado a `api.anthropic.com` antes de obtener. Establecer en `true` en entornos que bloquean tráfico a Anthropic, como implementaciones de Bedrock, Vertex AI, o Foundry con salida restrictiva. Cuando se omite, WebFetch intenta cualquier URL sin consultar la lista de bloqueos | `true` |225| `skipWebFetchPreflight` | Omitir la [verificación de seguridad de dominio de WebFetch](/es/data-usage#webfetch-domain-safety-check) que envía cada nombre de host solicitado a `api.anthropic.com` antes de obtener. Establecer en `true` en entornos que bloquean tráfico a Anthropic, como implementaciones de Bedrock, Vertex AI, o Foundry con salida restrictiva. Cuando se omite, WebFetch intenta cualquier URL sin consultar la lista de bloqueos | `true` |

223| `spinnerTipsEnabled` | Mostrar consejos en el spinner mientras Claude está trabajando. Establecer en `false` para deshabilitar consejos (predeterminado: `true`) | `false` |226| `spinnerTipsEnabled` | Mostrar consejos en el spinner mientras Claude está trabajando. Establecer en `false` para deshabilitar consejos (predeterminado: `true`) | `false` |

224| `spinnerTipsOverride` | Anular consejos del spinner con cadenas personalizadas. `tips`: matriz de cadenas de consejo. `excludeDefault`: si es `true`, mostrar solo consejos personalizados; si es `false` o está ausente, los consejos personalizados se fusionan con consejos integrados | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |227| `spinnerTipsOverride` | Anular consejos del spinner con cadenas personalizadas. `tips`: matriz de cadenas de consejo. `excludeDefault`: si es `true`, mostrar solo consejos personalizados; si es `false` o está ausente, los consejos personalizados se fusionan con consejos integrados | `{ "excludeDefault": true, "tips": ["Use our internal tool X"] }` |


226| `sshConfigs` | Conexiones SSH a mostrar en el menú desplegable de entorno de [Desktop](/es/desktop#pre-configure-ssh-connections-for-your-team). Cada entrada requiere `id`, `name` y `sshHost`; `sshPort`, `sshIdentityFile` y `startDirectory` son opcionales. Cuando se establece en configuraciones administradas, las conexiones son de solo lectura para los usuarios. Se lee desde configuraciones administradas y de usuario solamente | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |229| `sshConfigs` | Conexiones SSH a mostrar en el menú desplegable de entorno de [Desktop](/es/desktop#pre-configure-ssh-connections-for-your-team). Cada entrada requiere `id`, `name` y `sshHost`; `sshPort`, `sshIdentityFile` y `startDirectory` son opcionales. Cuando se establece en configuraciones administradas, las conexiones son de solo lectura para los usuarios. Se lee desde configuraciones administradas y de usuario solamente | `[{"id": "dev-vm", "name": "Dev VM", "sshHost": "user@dev.example.com"}]` |

227| `statusLine` | Configurar una línea de estado personalizada para mostrar contexto. Consulte [documentación de `statusLine`](/es/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |230| `statusLine` | Configurar una línea de estado personalizada para mostrar contexto. Consulte [documentación de `statusLine`](/es/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |

228| `strictKnownMarketplaces` | (Solo configuraciones administradas) Lista blanca de fuentes de marketplace de plugins. Sin definir = sin restricciones, matriz vacía = bloqueo. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |231| `strictKnownMarketplaces` | (Solo configuraciones administradas) Lista blanca de fuentes de marketplace de plugins. Sin definir = sin restricciones, matriz vacía = bloqueo. Aplicada en adición de marketplace y en instalación, actualización, actualización y auto-actualización de plugins, por lo que un marketplace agregado antes de que se estableciera la política no puede usarse para obtener plugins. Consulte [Restricciones de marketplace administradas](/es/plugin-marketplaces#managed-marketplace-restrictions) | `[{ "source": "github", "repo": "acme-corp/plugins" }]` |

229| `teammateMode` | Cómo se muestran los compañeros de [equipo de agentes](/es/agent-teams): `auto` (elige paneles divididos en tmux o iTerm2, en proceso de otra manera), `in-process`, o `tmux`. Consulte [elegir un modo de visualización](/es/agent-teams#choose-a-display-mode) | `"in-process"` |232| `syntaxHighlightingDisabled` | Deshabilitar resaltado de sintaxis en diffs, bloques de código y vistas previas de archivos | `true` |

233| `teammateMode` | Cómo se muestran los compañeros de [equipo de agentes](/es/agent-teams): `auto` (elige paneles divididos en tmux o iTerm2, en proceso de otra manera), `in-process`, o `tmux`. `--teammate-mode` anula esto para una sesión. Consulte [elegir un modo de visualización](/es/agent-teams#choose-a-display-mode) | `"in-process"` |

230| `terminalProgressBarEnabled` | Mostrar la barra de progreso del terminal en terminales compatibles: ConEmu, Ghostty 1.2.0+, e iTerm2 3.6.6+. Predeterminado: `true`. Aparece en `/config` como **Terminal progress bar** | `false` |234| `terminalProgressBarEnabled` | Mostrar la barra de progreso del terminal en terminales compatibles: ConEmu, Ghostty 1.2.0+, e iTerm2 3.6.6+. Predeterminado: `true`. Aparece en `/config` como **Terminal progress bar** | `false` |

231| `tui` | Renderizador de interfaz de usuario de terminal. Use `"fullscreen"` para el renderizador [alt-screen](/es/fullscreen) sin parpadeos con scrollback virtualizado. Use `"default"` para el renderizador clásico de pantalla principal. Establezca a través de `/tui` | `"fullscreen"` |235| `tui` | Renderizador de interfaz de usuario de terminal. Use `"fullscreen"` para el renderizador [alt-screen](/es/fullscreen) sin parpadeos con scrollback virtualizado. Use `"default"` para el renderizador clásico de pantalla principal. Establezca a través de `/tui`. También puede establecer la variable de entorno [`CLAUDE_CODE_NO_FLICKER`](/es/env-vars) | `"fullscreen"` |

232| `useAutoModeDuringPlan` | Si el modo de plan usa semántica de modo automático cuando el modo automático está disponible. Predeterminado: `true`. No se lee desde configuraciones de proyecto compartidas. Aparece en `/config` como "Use auto mode during plan" | `false` |236| `useAutoModeDuringPlan` | Si el modo de plan usa semántica de modo automático cuando el modo automático está disponible. Predeterminado: `true`. No se lee desde configuraciones de proyecto compartidas. Aparece en `/config` como "Use auto mode during plan" | `false` |

233| `viewMode` | Modo de vista de transcripción predeterminado al inicio: `"default"`, `"verbose"`, o `"focus"`. Anula la selección pegajosa de `/focus` cuando se establece | `"verbose"` |237| `viewMode` | Modo de vista de transcripción predeterminado al inicio: `"default"`, `"verbose"`, o `"focus"`. Anula la selección pegajosa de `/focus` cuando se establece. La bandera `--verbose` anula esto para una sesión | `"verbose"` |

234| `voice` | Configuración de [dictado de voz](/es/voice-dictation): `enabled` activa el dictado, `mode` selecciona `"hold"` o `"tap"`, y `autoSubmit` envía el indicador al soltar la tecla en modo hold. Se escribe automáticamente cuando ejecuta `/voice`. Requiere una cuenta de Claude.ai | `{ "enabled": true, "mode": "tap" }` |238| `voice` | Configuración de [dictado de voz](/es/voice-dictation): `enabled` activa el dictado, `mode` selecciona `"hold"` o `"tap"`, y `autoSubmit` envía el indicador al soltar la tecla en modo hold. Se escribe automáticamente cuando ejecuta `/voice`. Requiere una cuenta de Claude.ai | `{ "enabled": true, "mode": "tap" }` |

235| `voiceEnabled` | Alias heredado para `voice.enabled`. Prefiera el objeto `voice` | `true` |239| `voiceEnabled` | Alias heredado para `voice.enabled`. Prefiera el objeto `voice` | `true` |

236| `wslInheritsWindowsSettings` | (Solo configuraciones administradas de Windows) Cuando es `true`, Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows además de `/etc/claude-code`, con fuentes de Windows teniendo prioridad. Solo se honra cuando se establece en la clave de registro HKLM o `C:\Program Files\ClaudeCode\managed-settings.json`, ambas requieren administrador de Windows para escribir. Para que la política HKCU también se aplique en WSL, la bandera debe establecerse además en HKCU mismo. No tiene efecto en Windows nativo | `true` |240| `wslInheritsWindowsSettings` | (Solo configuraciones administradas de Windows) Cuando es `true`, Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows además de `/etc/claude-code`, con fuentes de Windows teniendo prioridad. Solo se honra cuando se establece en la clave de registro HKLM o `C:\Program Files\ClaudeCode\managed-settings.json`, ambas requieren administrador de Windows para escribir. Para que la política HKCU también se aplique en WSL, la bandera debe establecerse además en HKCU mismo. No tiene efecto en Windows nativo | `true` |


244</Note>248</Note>

245 249 

246| Clave | Descripción | Ejemplo |250| Clave | Descripción | Ejemplo |

247| :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |251| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ |

248| `autoConnectIde` | Conectarse automáticamente a un IDE en ejecución cuando Claude Code se inicia desde una terminal externa. Predeterminado: `false`. Aparece en `/config` como **Auto-connect to IDE (external terminal)** cuando se ejecuta fuera de una terminal de VS Code o JetBrains | `true` |252| `autoConnectIde` | Conectarse automáticamente a un IDE en ejecución cuando Claude Code se inicia desde una terminal externa. Predeterminado: `false`. Aparece en `/config` como **Auto-connect to IDE (external terminal)** cuando se ejecuta fuera de una terminal de VS Code o JetBrains. La variable de entorno [`CLAUDE_CODE_AUTO_CONNECT_IDE`](/es/env-vars) anula esto cuando se establece | `true` |

249| `autoInstallIdeExtension` | Instalar automáticamente la extensión de Claude Code IDE cuando se ejecuta desde una terminal de VS Code. Predeterminado: `true`. Aparece en `/config` como **Auto-install IDE extension** cuando se ejecuta dentro de una terminal de VS Code o JetBrains. También puede establecer la variable de entorno [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/es/env-vars) | `false` |253| `autoInstallIdeExtension` | Instalar automáticamente la extensión de Claude Code IDE cuando se ejecuta desde una terminal de VS Code. Predeterminado: `true`. Aparece en `/config` como **Auto-install IDE extension** cuando se ejecuta dentro de una terminal de VS Code o JetBrains. También puede establecer la variable de entorno [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](/es/env-vars) | `false` |

250| `externalEditorContext` | Anteponer la respuesta anterior de Claude como contexto comentado con `#` cuando abre el editor externo con `Ctrl+G`. Predeterminado: `false`. Aparece en `/config` como **Show last response in external editor** | `true` |254| `externalEditorContext` | Anteponer la respuesta anterior de Claude como contexto comentado con `#` cuando abre el editor externo con `Ctrl+G`. Predeterminado: `false`. Aparece en `/config` como **Show last response in external editor** | `true` |

251 255 


444 448 

445**Restringir URLs de hooks HTTP:**449**Restringir URLs de hooks HTTP:**

446 450 

447Limitar qué URLs pueden dirigirse los hooks HTTP. Admite `*` como comodín para coincidencia. Cuando la matriz se define, los hooks HTTP que se dirigen a URLs que no coinciden se bloquean silenciosamente.451Limitar qué URLs pueden dirigirse los hooks HTTP. Admite `*` como comodín para coincidencia. Cuando la matriz se define, los hooks HTTP que se dirigen a URLs que no coinciden se bloquean silenciosamente. La coincidencia de nombre de host no distingue entre mayúsculas y minúsculas e ignora un punto FQDN final, coincidiendo con la semántica de DNS.

448 452 

449```json theme={null}453```json theme={null}

450{454{


472 * Dentro del nivel administrado, la precedencia es: administrado por servidor > políticas de MDM/nivel de SO > archivo basado (`managed-settings.d/*.json` + `managed-settings.json`) > registro HKCU (solo Windows). Solo se usa una fuente administrada; las fuentes no se fusionan entre niveles. Dentro del nivel basado en archivos, los archivos de entrega y el archivo base se fusionan juntos.476 * Dentro del nivel administrado, la precedencia es: administrado por servidor > políticas de MDM/nivel de SO > archivo basado (`managed-settings.d/*.json` + `managed-settings.json`) > registro HKCU (solo Windows). Solo se usa una fuente administrada; las fuentes no se fusionan entre niveles. Dentro del nivel basado en archivos, los archivos de entrega y el archivo base se fusionan juntos.

473 477 

4742. **Argumentos de línea de comandos**4782. **Argumentos de línea de comandos**

475 * Anulaciones temporales para una sesión específica479 * Anulaciones temporales para una sesión específica. JSON pasado a través de `--settings <file-or-json>` se fusiona con configuraciones basadas en archivos usando las mismas reglas que las otras capas: una clave establecida aquí anula la misma clave en configuraciones locales, de proyecto o de usuario, y omitir una clave deja el valor de capa inferior en su lugar

476 480 

4773. **Configuraciones de proyecto local** (`.claude/settings.local.json`)4813. **Configuraciones de proyecto local** (`.claude/settings.local.json`)

478 * Configuraciones personales específicas del proyecto482 * Configuraciones personales específicas del proyecto

setup.md +7 −3

Details

175 175 

176## Actualizar Claude Code176## Actualizar Claude Code

177 177 

178Las instalaciones nativas se actualizan automáticamente en segundo plano. Puede [configurar el canal de lanzamiento](#configure-release-channel) para controlar si recibe actualizaciones inmediatamente o en un cronograma estable retrasado, o [deshabilitar las actualizaciones automáticas](#disable-auto-updates) completamente. Las instalaciones de Homebrew, WinGet y [gestor de paquetes de Linux](#install-with-linux-package-managers) requieren actualizaciones manuales.178Las instalaciones nativas se actualizan automáticamente en segundo plano. Puede [configurar el canal de lanzamiento](#configure-release-channel) para controlar si recibe actualizaciones inmediatamente o en un cronograma estable retrasado, o [deshabilitar las actualizaciones automáticas](#disable-auto-updates) completamente. Las instalaciones de Homebrew, WinGet y [gestor de paquetes de Linux](#install-with-linux-package-managers) requieren actualizaciones manuales de forma predeterminada.

179 179 

180### Actualizaciones automáticas180### Actualizaciones automáticas

181 181 

182Claude Code busca actualizaciones al iniciar y periódicamente mientras se ejecuta. Las actualizaciones se descargan e instalan en segundo plano y luego surten efecto la próxima vez que inicie Claude Code.182Claude Code busca actualizaciones al iniciar y periódicamente mientras se ejecuta. Las actualizaciones se descargan e instalan en segundo plano y luego surten efecto la próxima vez que inicie Claude Code.

183 183 

184<Note>184<Note>

185 Las instalaciones de Homebrew, WinGet, apt, dnf y apk no se actualizan automáticamente. Para Homebrew, ejecute `brew upgrade claude-code` o `brew upgrade claude-code@latest`, dependiendo de qué cask instaló. Para WinGet, ejecute `winget upgrade Anthropic.ClaudeCode`. Para gestores de paquetes de Linux, consulte los comandos de actualización en [Instalar con gestores de paquetes de Linux](#install-with-linux-package-managers).185 Las instalaciones de Homebrew, WinGet, apt, dnf y apk no se actualizan automáticamente de forma predeterminada; consulte a continuación para optar por Homebrew y WinGet. Para actualizar Homebrew manualmente, ejecute `brew upgrade claude-code` o `brew upgrade claude-code@latest`, dependiendo de qué cask instaló. Para WinGet, ejecute `winget upgrade Anthropic.ClaudeCode`. Para gestores de paquetes de Linux, consulte los comandos de actualización en [Instalar con gestores de paquetes de Linux](#install-with-linux-package-managers).

186 

187 Para que Claude Code ejecute el comando de actualización por usted en Homebrew o WinGet, establezca [`CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`](/es/env-vars) en `1`. Claude Code luego ejecuta la actualización en segundo plano cuando una nueva versión está disponible y muestra un aviso de reinicio en caso de éxito. La actualización se dirige solo al paquete Claude Code y no afecta otro software que tenga instalado.

188 

189 En WinGet, la actualización puede fallar mientras Claude Code se está ejecutando porque Windows bloquea el ejecutable. En ese caso, Claude Code muestra el comando manual en su lugar. apt, dnf y apk continúan requiriendo una actualización manual porque esos comandos necesitan privilegios elevados.

186 190 

187 **Problema conocido:** Claude Code puede notificarle sobre actualizaciones antes de que la nueva versión esté disponible en estos gestores de paquetes. Si una actualización falla, espere e intente más tarde.191 **Problema conocido:** Claude Code puede notificarle sobre actualizaciones antes de que la nueva versión esté disponible en estos gestores de paquetes. Si una actualización falla, espere e intente más tarde.

188 192 


489 493 

490## Desinstalar Claude Code494## Desinstalar Claude Code

491 495 

492Para eliminar Claude Code, siga las instrucciones para su método de instalación.496Para eliminar Claude Code, siga las instrucciones para su método de instalación. Si `claude` aún se ejecuta después, probablemente tenga una segunda instalación o un alias de shell residual de un instalador anterior. Consulte [Verificar instalaciones conflictivas](/es/troubleshoot-install#check-for-conflicting-installations) para encontrarlo y eliminarlo.

493 497 

494### Instalación nativa498### Instalación nativa

495 499 

skills.md +59 −26

Details

28 28 

29### Crear su primer skill29### Crear su primer skill

30 30 

31Este ejemplo crea un skill que enseña a Claude a explicar código usando diagramas visuales y analogías. Como utiliza frontmatter predeterminado, Claude puede cargarlo automáticamente cuando pregunta cómo funciona algo, o puede invocarlo directamente con `/explain-code`.31Este ejemplo crea un skill que resume los cambios sin confirmar en su repositorio git e identifica cualquier cosa arriesgada. Extrae el diff en vivo en el prompt antes de que Claude lo lea, por lo que la respuesta se basa en su árbol de trabajo real en lugar de lo que Claude puede adivinar a partir de archivos abiertos. Claude carga el skill automáticamente cuando pregunta sobre sus cambios, o puede invocarlo directamente con `/summarize-changes`.

32 32 

33<Steps>33<Steps>

34 <Step title="Crear el directorio del skill">34 <Step title="Crear el directorio del skill">

35 Cree un directorio para el skill en su carpeta de skills personales. Los skills personales están disponibles en todos sus proyectos.35 Cree un directorio para el skill en su carpeta de skills personales. Los skills personales están disponibles en todos sus proyectos.

36 36 

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

38 mkdir -p ~/.claude/skills/explain-code38 mkdir -p ~/.claude/skills/summarize-changes

39 ```39 ```

40 </Step>40 </Step>

41 41 

42 <Step title="Escribir SKILL.md">42 <Step title="Escribir SKILL.md">

43 Cada skill necesita un archivo `SKILL.md` con dos partes: frontmatter YAML (entre marcadores `---`) que le dice a Claude cuándo usar el skill, y contenido markdown con instrucciones que Claude sigue cuando se invoca el skill. El nombre del directorio se convierte en el `/slash-command`, y la `description` ayuda a Claude a decidir cuándo cargarlo automáticamente.43 Cada skill necesita un archivo `SKILL.md` con dos partes: frontmatter YAML entre marcadores `---` que le dice a Claude cuándo usar el skill, y contenido markdown con las instrucciones que Claude sigue cuando se ejecuta el skill. El nombre del directorio se convierte en el comando que escribe, y la `description` ayuda a Claude a decidir cuándo cargar el skill automáticamente.

44 44 

45 Cree `~/.claude/skills/explain-code/SKILL.md`:45 Guarde esto en `~/.claude/skills/summarize-changes/SKILL.md`:

46 46 

47 ```yaml theme={null}47 ```yaml theme={null}

48 ---48 ---

49 description: Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks "how does this work?"49 description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.

50 ---50 ---

51 51 

52 When explaining code, always include:52 ## Current changes

53 53 

54 1. **Start with an analogy**: Compare the code to something from everyday life54 !`git diff HEAD`

55 2. **Draw a diagram**: Use ASCII art to show the flow, structure, or relationships

56 3. **Walk through the code**: Explain step-by-step what happens

57 4. **Highlight a gotcha**: What's a common mistake or misconception?

58 55 

59 Keep explanations conversational. For complex concepts, use multiple analogies.56 ## Instructions

57 

58 Summarize the changes above in two or three bullet points, then list any risks you notice such as missing error handling, hardcoded values, or tests that need updating. If the diff is empty, say there are no uncommitted changes.

60 ```59 ```

60 

61 La línea `` !`git diff HEAD` `` utiliza [inyección de contexto dinámico](#inject-dynamic-context): Claude Code ejecuta el comando y reemplaza la línea con su salida antes de que Claude vea el contenido del skill, por lo que las instrucciones llegan con el diff actual ya insertado.

61 </Step>62 </Step>

62 63 

63 <Step title="Probar el skill">64 <Step title="Probar el skill">

64 Puede probarlo de dos maneras:65 Abra un proyecto git, realice una pequeña edición en cualquier archivo e inicie Claude Code ejecutando `claude`. Puede probar el skill de dos maneras.

65 66 

66 **Dejar que Claude lo invoque automáticamente** haciendo una pregunta que coincida con la descripción:67 **Dejar que Claude lo invoque automáticamente** haciendo una pregunta que coincida con la descripción:

67 68 

68 ```text theme={null}69 ```text theme={null}

69 How does this code work?70 What did I change?

70 ```71 ```

71 72 

72 **O invocarlo directamente** con el nombre del skill:73 **O invocarlo directamente** con el nombre del skill:

73 74 

74 ```text theme={null}75 ```text theme={null}

75 /explain-code src/auth/login.ts76 /summarize-changes

76 ```77 ```

77 78 

78 De cualquier manera, Claude debe incluir una analogía y un diagrama ASCII en su explicación.79 De cualquier manera, Claude debe responder con un breve resumen de su edición y una lista de riesgos.

79 </Step>80 </Step>

80</Steps>81</Steps>

81 82 


168 169 

169Su `SKILL.md` puede contener cualquier cosa, pero pensar en cómo desea que se invoque el skill (por usted, por Claude, o ambos) y dónde desea que se ejecute (en línea o en un subagent) ayuda a guiar qué incluir. Para skills complejos, también puede [añadir archivos de apoyo](#add-supporting-files) para mantener el skill principal enfocado.170Su `SKILL.md` puede contener cualquier cosa, pero pensar en cómo desea que se invoque el skill (por usted, por Claude, o ambos) y dónde desea que se ejecute (en línea o en un subagent) ayuda a guiar qué incluir. Para skills complejos, también puede [añadir archivos de apoyo](#add-supporting-files) para mantener el skill principal enfocado.

170 171 

172Mantenga el cuerpo en sí conciso. Una vez que se carga un skill, su contenido [permanece en contexto entre turnos](#skill-content-lifecycle), por lo que cada línea es un costo de token recurrente. Indique qué hacer en lugar de narrar cómo o por qué, y aplique la misma prueba de concisión que haría para [contenido de CLAUDE.md](/es/best-practices#write-an-effective-claude-md).

173 

171### Referencia de frontmatter174### Referencia de frontmatter

172 175 

173Más allá del contenido markdown, puede configurar el comportamiento del skill utilizando campos de frontmatter YAML entre marcadores `---` en la parte superior de su archivo `SKILL.md`:176Más allá del contenido markdown, puede configurar el comportamiento del skill utilizando campos de frontmatter YAML entre marcadores `---` en la parte superior de su archivo `SKILL.md`:


305 308 

306El campo `allowed-tools` otorga permiso para las herramientas enumeradas mientras el skill está activo, por lo que Claude puede usarlas sin solicitarle aprobación. No restringe qué herramientas están disponibles: cada herramienta sigue siendo invocable, y su [configuración de permisos](/es/permissions) sigue rigiendo las herramientas que no están enumeradas.309El campo `allowed-tools` otorga permiso para las herramientas enumeradas mientras el skill está activo, por lo que Claude puede usarlas sin solicitarle aprobación. No restringe qué herramientas están disponibles: cada herramienta sigue siendo invocable, y su [configuración de permisos](/es/permissions) sigue rigiendo las herramientas que no están enumeradas.

307 310 

311Para skills verificados en el directorio `.claude/skills/` de un proyecto, `allowed-tools` entra en vigor después de que acepte el diálogo de confianza del espacio de trabajo para esa carpeta, igual que las reglas de permisos en `.claude/settings.json`. Revise los skills del proyecto antes de confiar en un repositorio, ya que un skill puede otorgarse a sí mismo acceso amplio a herramientas.

312 

308Este skill permite que Claude ejecute comandos git sin aprobación por uso cada vez que lo invoca:313Este skill permite que Claude ejecute comandos git sin aprobación por uso cada vez que lo invoca:

309 314 

310```yaml theme={null}315```yaml theme={null}


413```418```

414````419````

415 420 

416Para deshabilitar este comportamiento para skills y comandos personalizados de fuentes de usuario, proyecto, plugin o [directorio adicional](#skills-from-additional-directories), establezca `"disableSkillShellExecution": true` en [configuración](/es/settings). Cada comando se reemplaza con `[shell command execution disabled by policy]` en lugar de ejecutarse. Los skills agrupados y gestionados no se ven afectados. Esta configuración es más útil en [configuración gestionada](/es/permissions#managed-settings), donde los usuarios no pueden anularla.421Para deshabilitar este comportamiento para skills y comandos personalizados de fuentes de usuario, proyecto, plugin o [directorio adicional](#skills-from-additional-directories), establezca `"disableSkillShellExecution": true` en [settings](/es/settings). Cada comando se reemplaza con `[shell command execution disabled by policy]` en lugar de ejecutarse. Los skills agrupados y gestionados no se ven afectados. Esta configuración es más útil en [managed settings](/es/permissions#managed-settings), donde los usuarios no pueden anularla.

417 422 

418<Tip>423<Tip>

419 Para habilitar [pensamiento extendido](/es/common-workflows#use-extended-thinking-thinking-mode) en un skill, incluya la palabra "ultrathink" en cualquier lugar en el contenido de su skill.424 Para solicitar un razonamiento más profundo cuando se ejecuta un skill, incluya `ultrathink` en cualquier lugar en el contenido del skill. Consulte [Use ultrathink for one-off deep reasoning](/es/model-config#use-ultrathink-for-one-off-deep-reasoning).

420</Tip>425</Tip>

421 426 

422### Ejecutar skills en un subagent427### Ejecutar skills en un subagent


496 El campo `user-invocable` solo controla la visibilidad del menú, no el acceso a la herramienta Skill. Utilice `disable-model-invocation: true` para bloquear la invocación programática.501 El campo `user-invocable` solo controla la visibilidad del menú, no el acceso a la herramienta Skill. Utilice `disable-model-invocation: true` para bloquear la invocación programática.

497</Note>502</Note>

498 503 

504### Anular la visibilidad del skill desde la configuración

505 

506La configuración `skillOverrides` controla la visibilidad del skill desde su [settings](/es/settings) en lugar del frontmatter del skill. Úselo para skills cuyo SKILL.md no desea editar, como los que se registran en un repositorio de proyecto compartido o proporcionados por un servidor MCP. El menú `/skills` lo escribe por usted: resalte un skill y presione `Space` para ciclar entre estados, luego `Enter` para guardar en `.claude/settings.local.json`.

507 

508Cada clave es un nombre de skill y cada valor es uno de cuatro estados:

509 

510| Valor | Listado para Claude | En menú `/` |

511| :---------------------- | :------------------- | :---------- |

512| `"on"` | Nombre y descripción | Sí |

513| `"name-only"` | Solo nombre | Sí |

514| `"user-invocable-only"` | Oculto | Sí |

515| `"off"` | Oculto | Oculto |

516 

517Un 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:

518 

519```json theme={null}

520{

521 "skillOverrides": {

522 "legacy-context": "name-only",

523 "deploy": "off"

524 }

525}

526```

527 

528Los skills de plugin no se ven afectados por `skillOverrides`. Gestione esos a través de `/plugin` en su lugar.

529 

499## Compartir skills530## Compartir skills

500 531 

501Los skills se pueden distribuir en diferentes ámbitos dependiendo de su audiencia:532Los skills se pueden distribuir en diferentes ámbitos dependiendo de su audiencia:


516mkdir -p ~/.claude/skills/codebase-visualizer/scripts547mkdir -p ~/.claude/skills/codebase-visualizer/scripts

517```548```

518 549 

519Cree `~/.claude/skills/codebase-visualizer/SKILL.md`. La descripción le dice a Claude cuándo activar este Skill, y las instrucciones le dicen a Claude que ejecute el script incluido:550Guarde esto en `~/.claude/skills/codebase-visualizer/SKILL.md`. La descripción le dice a Claude cuándo activar este Skill, y las instrucciones le dicen a Claude que ejecute el script incluido. La ruta del script utiliza [`${CLAUDE_SKILL_DIR}`](#available-string-substitutions) para que se resuelva correctamente si el skill está instalado a nivel personal, de proyecto o de plugin:

520 551 

521````yaml theme={null}552````yaml theme={null}

522---553---

523name: codebase-visualizer554name: codebase-visualizer

524description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.555description: Generate an interactive collapsible tree visualization of your codebase. Use when exploring a new repo, understanding project structure, or identifying large files.

525allowed-tools: Bash(python *)556allowed-tools: Bash(python3 *)

526---557---

527 558 

528# Codebase Visualizer559# Codebase Visualizer


534Run the visualization script from your project root:565Run the visualization script from your project root:

535 566 

536```bash567```bash

537python ~/.claude/skills/codebase-visualizer/scripts/visualize.py .568python3 ${CLAUDE_SKILL_DIR}/scripts/visualize.py .

538```569```

539 570 

540This creates `codebase-map.html` in the current directory and opens it in your default browser.571This creates `codebase-map.html` in the current directory and opens it in your default browser.


547- **Directory totals**: Shows aggregate size of each folder578- **Directory totals**: Shows aggregate size of each folder

548````579````

549 580 

550Cree `~/.claude/skills/codebase-visualizer/scripts/visualize.py`. Este script escanea un árbol de directorios y genera un archivo HTML independiente con:581Guarde esto en `~/.claude/skills/codebase-visualizer/scripts/visualize.py`. Este script escanea un árbol de directorios y genera un archivo HTML independiente con:

551 582 

552* Una **barra lateral de resumen** que muestra el recuento de archivos, recuento de directorios, tamaño total y número de tipos de archivo583* Una **barra lateral de resumen** que muestra el recuento de archivos, recuento de directorios, tamaño total y número de tipos de archivo

553* Un **gráfico de barras** que desglosa la base de código por tipo de archivo (los 8 principales por tamaño)584* Un **gráfico de barras** que desglosa la base de código por tipo de archivo (los 8 principales por tamaño)

554* Un **árbol contraíble** donde puede expandir y contraer directorios, con indicadores de tipo de archivo codificados por color585* Un **árbol contraíble** donde puede expandir y contraer directorios, con indicadores de tipo de archivo codificados por color

555 586 

556El script requiere Python pero utiliza solo bibliotecas integradas, por lo que no hay paquetes para instalar:587El script requiere Python 3 pero utiliza solo bibliotecas integradas, por lo que no hay paquetes para instalar:

557 588 

558```python expandable theme={null}589```python expandable theme={null}

559#!/usr/bin/env python3590#!/usr/bin/env python3


562import json593import json

563import sys594import sys

564import webbrowser595import webbrowser

596from html import escape

565from pathlib import Path597from pathlib import Path

566from collections import Counter598from collections import Counter

567 599 


650 {lang_bars}682 {lang_bars}

651 </div>683 </div>

652 <div class="main">684 <div class="main">

653 <h1>📁 {data["name"]}</h1>685 <h1>📁 {escape(data["name"])}</h1>

654 <ul class="tree" id="root"></ul>686 <ul class="tree" id="root"></ul>

655 </div>687 </div>

656 </div>688 </div>


658 const data = {json.dumps(data)};690 const data = {json.dumps(data)};

659 const colors = {json.dumps(colors)};691 const colors = {json.dumps(colors)};

660 function fmt(b) {{ if (b < 1024) return b + ' B'; if (b < 1048576) return (b/1024).toFixed(1) + ' KB'; return (b/1048576).toFixed(1) + ' MB'; }}692 function fmt(b) {{ if (b < 1024) return b + ' B'; if (b < 1048576) return (b/1024).toFixed(1) + ' KB'; return (b/1048576).toFixed(1) + ' MB'; }}

693 function esc(s) {{ return s.replace(/[&<>"']/g, c => ({{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}}[c])); }}

661 function render(node, parent) {{694 function render(node, parent) {{

662 if (node.children) {{695 if (node.children) {{

663 const det = document.createElement('details');696 const det = document.createElement('details');

664 det.open = parent === document.getElementById('root');697 det.open = parent === document.getElementById('root');

665 det.innerHTML = `<summary><span class="folder">📁 ${{node.name}}</span><span class="size">${{fmt(node.size)}}</span></summary>`;698 det.innerHTML = `<summary><span class="folder">📁 ${{esc(node.name)}}</span><span class="size">${{fmt(node.size)}}</span></summary>`;

666 const ul = document.createElement('ul'); ul.className = 'tree';699 const ul = document.createElement('ul'); ul.className = 'tree';

667 node.children.sort((a,b) => (b.children?1:0)-(a.children?1:0) || a.name.localeCompare(b.name));700 node.children.sort((a,b) => (b.children?1:0)-(a.children?1:0) || a.name.localeCompare(b.name));

668 node.children.forEach(c => render(c, ul));701 node.children.forEach(c => render(c, ul));


670 const li = document.createElement('li'); li.appendChild(det); parent.appendChild(li);703 const li = document.createElement('li'); li.appendChild(det); parent.appendChild(li);

671 }} else {{704 }} else {{

672 const li = document.createElement('li'); li.className = 'file';705 const li = document.createElement('li'); li.className = 'file';

673 li.innerHTML = `<span class="dot" style="background:${{colors[node.ext]||'#6b7280'}}"></span>${{node.name}}<span class="size">${{fmt(node.size)}}</span>`;706 li.innerHTML = `<span class="dot" style="background:${{colors[node.ext]||'#6b7280'}}"></span>${{esc(node.name)}}<span class="size">${{fmt(node.size)}}</span>`;

674 parent.appendChild(li);707 parent.appendChild(li);

675 }}708 }}

676 }}709 }}


715 748 

716Las descripciones de skills se cargan en contexto para que Claude sepa qué está disponible. Todos los nombres de skills siempre se incluyen, pero si tiene muchos skills, las descripciones se acortan para ajustarse al presupuesto de caracteres, lo que puede eliminar las palabras clave que Claude necesita para coincidir con su solicitud. El presupuesto se escala dinámicamente al 1% de la ventana de contexto, con un respaldo de 8.000 caracteres.749Las descripciones de skills se cargan en contexto para que Claude sepa qué está disponible. Todos los nombres de skills siempre se incluyen, pero si tiene muchos skills, las descripciones se acortan para ajustarse al presupuesto de caracteres, lo que puede eliminar las palabras clave que Claude necesita para coincidir con su solicitud. El presupuesto se escala dinámicamente al 1% de la ventana de contexto, con un respaldo de 8.000 caracteres.

717 750 

718Para aumentar el límite, establezca la variable de entorno `SLASH_COMMAND_TOOL_CHAR_BUDGET`. O recorte el texto de `description` y `when_to_use` en la fuente: coloque la clave de uso al principio, ya que el texto combinado de cada entrada está limitado a 1.536 caracteres independientemente del presupuesto.751Para aumentar el límite, establezca la variable de entorno `SLASH_COMMAND_TOOL_CHAR_BUDGET`. Para liberar presupuesto para otros skills, establezca las entradas de baja prioridad en `"name-only"` en [`skillOverrides`](#override-skill-visibility-from-settings) para que se enumeren sin descripción. También puede recortar el texto de `description` y `when_to_use` en la fuente: coloque el caso de uso clave primero, ya que el texto combinado de cada entrada está limitado a 1.536 caracteres independientemente del presupuesto.

719 752 

720## Recursos relacionados753## Recursos relacionados

721 754 

statusline.md +10 −11

Details

134 134 

135**Cuándo se actualiza**135**Cuándo se actualiza**

136 136 

137Tu script se ejecuta después de cada nuevo mensaje del asistente, cuando cambia el modo de permiso, o cuando se activa/desactiva el modo vim. Las actualizaciones se debounce en 300ms, lo que significa que los cambios rápidos se agrupan y tu script se ejecuta una vez que las cosas se estabilizan. Si una nueva actualización se activa mientras tu script aún se está ejecutando, la ejecución en vuelo se cancela. Si editas tu script, los cambios no aparecerán hasta que tu próxima interacción con Claude Code active una actualización.137Tu script se ejecuta después de cada nuevo mensaje del asistente, después de que `/compact` finaliza, cuando cambia el modo de permiso, o cuando se activa/desactiva el modo vim. Las actualizaciones se debounce en 300ms, lo que significa que los cambios rápidos se agrupan y tu script se ejecuta una vez que las cosas se estabilizan. Si una nueva actualización se activa mientras tu script aún se está ejecutando, la ejecución en vuelo se cancela. Si editas tu script, los cambios no aparecerán hasta que tu próxima interacción con Claude Code active una actualización.

138 138 

139Estos disparadores pueden quedarse en silencio cuando la sesión principal está inactiva, por ejemplo mientras un coordinador espera en subagentes de fondo. Para mantener segmentos basados en tiempo o de fuentes externas actuales durante períodos inactivos, establece [`refreshInterval`](#manually-configure-a-status-line) para también volver a ejecutar el comando en un temporizador fijo.139Estos disparadores pueden quedarse en silencio cuando la sesión principal está inactiva, por ejemplo mientras un coordinador espera en subagentes de fondo. Para mantener segmentos basados en tiempo o de fuentes externas actuales durante períodos inactivos, establece [`refreshInterval`](#manually-configure-a-status-line) para también volver a ejecutar el comando en un temporizador fijo.

140 140 


161| `cost.total_duration_ms` | Tiempo total transcurrido desde que comenzó la sesión, en milisegundos |161| `cost.total_duration_ms` | Tiempo total transcurrido desde que comenzó la sesión, en milisegundos |

162| `cost.total_api_duration_ms` | Tiempo total dedicado a esperar respuestas de API en milisegundos |162| `cost.total_api_duration_ms` | Tiempo total dedicado a esperar respuestas de API en milisegundos |

163| `cost.total_lines_added`, `cost.total_lines_removed` | Líneas de código cambiadas |163| `cost.total_lines_added`, `cost.total_lines_removed` | Líneas de código cambiadas |

164| `context_window.total_input_tokens`, `context_window.total_output_tokens` | Conteos de tokens acumulativos en toda la sesión |164| `context_window.total_input_tokens`, `context_window.total_output_tokens` | Conteos de tokens actualmente en la ventana de contexto, de la respuesta de API más reciente. La entrada incluye lecturas y escrituras de caché. Antes de v2.1.132 estos eran totales acumulativos de sesión |

165| `context_window.context_window_size` | Tamaño máximo de la ventana de contexto en tokens. 200000 por defecto, o 1000000 para modelos con contexto extendido. |165| `context_window.context_window_size` | Tamaño máximo de la ventana de contexto en tokens. 200000 por defecto, o 1000000 para modelos con contexto extendido. |

166| `context_window.used_percentage` | Porcentaje precalculado de ventana de contexto utilizada |166| `context_window.used_percentage` | Porcentaje precalculado de ventana de contexto utilizada |

167| `context_window.remaining_percentage` | Porcentaje precalculado de ventana de contexto restante |167| `context_window.remaining_percentage` | Porcentaje precalculado de ventana de contexto restante |


215 "total_lines_removed": 23215 "total_lines_removed": 23

216 },216 },

217 "context_window": {217 "context_window": {

218 "total_input_tokens": 15234,218 "total_input_tokens": 15500,

219 "total_output_tokens": 4521,219 "total_output_tokens": 1200,

220 "context_window_size": 200000,220 "context_window_size": 200000,

221 "used_percentage": 8,221 "used_percentage": 8,

222 "remaining_percentage": 92,222 "remaining_percentage": 92,


272 272 

273 **Campos que pueden ser `null`**:273 **Campos que pueden ser `null`**:

274 274 

275 * `context_window.current_usage`: `null` antes de la primera llamada a API en una sesión275 * `context_window.current_usage`: `null` antes de la primera llamada a API en una sesión, y nuevamente después de `/compact` hasta que la siguiente llamada a API lo repuebla

276 * `context_window.used_percentage`, `context_window.remaining_percentage`: pueden ser `null` al principio de la sesión276 * `context_window.used_percentage`, `context_window.remaining_percentage`: pueden ser `null` al principio de la sesión

277 277 

278 Maneja campos faltantes con acceso condicional y valores nulos con valores predeterminados de respaldo en tus scripts.278 Maneja campos faltantes con acceso condicional y valores nulos con valores predeterminados de respaldo en tus scripts.


280 280 

281### Campos de ventana de contexto281### Campos de ventana de contexto

282 282 

283El objeto `context_window` proporciona dos formas de rastrear el uso de contexto:283El objeto `context_window` describe la ventana de contexto en vivo de la respuesta de API más reciente. A partir de v2.1.132, `total_input_tokens` y `total_output_tokens` reflejan el uso actual del contexto, no totales acumulativos de sesión.

284 284 

285* **Totales acumulativos** (`total_input_tokens`, `total_output_tokens`): suma de todos los tokens en toda la sesión, útil para rastrear el consumo total285* **Totales combinados** (`total_input_tokens`, `total_output_tokens`): tokens actualmente en la ventana de contexto. `total_input_tokens` es la suma de `input_tokens`, `cache_creation_input_tokens`, y `cache_read_input_tokens`; `total_output_tokens` son los tokens de salida de la respuesta más reciente. Ambos son `0` antes de la primera respuesta de API.

286* **Uso actual** (`current_usage`): conteos de tokens de la llamada a API más reciente, úsalo para un porcentaje de contexto preciso ya que refleja el estado real del contexto286* **Uso por componente** (`current_usage`): los mismos conteos de tokens desglosados por categoría. Usa esto cuando necesites separar los aciertos de caché de la entrada fresca.

287 287 

288El objeto `current_usage` contiene:288El objeto `current_usage` contiene:

289 289 


296 296 

297Si calculas el porcentaje de contexto manualmente desde `current_usage`, usa la misma fórmula de solo entrada para coincidir con `used_percentage`.297Si calculas el porcentaje de contexto manualmente desde `current_usage`, usa la misma fórmula de solo entrada para coincidir con `used_percentage`.

298 298 

299El objeto `current_usage` es `null` antes de la primera llamada a API en una sesión.299El objeto `current_usage` es `null` antes de la primera llamada a API en una sesión, y nuevamente inmediatamente después de `/compact` hasta que la siguiente llamada a API lo repuebla.

300 300 

301## Ejemplos301## Ejemplos

302 302 


1011 1011 

1012**El porcentaje de contexto muestra valores inesperados**1012**El porcentaje de contexto muestra valores inesperados**

1013 1013 

1014* Usa `used_percentage` para un estado de contexto preciso en lugar de totales acumulativos1014* Usa `used_percentage` para el estado de contexto más simple y preciso

1015* Los `total_input_tokens` y `total_output_tokens` son acumulativos en toda la sesión y pueden exceder el tamaño de la ventana de contexto

1016* El porcentaje de contexto puede diferir de la salida `/context` debido a cuándo se calcula cada uno1015* El porcentaje de contexto puede diferir de la salida `/context` debido a cuándo se calcula cada uno

1017 1016 

1018**Los enlaces OSC 8 no son clickeables**1017**Los enlaces OSC 8 no son clickeables**

Details

24En la mayoría de terminales también puedes presionar Shift+Enter, pero el soporte varía según el emulador de terminal:24En la mayoría de terminales también puedes presionar Shift+Enter, pero el soporte varía según el emulador de terminal:

25 25 

26| Terminal | Shift+Enter para salto de línea |26| Terminal | Shift+Enter para salto de línea |

27| :-------------------------------------------------------------------------------- | :------------------------------------------ |27| :---------------------------------------------------------------------- | :------------------------------------------ |

28| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal | Funciona sin configuración |28| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funciona sin configuración |

29| VS Code, Cursor, Windsurf, Alacritty, Zed | Ejecuta `/terminal-setup` una vez |29| VS Code, Cursor, Windsurf, Alacritty, Zed | Ejecuta `/terminal-setup` una vez |

30| Windows Terminal, gnome-terminal, IDEs de JetBrains como PyCharm y Android Studio | No disponible; usa Ctrl+J o `\` luego Enter |30| gnome-terminal, IDEs de JetBrains como PyCharm y Android Studio | No disponible; usa Ctrl+J o `\` luego Enter |

31 31 

32Para VS Code, Cursor, Windsurf, Alacritty y Zed, `/terminal-setup` escribe Shift+Enter y otros atajos de teclado en el archivo de configuración de la terminal. En VS Code, Cursor y Windsurf también establece `terminal.integrated.mouseWheelScrollSensitivity` en la configuración del editor para un desplazamiento más suave en [modo pantalla completa](/es/fullscreen). Los enlaces existentes y la configuración se dejan en su lugar; si ve un mensaje como `VSCode terminal Shift+Enter key binding already configured`, no se realizó ningún cambio. Ejecuta `/terminal-setup` directamente en la terminal del host en lugar de dentro de tmux o screen, ya que necesita escribir en la configuración de la terminal del host.32Para VS Code, Cursor, Windsurf, Alacritty y Zed, `/terminal-setup` escribe Shift+Enter y otros atajos de teclado en el archivo de configuración de la terminal. En VS Code, Cursor y Windsurf también establece `terminal.integrated.mouseWheelScrollSensitivity` en la configuración del editor para un desplazamiento más suave en [modo pantalla completa](/es/fullscreen). Los enlaces existentes y la configuración se dejan en su lugar; si ves un mensaje como `VSCode terminal Shift+Enter key binding already configured`, no se realizó ningún cambio. Ejecuta `/terminal-setup` directamente en la terminal del host en lugar de dentro de tmux o screen, ya que necesita escribir en la configuración de la terminal del host.

33 33 

34Si estás ejecutando dentro de tmux, Shift+Enter también requiere la [configuración de tmux a continuación](#configure-tmux) incluso cuando la terminal externa la soporta.34Si estás ejecutando dentro de tmux, Shift+Enter también requiere la [configuración de tmux a continuación](#configure-tmux) incluso cuando la terminal externa la soporta.

35 35