SpyBara
Go Premium

Documentation 2026-09-28 22:59 UTC to 2026-09-29 03:02 UTC

116 files changed +3,935 −2,335. View all changes and history on the product overview
2026
Tue 29 03:02 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

111 Responder a menús y solicitudes111 Responder a menús y solicitudes

112</h2>112</h2>

113 113 

114En modo lector de pantalla, los menús que normalmente navegaría con las teclas de flecha, incluidas las solicitudes de permiso, se convierten en listas numeradas. Claude Code anuncia cada opción como una línea numerada, seguida de una solicitud `Enter selection` que nombra el rango válido. Escriba el número de la opción que desea y presione Enter.114En modo lector de pantalla, los menús que normalmente navegaría con las teclas de flecha, incluidas las solicitudes de permiso, se convierten en listas numeradas. Claude Code anuncia cada opción como una línea numerada, seguida de una solicitud `Select with numbers` que nombra el rango válido. Escriba el número de la opción que desea y presione Enter.

115 115 

116* Presione Escape para cancelar un menú cuya solicitud termina con `or Escape to cancel`.116* Presione Escape para cancelar un menú cuya solicitud termina con `or Escape to cancel`.

117* Si escribe un número que no está en la lista, Claude Code anuncia el rango válido y le permite intentar de nuevo.117* Si escribe un número que no está en la lista, Claude Code anuncia el rango válido y le permite intentar de nuevo.

admin-setup.md +2 −2

Details

97| :- | :- | :- |97| :- | :- | :- |

98| [Permission rules](/docs/es/permissions) | Permitir, preguntar o denegar herramientas y comandos específicos | `permissions.allow`, `permissions.deny` |98| [Permission rules](/docs/es/permissions) | Permitir, preguntar o denegar herramientas y comandos específicos | `permissions.allow`, `permissions.deny` |

99| [Permission lockdown](/docs/es/permissions#managed-only-settings) | Hacer que la configuración administrada sea la [única fuente de configuración de reglas de permisos](/docs/es/settings-reference#allowmanagedpermissionrulesonly). Deshabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |99| [Permission lockdown](/docs/es/permissions#managed-only-settings) | Hacer que la configuración administrada sea la [única fuente de configuración de reglas de permisos](/docs/es/settings-reference#allowmanagedpermissionrulesonly). Deshabilitar `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

100| [Starting permission mode](/docs/es/permission-modes#which-mode-a-session-starts-in) | Elegir el modo de permisos en el que comienzan las sesiones de terminal de los desarrolladores en lugar del modo de permisos inicial integrado, o eliminar el modo automático. La extensión de VS Code lee un `defaultMode` que establece solo en planes Pro, Max y Team; [Switch permission modes](/docs/es/permission-modes#switch-permission-modes) enumera lo que lee la extensión | `permissions.defaultMode`, `permissions.disableAutoMode` |100| [Starting permission mode](/docs/es/permission-modes#which-mode-a-session-starts-in) | Elegir el modo de permisos en el que comienzan las sesiones de terminal de los desarrolladores en lugar del modo de permisos inicial integrado, o eliminar el modo automático. [Switch permission modes](/docs/es/permission-modes#switch-permission-modes) enumera cuándo la extensión de VS Code lee un `defaultMode` que establece | `permissions.defaultMode`, `permissions.disableAutoMode` |

101| [Sandboxing](/docs/es/sandboxing) | Aislamiento de sistema de archivos y red a nivel del SO con listas de permitidos de dominio | `sandbox.enabled`, `sandbox.network.allowedDomains` |101| [Sandboxing](/docs/es/sandboxing) | Aislamiento de sistema de archivos y red a nivel del SO con listas de permitidos de dominio | `sandbox.enabled`, `sandbox.network.allowedDomains` |

102| [Managed policy CLAUDE.md](/docs/es/memory#deploy-organization-wide-claude-md) | Instrucciones de toda la organización cargadas en cada sesión, no se pueden excluir | Archivo en la ruta de política administrada |102| [Managed policy CLAUDE.md](/docs/es/memory#deploy-organization-wide-claude-md) | Instrucciones de toda la organización cargadas en cada sesión, no se pueden excluir | Archivo en la ruta de política administrada |

103| [MCP server control](/docs/es/managed-mcp) | Restringir qué servidores MCP pueden agregar o conectar los usuarios, implementar un conjunto fijo, o proporcionar servidores remotos a cada usuario junto con los suyos propios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, o un archivo `managed-mcp.json` implementado |103| [MCP server control](/docs/es/managed-mcp) | Restringir qué servidores MCP pueden agregar o conectar los usuarios, implementar un conjunto fijo, o proporcionar servidores remotos a cada usuario junto con los suyos propios | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, o un archivo `managed-mcp.json` implementado |


105| [Customization lockdown](/docs/es/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks y servidores MCP de fuentes de usuario y proyecto, para que solo provengan de plugins o configuración administrada. Bloquear skills también detiene los [skills que los desarrolladores habilitan en claude.ai](/docs/es/skills#where-synced-skills-load) de sincronizarse | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/es/settings-reference#strictpluginonlycustomization) | Bloquear skills, agents, hooks y servidores MCP de fuentes de usuario y proyecto, para que solo provengan de plugins o configuración administrada. Bloquear skills también detiene los [skills que los desarrolladores habilitan en claude.ai](/docs/es/skills#where-synced-skills-load) de sincronizarse | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/es/settings-reference#syncclaudeaiskills) | Evitar que Claude Code cargue los [skills](/docs/es/skills#how-synced-skills-behave) y [plugins](/docs/es/plugins/loading#synced-plugins) que los desarrolladores habilitan en claude.ai. Si desactiva Skills para su organización en claude.ai, Claude Code deja de sincronizar ambos, y en v2.1.273 o posterior también elimina los que ya sincronizó. Para detener uno u otro sin desactivar Skills, establezca su clave en `false` en la configuración administrada | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/es/settings-reference#syncclaudeaiskills) | Evitar que Claude Code cargue los [skills](/docs/es/skills#how-synced-skills-behave) y [plugins](/docs/es/plugins/loading#synced-plugins) que los desarrolladores habilitan en claude.ai. Si desactiva Skills para su organización en claude.ai, Claude Code deja de sincronizar ambos, y en v2.1.273 o posterior también elimina los que ya sincronizó. Para detener uno u otro sin desactivar Skills, establezca su clave en `false` en la configuración administrada | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/es/settings-reference#allowmanagedhooksonly) | Restringir qué hooks se ejecutan y restringir URLs de hooks HTTP; consulte [lo que se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para la lista completa de efectos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/es/settings-reference#allowmanagedhooksonly) | Restringir qué hooks se ejecutan y restringir URLs de hooks HTTP; consulte [lo que se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para la lista completa de efectos | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Login enforcement](/docs/es/settings-reference#forceloginmethod) | Restringir el inicio de sesión a un método específico u organización de Anthropic. La restricción de método se aplica en la extensión de VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, y la pantalla de inicio de sesión interactivo del terminal, a la que se accede mediante `/login` u onboarding de primera ejecución, preselecciona el método sin aplicarlo; Claude Code verifica la organización para inicios de sesión de cuenta claude.ai en el terminal, extensión de VS Code y Agent SDK, y no la verifica para inicios de sesión de Claude Console o para inicio de sesión de [gateway](/docs/es/claude-apps-gateway). Antes de v2.1.212, solo los inicios de sesión del terminal aplicaban cualquiera de las claves. Cuando se establece, las sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` se bloquean al inicio; las sesiones del proveedor de nube no se ven afectadas | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/es/settings-reference#forceloginmethod) | Restringir el inicio de sesión a un método específico u organización de Anthropic. La restricción de método se aplica en la extensión de VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, y la pantalla de inicio de sesión interactivo del terminal, a la que se accede mediante `/login` u onboarding de primera ejecución, preselecciona el método sin aplicarlo; Claude Code verifica la organización para inicios de sesión de cuenta claude.ai en el terminal, extensión de VS Code y Agent SDK, y no la verifica para inicios de sesión de Claude Console o para inicio de sesión de [gateway](/docs/es/claude-apps-gateway). Antes de v2.1.212, solo los inicios de sesión del terminal aplicaban cualquiera de las claves. Cuando se establece, las sesiones autenticadas por `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` se bloquean al inicio; las sesiones del proveedor de nube no se ven afectadas a menos que una de esas credenciales, o una clave API guardada por un inicio de sesión anterior de Claude Console, también esté presente | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Disable agent view](/docs/es/agent-view#how-background-sessions-are-hosted) | Desactivar `claude agents`, `--bg`, `/background` y el supervisor bajo demanda | `disableAgentView` |109| [Disable agent view](/docs/es/agent-view#how-background-sessions-are-hosted) | Desactivar `claude agents`, `--bg`, `/background` y el supervisor bajo demanda | `disableAgentView` |

110| [Configure the corporate launcher](/docs/es/corporate-launcher) | Prefijo del [supervisor de agente de fondo](/docs/es/agent-view#how-background-sessions-are-hosted), sus workers y los [otros procesos de fondo cubiertos](/docs/es/corporate-launcher#what-the-launcher-covers) con un lanzador corporativo requerido en lugar de desactivar la vista de agente | `processWrapper` |110| [Configure the corporate launcher](/docs/es/corporate-launcher) | Prefijo del [supervisor de agente de fondo](/docs/es/agent-view#how-background-sessions-are-hosted), sus workers y los [otros procesos de fondo cubiertos](/docs/es/corporate-launcher#what-the-launcher-covers) con un lanzador corporativo requerido en lugar de desactivar la vista de agente | `processWrapper` |

111| [Model restrictions](/docs/es/model-config#restrict-model-selection) | `availableModels` filtra qué modelos aparecen en el selector. Agregar `enforceAvailableModels` también restringe el modelo predeterminado seleccionado automáticamente. Consulte [surface coverage](/docs/es/model-config#surface-coverage) para ver cómo esta configuración llega a la CLI, web e IDE | `availableModels`, `enforceAvailableModels` |111| [Model restrictions](/docs/es/model-config#restrict-model-selection) | `availableModels` filtra qué modelos aparecen en el selector. Agregar `enforceAvailableModels` también restringe el modelo predeterminado seleccionado automáticamente. Consulte [surface coverage](/docs/es/model-config#surface-coverage) para ver cómo esta configuración llega a la CLI, web e IDE | `availableModels`, `enforceAvailableModels` |

advisor.md +3 −2

Details

101| - | - | - |101| - | - | - |

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

103| Sonnet 4.6 | Fable, Opus, Sonnet | |103| Sonnet 4.6 | Fable, Opus, Sonnet | |

104| Sonnet 5 | Fable, Opus 4.7 o posterior, Sonnet 5 | Un advisor Sonnet 4.6 se rechaza, y la API rechaza un advisor Opus 4.6 |104| Sonnet 5.5 o Sonnet 5 | Fable, Opus 4.7 o posterior, Sonnet 5 o posterior | Un advisor Sonnet 4.6 se rechaza, y la API rechaza un advisor Opus 4.6 |

105| Opus 4.6 | Fable, Opus, Sonnet 5 | Un advisor Sonnet 4.6 se rechaza |105| Opus 4.6 | Fable, Opus, Sonnet 5 o posterior | Un advisor Sonnet 4.6 se rechaza |

106| Opus 4.7 u Opus 4.8 | Fable, y Opus 4.7 o posterior | Un advisor Opus 4.6 o Sonnet se rechaza |106| Opus 4.7 u Opus 4.8 | Fable, y Opus 4.7 o posterior | Un advisor Opus 4.6 o Sonnet se rechaza |

107| Opus 5.5 u Opus 5 | Fable, y Opus 5 o posterior | Un advisor Opus 4.6 o Sonnet se rechaza, y la API rechaza un advisor Opus 4.7 u Opus 4.8 |107| Opus 5.5 u Opus 5 | Fable, y Opus 5 o posterior | Un advisor Opus 4.6 o Sonnet se rechaza, y la API rechaza un advisor Opus 4.7 u Opus 4.8 |

108| Fable 5 | Fable 5.1 o Fable 5 | Un advisor Opus o Sonnet se rechaza |108| Fable 5 | Fable 5.1 o Fable 5 | Un advisor Opus o Sonnet se rechaza |


161 161 

162* **Reviewed**: la línea confirma que el advisor ha revisado la conversación. Cuando el advisor devolvió orientación legible, presione `Ctrl+O` para leerla.162* **Reviewed**: la línea confirma que el advisor ha revisado la conversación. Cuando el advisor devolvió orientación legible, presione `Ctrl+O` para leerla.

163* **Declined**: la línea lee `Advisor declined to advise on this request`. Si el advisor proporcionó una razón, presione `Ctrl+O` para leerla.163* **Declined**: la línea lee `Advisor declined to advise on this request`. Si el advisor proporcionó una razón, presione `Ctrl+O` para leerla.

164* **Unavailable**: la llamada del advisor falló, y la línea lee `Advisor unavailable (<error_code>)`, donde `<error_code>` es el código que devolvió la llamada.

164 165 

165Claude generalmente sigue la orientación del advisor, pero se adapta cuando su propia evidencia contradice una afirmación específica: si un paso recomendado falla cuando se intenta, o el contenido del archivo contradice el consejo, Claude expone el conflicto en lugar de seguir la orientación incondicionalmente.166Claude generalmente sigue la orientación del advisor, pero se adapta cuando su propia evidencia contradice una afirmación específica: si un paso recomendado falla cuando se intenta, o el contenido del archivo contradice el consejo, Claude expone el conflicto en lugar de seguir la orientación incondicionalmente.

166 167 

Details

129Consulte la referencia de TypeScript [`tool()`](/docs/es/agent-sdk/typescript#tool) o la referencia de Python [`@tool`](/docs/es/agent-sdk/python#tool) para obtener detalles completos de parámetros, incluidos formatos de entrada de JSON Schema y estructura de valores de retorno.129Consulte la referencia de TypeScript [`tool()`](/docs/es/agent-sdk/typescript#tool) o la referencia de Python [`@tool`](/docs/es/agent-sdk/python#tool) para obtener detalles completos de parámetros, incluidos formatos de entrada de JSON Schema y estructura de valores de retorno.

130 130 

131<Tip>131<Tip>

132 Para hacer un parámetro opcional: en TypeScript, agregue `.default()` al campo Zod. En Python, el esquema de diccionario 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 manejador. La herramienta [`get_precipitation_chance` a continuación](#add-more-tools) muestra ambos patrones.132 Para hacer un parámetro opcional: en TypeScript, agregue `.optional()` al campo Zod y aplique el valor predeterminado en el manejador. En Python, el esquema de diccionario 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 manejador. La herramienta [`get_precipitation_chance` a continuación](#add-more-tools) muestra ambos patrones.

133</Tip>133</Tip>

134 134 

135<h3 id="call-a-custom-tool">135<h3 id="call-a-custom-tool">


248 .int()248 .int()

249 .min(1)249 .min(1)

250 .max(24)250 .max(24)

251 .default(12) // .default() makes the parameter optional251 .optional() // .optional() lets Claude omit the parameter

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

253 },253 },

254 async (args) => {254 async (args) => {

255 const hours = args.hours ?? 12; // Apply the default in the handler

255 const response = await fetch(256 const response = await fetch(

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

257 );258 );

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

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

260 261 

261 return {262 return {

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

263 };264 };

264 }265 }

265 );266 );


469 Imágenes470 Imágenes

470</h3>471</h3>

471 472 

472Un bloque de imagen lleva los bytes de la 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 devolverlos. El resultado se procesa como entrada visual.473Un bloque de imagen lleva los bytes de la 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 devolverlos. Una imagen PNG, JPEG, GIF o WebP llega a Claude como entrada visual; una imagen de cualquier otro tipo se guarda en disco y Claude recibe su ruta de archivo como texto en su lugar.

473 474 

474| Campo | Tipo | Notas |475| Campo | Tipo | Notas |

475| :- | :- | :- |476| :- | :- | :- |


538 Recursos539 Recursos

539</h3>540</h3>

540 541 

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

542 543 

543| Campo | Tipo | Notas |544| Campo | Tipo | Notas |

544| :- | :- | :- |545| :- | :- | :- |


548| `resource.blob` | `string` | El contenido codificado en base64, si es binario. Solo TypeScript: el SDK de Python elimina recursos binarios del resultado de la herramienta y registra una advertencia |549| `resource.blob` | `string` | El contenido codificado en base64, si es binario. Solo TypeScript: el SDK de Python elimina recursos binarios del resultado de la herramienta y registra una advertencia |

549| `resource.mimeType` | `string` | Opcional |550| `resource.mimeType` | `string` | Opcional |

550 551 

551Este 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 adelante; el SDK no lee desde esa ruta.552Este ejemplo muestra un bloque de recurso devuelto desde dentro de un controlador de herramienta. El SDK no lee desde el URI del ejemplo, `file:///tmp/report.md`.

552 553 

553<CodeGroup>554<CodeGroup>

554 ```typescript TypeScript theme={null}555 ```typescript TypeScript theme={null}


572 {573 {

573 "type": "resource",574 "type": "resource",

574 "resource": {575 "resource": {

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

576 "mimeType": "text/markdown",577 "mimeType": "text/markdown",

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

578 },579 },

Details

6 6 

7> Encuentra un proyecto completo y ejecutable del Agent SDK o una receta guiada en el Claude Cookbook que coincida con lo que deseas construir.7> Encuentra un proyecto completo y ejecutable del Agent SDK o una receta guiada en el Claude Cookbook que coincida con lo que deseas construir.

8 8 

9Esta página te dirige a proyectos completos y ejecutables del Agent SDK y recetas guiadas del Claude Cookbook. Las aplicaciones TypeScript se encuentran en el repositorio [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos), y las recetas de Python se encuentran en el [Claude Cookbook](https://platform.claude.com/cookbook).9Esta página te dirige a proyectos completos y ejecutables del Agent SDK y recetas guiadas del Claude Cookbook. Las aplicaciones se encuentran en el repositorio [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos), y las recetas de Python se encuentran en el [Claude Cookbook](https://platform.claude.com/cookbook).

10 10 

11<h2 id="run-a-minimal-agent-first">11<h2 id="run-a-minimal-agent-first">

12 Ejecuta un agente mínimo primero12 Ejecuta un agente mínimo primero


18 18 

19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world): un proyecto TypeScript mínimo para clonar cuando deseas comenzar desde el código del repositorio19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world): un proyecto TypeScript mínimo para clonar cuando deseas comenzar desde el código del repositorio

20 20 

21<h2 id="explore-a-typescript-application">21<h2 id="explore-a-demo-application">

22 Explora una aplicación TypeScript22 Explora una aplicación de demostración

23</h2>23</h2>

24 24 

25Las aplicaciones TypeScript en [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) son demostraciones para desarrollo local, desde un cliente de correo electrónico hasta un sistema de investigación multiagente. Clona la demostración cuya estructura coincida con lo que estás construyendo.25Las aplicaciones en [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) son demostraciones para desarrollo local, desde un cliente de correo electrónico hasta un sistema de investigación multiagente. Clona la demostración cuya estructura coincida con lo que estás construyendo.

26 26 

27<h2 id="work-through-a-python-recipe">27<h2 id="work-through-a-python-recipe">

28 Trabaja a través de una receta de Python28 Trabaja a través de una receta de Python

Details

247 ```247 ```

248 </CodeGroup>248 </CodeGroup>

249 249 

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

251 251 

252 ```bash theme={null}252 ```bash theme={null}

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

Details

127 127 

128Los ejemplos de cargas de trabajo incluyen un agente de correo electrónico que clasifica y responde al correo entrante, un constructor de sitios que aloja un sitio editable por usuario a través de puertos de contenedor, y un chatbot que maneja tráfico continuo desde una plataforma como Slack.128Los ejemplos de cargas de trabajo incluyen un agente de correo electrónico que clasifica y responde al correo entrante, un constructor de sitios que aloja un sitio editable por usuario a través de puertos de contenedor, y un chatbot que maneja tráfico continuo desde una plataforma como Slack.

129 129 

130El contenedor expone un punto final HTTP o WebSocket y asigna cada sesión activa a una consulta de larga duración y el subproceso detrás de ella. En TypeScript, use [`streamInput()`](/docs/es/agent-sdk/typescript#query-object) para agregar turnos a una sesión activa y [`startup()`](/docs/es/agent-sdk/typescript#startup) para precalentar subprocesos antes del tráfico entrante. En Python, use [`ClaudeSDKClient`](/docs/es/agent-sdk/python#claudesdkclient) para mantener una sesión abierta entre turnos. Dimensione el contenedor para que pueda contener el número máximo de sesiones concurrentes en memoria.130El contenedor expone un punto final HTTP o WebSocket y asigna cada sesión activa a una consulta de larga duración y el subproceso detrás de ella. Las llamadas que mantienen las sesiones abiertas y activas difieren entre los SDK:

131 

132* **TypeScript**: use [`streamInput()`](/docs/es/agent-sdk/typescript#query-object) para agregar turnos a una sesión activa. Llame a [`startup()`](/docs/es/agent-sdk/typescript#startup) para precalentar subprocesos antes del tráfico entrante. Si no conoce el directorio de trabajo de una sesión hasta que llega su primera solicitud, precaliente con [`prewarm()`](/docs/es/agent-sdk/typescript#prewarm) en su lugar.

133* **Python**: use [`ClaudeSDKClient`](/docs/es/agent-sdk/python#claudesdkclient) para mantener una sesión abierta entre turnos.

134 

135Dimensione el contenedor para que pueda contener el número máximo de sesiones concurrentes en memoria.

131 136 

132<h3 id="hybrid-sessions">137<h3 id="hybrid-sessions">

133 Sesiones híbridas138 Sesiones híbridas

Details

162| :- | :- | :- |162| :- | :- | :- |

163| Servidor stdio, o servidor HTTP/SSE sin una lista de herramientas en caché | Sí, hasta que se conecte | [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto; la conexión falla en ese plazo |163| Servidor stdio, o servidor HTTP/SSE sin una lista de herramientas en caché | Sí, hasta que se conecte | [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto; la conexión falla en ese plazo |

164| Servidor remoto con una lista de herramientas en caché, guardada por Claude Code desde una conexión anterior | No; las herramientas en caché están disponibles desde el primer turno | Ninguno; se conecta en su primera llamada de herramienta, y esa conexión diferida tiene su propio tiempo de espera |164| Servidor remoto con una lista de herramientas en caché, guardada por Claude Code desde una conexión anterior | No; las herramientas en caché están disponibles desde el primer turno | Ninguno; se conecta en su primera llamada de herramienta, y esa conexión diferida tiene su propio tiempo de espera |

165| Servidor [SDK](#sdk-mcp-servers) en proceso | Sí, hasta que se conecte y enumere sus herramientas | Ninguno; las solicitudes de conexión y enumeración de herramientas tienen cada una su propio tiempo de espera |165| Servidor [SDK](#sdk-mcp-servers) en proceso | Sí, hasta que se conecte y enumere sus herramientas | [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto, por intento de conexión; la conexión falla en ese plazo |

166 166 

167Los servidores cargados desde [archivos de configuración](#from-a-config-file) como `.mcp.json` o desde plugins comúnmente muestran `pending` en el mensaje init. Cuando `options.mcpServers` contiene un servidor stdio, HTTP o SSE, el primer turno espera a que se conecten estos servidores pendientes también, hasta `MCP_TIMEOUT`. Cuando `options.mcpServers` está vacío o contiene solo servidores SDK, el primer turno espera hasta 2 segundos en su lugar:167Los servidores cargados desde [archivos de configuración](#from-a-config-file) como `.mcp.json` o desde plugins comúnmente muestran `pending` en el mensaje init. Cuando `options.mcpServers` contiene un servidor stdio, HTTP o SSE, el primer turno espera a que se conecten estos servidores pendientes también, hasta `MCP_TIMEOUT`. Cuando `options.mcpServers` está vacío o contiene solo servidores SDK, el primer turno espera hasta 2 segundos en su lugar:

168 168 

Details

14 14 

15Una indicación del sistema es el conjunto inicial de instrucciones que forma cómo se comporta Claude durante toda una conversación. El SDK del Agente tiene tres puntos de partida para ella:15Una indicación del sistema es el conjunto inicial de instrucciones que forma cómo se comporta Claude durante toda una conversación. El SDK del Agente tiene tres puntos de partida para ella:

16 16 

17* **Predeterminado mínimo**: cuando no establece `systemPrompt` en TypeScript o `system_prompt` en Python, el SDK utiliza una indicación mínima que cubre la invocación de herramientas pero omite el resto del contenido del preset `claude_code`, incluidas sus instrucciones de seguridad y protección y su contexto sobre el directorio de trabajo y el entorno. Esto difiere de `claude -p`, que utiliza la indicación del sistema de Claude Code de forma predeterminada. Si está migrando desde la CLI y desea un comportamiento coincidente, establezca el preset `claude_code`.17* **Predeterminado mínimo**: cuando no establece `systemPrompt` en TypeScript o `system_prompt` en Python, el SDK utiliza una indicación mínima que cubre la invocación de herramientas pero omite el resto del contenido del preset `claude_code`, incluidas sus instrucciones de seguridad y protección. Esto difiere de `claude -p`, que utiliza la indicación del sistema de Claude Code de forma predeterminada. Si está migrando desde la CLI y desea un comportamiento coincidente, establezca el preset `claude_code`.

18* **Preset `claude_code`**: la indicación del sistema que utiliza la CLI de Claude Code, con instrucciones de uso de herramientas, instrucciones de seguridad y protección, y contexto sobre el directorio de trabajo y el entorno. Establezca `systemPrompt: { type: "preset", preset: "claude_code" }` en TypeScript o `system_prompt={"type": "preset", "preset": "claude_code"}` en Python, opcionalmente con `append` para agregar sus propias instrucciones al final.18* **Preset `claude_code`**: la indicación del sistema que utiliza la CLI de Claude Code, con instrucciones de uso de herramientas e instrucciones de seguridad y protección. Establezca `systemPrompt: { type: "preset", preset: "claude_code" }` en TypeScript o `system_prompt={"type": "preset", "preset": "claude_code"}` en Python, opcionalmente con `append` para agregar sus propias instrucciones al final.

19* **Cadena personalizada**: una indicación que usted escribe. El SDK envía solo lo que proporciona.19* **Cadena personalizada**: una indicación que usted escribe. El SDK envía solo lo que proporciona.

20 20 

21<h3 id="decide-on-a-starting-point">21<h3 id="decide-on-a-starting-point">


26 26 

27| Está construyendo | Utilice | Lo que obtiene |27| Está construyendo | Utilice | Lo que obtiene |

28| :- | :- | :- |28| :- | :- | :- |

29| Una herramienta de codificación tipo CLI o IDE donde un humano observa y dirige, y los valores predeterminados de Claude Code son lo que desea | Preset `claude_code` | La indicación de Claude Code, incluida la orientación de herramientas, reglas de seguridad y contexto del entorno |29| Una herramienta de codificación tipo CLI o IDE donde un humano observa y dirige, y los valores predeterminados de Claude Code son lo que desea | Preset `claude_code` | La indicación de Claude Code, incluida la orientación de herramientas y reglas de seguridad |

30| El mismo tipo de herramienta, más reglas específicas del producto como estándares de codificación, formato de salida o contexto de dominio | Preset `claude_code` con `append` | Todo lo anterior, con sus instrucciones agregadas después del preset. Nada se elimina, por lo que esta es la personalización de menor riesgo |30| El mismo tipo de herramienta, más reglas específicas del producto como estándares de codificación, formato de salida o contexto de dominio | Preset `claude_code` con `append` | Todo lo anterior, con sus instrucciones agregadas después del preset. Nada se elimina, por lo que esta es la personalización de menor riesgo |

31| Un agente con una superficie diferente, identidad o modelo de permisos, o un agente no codificador | Cadena de indicación personalizada | Solo lo que escribe. Usted asume la responsabilidad de reemplazar la orientación de herramientas e instrucciones de seguridad que su agente aún necesita |31| Un agente con una superficie diferente, identidad o modelo de permisos, o un agente no codificador | Cadena de indicación personalizada | Solo lo que escribe. Usted asume la responsabilidad de reemplazar la orientación de herramientas e instrucciones de seguridad que su agente aún necesita |

32| Un bucle de invocación de herramientas delgado sin persona de agente, donde proporciona todo el comportamiento en la indicación del usuario | Sin opción `systemPrompt` | El predeterminado mínimo: soporte de invocación de herramientas y nada más |32| Un bucle de invocación de herramientas delgado sin persona de agente, donde proporciona todo el comportamiento en la indicación del usuario | Sin opción `systemPrompt` | El predeterminado mínimo: soporte de invocación de herramientas y nada más |


225 Mejorar el almacenamiento en caché de prompts entre usuarios y máquinas225 Mejorar el almacenamiento en caché de prompts entre usuarios y máquinas

226</h4>226</h4>

227 227 

228De forma predeterminada, dos sesiones que usan el mismo preset `claude_code` y texto `append` aún no pueden compartir una entrada de caché de prompt si se ejecutan desde directorios de trabajo diferentes. Esto se debe a que el preset incrusta contexto por sesión en el prompt del sistema antes de su texto `append`: el directorio de trabajo, si es un repositorio de git, la plataforma, el shell activo, la versión del SO y las rutas de memoria automática. Cualquier diferencia en ese contexto produce un prompt del sistema diferente y una falta de caché. El contenido de CLAUDE.md no afecta el caché del prompt del sistema porque el SDK lo inyecta en la conversación, no en el prompt del sistema.228De forma predeterminada, dos sesiones que usan el mismo preset `claude_code` y texto `append` aún no pueden compartir una entrada de caché de prompt cuando sus ubicaciones de memoria automática difieren. El preset incrusta esa ubicación en el prompt del sistema antes de su texto `append`. La ubicación predeterminada es una ruta absoluta bajo `~/.claude/projects/` nombrada según la ruta del repositorio en el disco, por lo que difiere entre usuarios, máquinas y checkouts.

229 229 

230Para hacer que el prompt del sistema sea idéntico en todas las sesiones, establezca `excludeDynamicSections: true` en TypeScript o `"exclude_dynamic_sections": True` en Python. El contexto por sesión se mueve al primer mensaje del usuario, dejando solo el preset estático y su texto `append` en el prompt del sistema para que las configuraciones idénticas compartan una entrada de caché en usuarios y máquinas.230El contenido de CLAUDE.md y los detalles del entorno como el directorio de trabajo, la plataforma, el shell y la versión del SO no afectan el caché del prompt del sistema, porque Claude Code los entrega en la conversación, no en el prompt del sistema.

231 

232Para hacer que el prompt del sistema sea idéntico en todas las sesiones, establezca `excludeDynamicSections: true` en TypeScript o `"exclude_dynamic_sections": True` en Python. El contexto por usuario se mueve al primer mensaje del usuario, dejando solo el preset estático y su texto `append` en el prompt del sistema para que las configuraciones idénticas compartan una entrada de caché en usuarios y máquinas.

231 233 

232<Note>234<Note>

233 `excludeDynamicSections` requiere `@anthropic-ai/claude-agent-sdk` v0.2.98 o posterior, o `claude-agent-sdk` v0.1.58 o posterior para Python. Establézcalo solo en la forma de objeto preset. El SDK lo ignora cuando pasa un prompt personalizado en lugar del preset; para mantener las instrucciones de un prompt personalizado almacenadas en caché en el SDK de TypeScript, consulte [Cache the static part of a custom prompt](#cache-the-static-part-of-a-custom-prompt).235 `excludeDynamicSections` requiere `@anthropic-ai/claude-agent-sdk` v0.2.98 o posterior, o `claude-agent-sdk` v0.1.58 o posterior para Python. Establézcalo solo en la forma de objeto preset. El SDK lo ignora cuando pasa un prompt personalizado en lugar del preset; para mantener las instrucciones de un prompt personalizado almacenadas en caché en el SDK de TypeScript, consulte [Cache the static part of a custom prompt](#cache-the-static-part-of-a-custom-prompt).

234</Note>236</Note>

235 237 

236El siguiente ejemplo empareja un bloque `append` compartido con `excludeDynamicSections` para que una flota de agentes que se ejecutan desde directorios diferentes puedan reutilizar el mismo prompt del sistema almacenado en caché:238El siguiente ejemplo empareja un bloque `append` compartido con `excludeDynamicSections` para que una flota de agentes pueda reutilizar el mismo prompt del sistema almacenado en caché:

237 239 

238<CodeGroup>240<CodeGroup>

239 ```typescript TypeScript theme={null}241 ```typescript TypeScript theme={null}


279 ```281 ```

280</CodeGroup>282</CodeGroup>

281 283 

282**Compensaciones:** el directorio de trabajo, la bandera de repositorio de git, la plataforma, el shell activo, la versión del SO y las rutas de memoria automática aún llegan a Claude, pero como parte del primer mensaje del usuario en lugar del prompt del sistema. Las instrucciones en el mensaje del usuario tienen un peso marginalmente menor que el mismo texto en el prompt del sistema, por lo que Claude puede depender menos de ellas al razonar sobre el directorio actual o las rutas de memoria automática. Habilite esta opción cuando la reutilización de caché entre sesiones sea más importante que el contexto de entorno máximamente autorizado.284**Compensaciones:** el texto que se mueve fuera del prompt del sistema aún llega a Claude, pero en un mensaje del usuario. Ese texto es al menos la ubicación del directorio de memoria automática, y a menudo toda la sección de memoria automática. Las instrucciones en un mensaje del usuario tienen un peso marginalmente menor que el mismo texto en el prompt del sistema, por lo que Claude puede seguir su orientación de memoria automática menos consistentemente. Habilite esta opción cuando la reutilización de caché entre sesiones sea más importante que eso.

283 285 

284Para la bandera equivalente en modo CLI no interactivo, consulte [`--exclude-dynamic-system-prompt-sections`](/docs/es/cli-reference).286Para la bandera equivalente en modo CLI no interactivo, consulte [`--exclude-dynamic-system-prompt-sections`](/docs/es/cli-reference).

285 287 


418 420 

419El registro de un `append` o prompt personalizado de forma predeterminada requiere Claude Code v2.1.265 o posterior, que el TypeScript Agent SDK agrupa desde v0.3.265 y el Python Agent SDK desde v0.2.153. Antes de Claude Code v2.1.268, las sesiones que no [fetch feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), incluidas las sesiones en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, reconstruían el prompt en cada solicitud y `snapshot` no tenía efecto.421El registro de un `append` o prompt personalizado de forma predeterminada requiere Claude Code v2.1.265 o posterior, que el TypeScript Agent SDK agrupa desde v0.3.265 y el Python Agent SDK desde v0.2.153. Antes de Claude Code v2.1.268, las sesiones que no [fetch feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), incluidas las sesiones en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, reconstruían el prompt en cada solicitud y `snapshot` no tenía efecto.

420 422 

423<h2 id="context-claude-code-adds-outside-the-system-prompt">

424 Contexto que Claude Code añade fuera del mensaje del sistema

425</h2>

426 

427Los recordatorios del sistema son mensajes que Claude Code añade a la conversación durante una sesión para proporcionar contexto a Claude, como el contenido de sus archivos CLAUDE.md o una nota de que un archivo cambió en el disco. Claude Code los envía en la conversación, no en el mensaje del sistema, por lo que llegan a Claude tanto si utiliza el preset `claude_code` como si pasa su propia cadena como `systemPrompt`.

428 

429Esta sección cubre los [recordatorios más probables de cambiar cómo se comporta su agente](#reminders-claude-code-adds-to-the-conversation), cómo [desactivar los que su agente reemplaza](#turn-off-the-context-your-agent-replaces), y cómo [ver qué recibió Claude](#see-what-claude-received) en una solicitud específica.

430 

431<h3 id="reminders-claude-code-adds-to-the-conversation">

432 Recordatorios que Claude Code añade a la conversación

433</h3>

434 

435Los recordatorios del sistema son texto que Claude Code añade a la conversación junto con los prompts que su código envía. Los siguientes recordatorios son los más probables de cambiar cómo se comporta su agente:

436 

437* **Instrucciones del proyecto**: los archivos CLAUDE.md que su opción [`settingSources`](#claude-md-files-for-project-level-instructions) carga

438* **Instrucciones de estilo de salida**: las instrucciones del [estilo de salida](#output-styles-for-persistent-configurations) activo, en la conversación principal

439* **Atribución de commits y solicitudes de extracción**: el trailer `Co-Authored-By` y el pie de página de solicitud de extracción de la configuración [`attribution`](/docs/es/settings-reference#attribution)

440* **Salida de hooks**: texto que sus [hooks](/docs/es/agent-sdk/hooks#outputs) devuelven como `additionalContext`

441* **Skills disponibles**: los nombres y descripciones de los [skills](/docs/es/agent-sdk/skills) que Claude puede llamar

442* **Subagentes disponibles**: los nombres y descripciones de los [subagentes](/docs/es/agent-sdk/subagents) que Claude puede iniciar

443* **Empujones de lista de tareas**: en una [sesión que tiene las herramientas de seguimiento de tareas](/docs/es/agent-sdk/todo-tracking#model-availability), un prompt para actualizar la lista de tareas cuando Claude no la ha tocado durante varios turnos

444* **Notas de archivo modificado**: una nota de que un archivo que Claude leyó anteriormente ha cambiado en el disco

445 

446Claude Code presenta sus archivos CLAUDE.md con una línea que le dice a Claude que las instrucciones anulan el comportamiento predeterminado.

447 

448Si pasa su propia cadena como `systemPrompt`, añada una oración que diga qué es un recordatorio del sistema. El preset `claude_code` tiene una, y su cadena reemplaza todo el preset. Sin ella, nada en su prompt le dice a Claude que recordatorios como el contenido de CLAUDE.md y la salida de hooks provienen de la aplicación en lugar de mensajes del usuario. Por ejemplo:

449 

450```text theme={null}

451The application adds system reminders to this conversation. Treat them as context from the application, not as messages from the user.

452```

453 

454<h3 id="turn-off-the-context-your-agent-replaces">

455 Desactivar el contexto que su agente reemplaza

456</h3>

457 

458Desactive una pieza de contexto integrado cuando su agente proporciona su propia versión de la misma orientación. Por ejemplo, si su prompt le dice a Claude que escriba mensajes de commit como `PROJ-142: fix login redirect` sin trailers, Claude Code aún le dice a Claude que termine cada mensaje de commit con un trailer `Co-Authored-By`, por lo que Claude recibe dos instrucciones conflictivas para el mismo commit.

459 

460Pase claves de configuración a través de la opción [`settings`](/docs/es/agent-sdk/typescript#options) en TypeScript o [`settings`](/docs/es/agent-sdk/python#claudeagentoptions) en Python, y variables de entorno a través de la opción `env`. En TypeScript, [`env`](/docs/es/agent-sdk/typescript#options) reemplaza el entorno heredado, por lo que extienda `process.env` en él.

461 

462| Contexto integrado | Cómo desactivarlo |

463| :- | :- |

464| Las instrucciones integradas de commit y solicitud de extracción y la instantánea de estado de git | Establezca [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) en `false`, o `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS=1` |

465| El trailer `Co-Authored-By` y el pie de página de solicitud de extracción | Establezca [`attribution.commit`](/docs/es/settings-reference#attribution-commit) y [`attribution.pr`](/docs/es/settings-reference#attribution-pr) en su propio texto, o en cadenas vacías para eliminarlos |

466| La fuente de configuración del usuario o proyecto, incluido su CLAUDE.md | Deje `'user'` o `'project'` fuera de [`settingSources`](/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) |

467| Cada archivo CLAUDE.md | Establezca `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |

468| Empujones de lista de tareas, notas de archivo modificado y la lista de skills | Establezca `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |

469 

470Las instrucciones integradas de commit y solicitud de extracción de Claude Code no son un recordatorio. Son parte de la descripción de la herramienta Bash, por lo que también llegan a Claude cuando pasa un `systemPrompt` personalizado.

471 

472Si establece `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code también envía menciones de archivo `@` como texto sin formato en lugar de expandirlas en contenido de archivo. La lista de subagentes disponibles y las notificaciones de tareas en segundo plano aún llegan.

473 

474El siguiente ejemplo es para un agente que lleva sus propias reglas de commit en `append`. Establece ambas claves de `attribution` en cadenas vacías para eliminar el trailer y el pie de página, y desactiva `includeGitInstructions` para que las instrucciones de flujo de trabajo de commit propias de Claude Code no compitan con las suyas:

475 

476<CodeGroup>

477 ```typescript TypeScript theme={null}

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

479 

480 for await (const message of query({

481 prompt: "Commit the staged changes for ticket PROJ-142",

482 options: {

483 systemPrompt: {

484 type: "preset",

485 preset: "claude_code",

486 append: "Write commit messages as: <ticket id>: <summary>. Add no trailers."

487 },

488 settings: {

489 includeGitInstructions: false,

490 attribution: { commit: "", pr: "" }

491 },

492 allowedTools: ["Bash(git *)"]

493 }

494 })) {

495 if (message.type === "result") console.log(message.subtype);

496 }

497 ```

498 

499 ```python Python theme={null}

500 import asyncio

501 from claude_agent_sdk import query, ClaudeAgentOptions

502 

503 

504 async def main():

505 async for message in query(

506 prompt="Commit the staged changes for ticket PROJ-142",

507 options=ClaudeAgentOptions(

508 system_prompt={

509 "type": "preset",

510 "preset": "claude_code",

511 "append": "Write commit messages as: <ticket id>: <summary>. Add no trailers.",

512 },

513 settings='{"includeGitInstructions": false, "attribution": {"commit": "", "pr": ""}}',

514 allowed_tools=["Bash(git *)"],

515 ),

516 ):

517 print(message)

518 

519 

520 asyncio.run(main())

521 ```

522</CodeGroup>

523 

524Para confirmar el cambio, ejecute el ejemplo en un repositorio con cambios preparados y verifique el nuevo commit con `git log -1`. El mensaje termina sin un trailer `Co-Authored-By`.

525 

526<h3 id="see-what-claude-received">

527 Ver qué recibió Claude

528</h3>

529 

530El flujo de mensajes del SDK no incluye recordatorios del sistema, por lo que leer los mensajes que su código recibe no le mostrará qué vio Claude. Para verlos, registre las solicitudes que Claude Code envía:

531 

532* **Registro de solicitud sin procesar**: establezca [`OTEL_LOG_RAW_API_BODIES`](/docs/es/monitoring-usage#api-request-body-event) en `file:<dir>`. Claude Code escribe cada cuerpo de solicitud en ese directorio.

533* **Una puerta de enlace que controla**: apunte [`ANTHROPIC_BASE_URL`](/docs/es/llm-gateway) a un proxy que registre cuerpos de solicitud.

534 

535En una solicitud registrada, busque en el array `messages`. Un recordatorio aparece dentro de un mensaje de usuario envuelto en etiquetas `<system-reminder>` o, en algunos modelos, como un mensaje separado con el rol `system`.

536 

421<h2 id="compare-the-four-approaches">537<h2 id="compare-the-four-approaches">

422 Comparación de los cuatro enfoques538 Comparación de los cuatro enfoques

423</h2>539</h2>


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

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

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

434| **Contexto del entorno** | Automático | Automático | Automático | Debe proporcionarse |

435| **Nivel de personalización** | Solo adiciones | Reemplazar o extender predeterminado | Solo adiciones | Control completo |550| **Nivel de personalización** | Solo adiciones | Reemplazar o extender predeterminado | Solo adiciones | Control completo |

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

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

Details

250| Variable | Agrega |250| Variable | Agrega |

251| - | - |251| - | - |

252| `OTEL_LOG_USER_PROMPTS=1` | Texto de indicación en eventos `claude_code.user_prompt` y en el tramo `claude_code.interaction` |252| `OTEL_LOG_USER_PROMPTS=1` | Texto de indicación en eventos `claude_code.user_prompt` y en el tramo `claude_code.interaction` |

253| `OTEL_LOG_TOOL_DETAILS=1` | Argumentos de entrada de herramienta (rutas de archivo, comandos de shell, patrones de búsqueda) en eventos `claude_code.tool_result` |253| `OTEL_LOG_TOOL_DETAILS=1` | Argumentos de entrada de herramienta como rutas de archivo, comandos de shell y patrones de búsqueda en eventos `claude_code.tool_result`, y nombres reales de agente, skill, plugin y servidor MCP en las [métricas de costo y token](/docs/es/monitoring-usage#cost-counter) |

254| `OTEL_LOG_TOOL_CONTENT=1` | Un evento de tramo [`tool.output`](/docs/es/monitoring-usage#tool-output-span-event) en `claude_code.tool` con contenidos de archivo y salida de Bash, truncado en 60 KB de forma predeterminada, configurable mediante `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, que requiere Claude Code v2.1.214 o posterior. Requiere que el [rastreo](#read-agent-traces) esté habilitado. Los atributos de tramo llevan contenido de herramienta bajo [sus propias compuertas](/docs/es/monitoring-usage#new-context-gates) |254| `OTEL_LOG_TOOL_CONTENT=1` | Un evento de tramo [`tool.output`](/docs/es/monitoring-usage#tool-output-span-event) en `claude_code.tool` con contenidos de archivo, salida de Bash y lo que devuelven las herramientas MCP, WebFetch y WebSearch, truncado en 60 KB de forma predeterminada, configurable mediante `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, que requiere Claude Code v2.1.214 o posterior. Los resultados de las herramientas MCP, WebFetch y WebSearch requieren Claude Code v2.1.283 o posterior. Requiere que el [rastreo](#read-agent-traces) esté habilitado. Los atributos de tramo llevan contenido de herramienta bajo [sus propias compuertas](/docs/es/monitoring-usage#new-context-gates) |

255| `OTEL_LOG_RAW_API_BODIES` | Solicitud y respuesta JSON completas de la API de Mensajes de Anthropic como eventos de registro `claude_code.api_request_body` y `claude_code.api_response_body`. Establezca en `1` para cuerpos en línea truncados en 60 KB de forma predeterminada, o `file:<dir>` para cuerpos sin truncar en disco con una ruta `body_ref` en el evento. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de truncamiento en línea, y requiere Claude Code v2.1.214 o posterior. Los cuerpos incluyen el historial de conversación completo y tienen contenido de pensamiento extendido redactado. Habilitar esto implica consentimiento para todo lo que las tres variables anteriores revelarían |255| `OTEL_LOG_RAW_API_BODIES` | Solicitud y respuesta JSON completas de la API de Mensajes de Anthropic como eventos de registro `claude_code.api_request_body` y `claude_code.api_response_body`. Establezca en `1` para cuerpos en línea truncados en 60 KB de forma predeterminada, o `file:<dir>` para cuerpos sin truncar en disco con una ruta `body_ref` en el evento. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de truncamiento en línea, y requiere Claude Code v2.1.214 o posterior. Los cuerpos incluyen el historial de conversación completo y tienen contenido de pensamiento extendido redactado. Habilitar esto implica consentimiento para todo lo que las tres variables anteriores revelarían |

256 256 

257Deje estos sin establecer a menos que su canalización de observabilidad esté aprobada para almacenar los datos que maneja su agente. Consulte [Seguridad y privacidad](/docs/es/monitoring-usage#security-and-privacy) en la referencia de Monitoreo para la lista completa de atributos y comportamiento de redacción.257Deje estos sin establecer a menos que su canalización de observabilidad esté aprobada para almacenar los datos que maneja su agente. Consulte [Seguridad y privacidad](/docs/es/monitoring-usage#security-and-privacy) en la referencia de Monitoreo para la lista completa de atributos y comportamiento de redacción.

Details

41 </Step>41 </Step>

42 42 

43 <Step title="Reglas de permiso">43 <Step title="Reglas de permiso">

44 Comprobar reglas `allow` (de `allowed_tools` y settings.json). Si una regla coincide, la herramienta se aprueba. Una llamada que la herramienta aprueba por sí sola también se resuelve en este paso, sin necesidad de regla: por ejemplo una lectura de archivo dentro de sus directorios de trabajo o un [comando Bash de solo lectura](/docs/es/permissions#read-only-commands). Las eliminaciones `rm` y `rmdir` dirigidas a una [ruta crítica](/docs/es/permission-modes#critical-paths) nunca se aprueban por una regla de permiso: llegan a su devolución de llamada en los modos que solicitan, van al [clasificador](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en modo `auto` en Claude Code v2.1.218 o posterior, y se deniegan en modo `dontAsk`.44 Comprobar reglas `allow` (de `allowed_tools` y settings.json). Si una regla coincide, la herramienta se aprueba. Una llamada que la herramienta aprueba por sí sola también se resuelve en este paso, sin necesidad de regla: por ejemplo una lectura de archivo dentro de sus directorios de trabajo o un [comando Bash de solo lectura](/docs/es/permissions#read-only-commands).

45 

46 Las eliminaciones `rm` y `rmdir` dirigidas a una [ruta crítica](/docs/es/permission-modes#critical-paths) nunca se aprueban por una regla de permiso. Si luego llegan a su devolución de llamada depende del modo de permiso: en una sesión del SDK del Agente en modo `auto`, por ejemplo, Claude Code las deniega por defecto sin llamarla. La tabla del modo [Rutas críticas](/docs/es/permission-modes#critical-paths) enumera lo que cada modo hace con ellas.

45 </Step>47 </Step>

46 48 

47 <Step title="Devolución de llamada canUseTool">49 <Step title="Devolución de llamada canUseTool">


89Use `//path` para una ruta del sistema de archivos absoluta: una regla de denegación de `Edit(//secrets/**)` bloquea escrituras en cualquier lugar bajo `/secrets` en el disco. Con una sola barra diagonal inicial, `Edit(/secrets/**)` se ancla en la fuente de la regla en su lugar. Para reglas pasadas a través de `allowed_tools` o `disallowed_tools`, eso significa el directorio de trabajo de la sesión, por lo que la regla no bloquea `/secrets` en el disco. Consulte [Reglas de Read y Edit](/docs/es/permissions#read-and-edit) para las cuatro formas de anclaje y cómo se resuelven las reglas de archivos de configuración.91Use `//path` para una ruta del sistema de archivos absoluta: una regla de denegación de `Edit(//secrets/**)` bloquea escrituras en cualquier lugar bajo `/secrets` en el disco. Con una sola barra diagonal inicial, `Edit(/secrets/**)` se ancla en la fuente de la regla en su lugar. Para reglas pasadas a través de `allowed_tools` o `disallowed_tools`, eso significa el directorio de trabajo de la sesión, por lo que la regla no bloquea `/secrets` en el disco. Consulte [Reglas de Read y Edit](/docs/es/permissions#read-and-edit) para las cuatro formas de anclaje y cómo se resuelven las reglas de archivos de configuración.

90 92 

91<Warning>93<Warning>

92 **Las herramientas aprobadas automáticamente nunca llegan a `canUseTool`.** Una llamada de herramienta aprobada en cualquier paso anterior, por `acceptEdits` o `bypassPermissions`, o por una regla de permitir, omite su devolución de llamada `canUseTool`, por lo que las comprobaciones de permisos que coloque allí se omiten silenciosamente para esa herramienta. `AskUserQuestion`, herramientas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool), herramientas de conector [que su organización configuró para `ask`](/docs/es/mcp#organization-controls-on-connector-tools), y removals de `rm` y `rmdir` dirigidos a una [ruta crítica](/docs/es/permission-modes#critical-paths) aún llegan a la devolución de llamada, incluso cuando una regla de permitir coincide. En modo `auto`, los removals de ruta crítica van al [clasificador](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de la devolución de llamada, mientras que las otras llamadas listadas aquí aún la alcanzan; el enrutamiento del clasificador requiere Claude Code v2.1.218 o posterior. En modo `dontAsk` estas llamadas se deniegan en su lugar, sin invocar la devolución de llamada.94 **Las herramientas aprobadas automáticamente nunca llegan a `canUseTool`.** Una llamada de herramienta aprobada en cualquier paso anterior, por `acceptEdits` o `bypassPermissions`, o por una regla de permitir, omite su devolución de llamada `canUseTool`, por lo que las comprobaciones de permisos que coloque allí se omiten silenciosamente para esa herramienta.

95 

96 Una regla de permitir nunca aprueba automáticamente `AskUserQuestion`, herramientas MCP marcadas [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool), herramientas de conector [que su organización configuró para `ask`](/docs/es/mcp#organization-controls-on-connector-tools), o removals de `rm` y `rmdir` dirigidos a una [ruta crítica](/docs/es/permission-modes#critical-paths). En modo `dontAsk` Claude Code deniega estas llamadas sin invocar la devolución de llamada. En otros modos los tres primeros llegan a la devolución de llamada. Dependiendo del [modo de permisos](/docs/es/permission-modes#critical-paths), un removal de ruta crítica llega a la devolución de llamada también o Claude Code lo deniega sin llamarlo, como lo hace por defecto para una sesión de Agent SDK en modo `auto`.

93 97 

94 La cobertura depende de la forma de la entrada: un nombre simple como `Read` o `mcp__github__get_issue` aprueba automáticamente cada llamada a esa herramienta aparte de las excepciones anteriores, mientras que una regla delimitada como `Bash(npm test *)` aprueba automáticamente solo las llamadas coincidentes, y otras llamadas a `Bash` que necesiten aprobación aún caen en la devolución de llamada. Para comprobaciones que deben ejecutarse en cada llamada de herramienta, use un [hook `PreToolUse`](/docs/es/agent-sdk/hooks): los hooks se ejecutan antes de cada otro paso, y una denegación de hook se aplica incluso en modo `bypassPermissions`.98 La cobertura depende de la forma de la entrada: un nombre simple como `Read` o `mcp__github__get_issue` aprueba automáticamente cada llamada a esa herramienta aparte de las excepciones anteriores, mientras que una regla delimitada como `Bash(npm test *)` aprueba automáticamente solo las llamadas coincidentes, y otras llamadas a `Bash` que necesiten aprobación aún caen en la devolución de llamada. Para comprobaciones que deben ejecutarse en cada llamada de herramienta, use un [hook `PreToolUse`](/docs/es/agent-sdk/hooks): los hooks se ejecutan antes de cada otro paso, y una denegación de hook se aplica incluso en modo `bypassPermissions`.

95</Warning>99</Warning>

Details

331 Plugin no se carga331 Plugin no se carga

332</h3>332</h3>

333 333 

334Si su plugin no aparece en el mensaje de inicialización:334Si su plugin no aparece en la lista `plugins` del mensaje de inicialización, verifique su campo [`plugin_errors`](/docs/es/agent-sdk/typescript#sdksystemmessage) para conocer el motivo, luego trabaje a través de estas comprobaciones:

335 335 

3361. **Verifique la ruta**: asegúrese de que la ruta apunte al directorio raíz del plugin, el directorio padre de `skills/`, `agents/`, `hooks/`, `commands/`, o `.claude-plugin/`3361. **Verifique la ruta**: asegúrese de que la ruta apunte al directorio raíz del plugin, el directorio padre de `skills/`, `agents/`, `hooks/`, `commands/`, o `.claude-plugin/`

3372. **Valide plugin.json**: si su plugin incluye un manifiesto, asegúrese de que tenga una sintaxis JSON válida3372. **Valide plugin.json**: si su plugin incluye un manifiesto, asegúrese de que tenga una sintaxis JSON válida

Details

875 include_partial_messages: bool = False875 include_partial_messages: bool = False

876 include_hook_events: bool = False876 include_hook_events: bool = False

877 forward_subagent_text: bool = False877 forward_subagent_text: bool = False

878 verbatim_prompts: bool = False

878 fork_session: bool = False879 fork_session: bool = False

879 resume_session_at: str | None = None880 resume_session_at: str | None = None

880 resume_drops_turn: str | None = None881 resume_drops_turn: str | None = None


928| `include_partial_messages` | `bool` | `False` | Incluir eventos de transmisión de mensajes parciales. Cuando está habilitado, se producen mensajes [`StreamEvent`](#streamevent) |929| `include_partial_messages` | `bool` | `False` | Incluir eventos de transmisión de mensajes parciales. Cuando está habilitado, se producen mensajes [`StreamEvent`](#streamevent) |

929| `include_hook_events` | `bool` | `False` | Incluir eventos del ciclo de vida de hooks en el flujo de mensajes como objetos `HookEventMessage` |930| `include_hook_events` | `bool` | `False` | Incluir eventos del ciclo de vida de hooks en el flujo de mensajes como objetos `HookEventMessage` |

930| `forward_subagent_text` | `bool` | `False` | Reenviar bloques de texto y pensamiento de subagentes en el flujo de mensajes. Sin esta opción, Claude Code emite bloques `tool_use` y `tool_result` de subagentes pero no texto ni pensamiento. Requiere Python Agent SDK 0.2.140 o posterior |931| `forward_subagent_text` | `bool` | `False` | Reenviar bloques de texto y pensamiento de subagentes en el flujo de mensajes. Sin esta opción, Claude Code emite bloques `tool_use` y `tool_result` de subagentes pero no texto ni pensamiento. Requiere Python Agent SDK 0.2.140 o posterior |

932| `verbatim_prompts` | `bool` | `False` | Entregar cada indicador tal como está escrito. El SDK envía cada mensaje del usuario con `client_composed` establecido en `True`. Consulte [`client_composed`](/docs/es/agent-sdk/typescript#sdkusermessage) para ver qué omite Claude Code en esos mensajes. Utilice esta opción cuando el texto del indicador incluya contenido que el usuario final no escribió. Para control por turno, déjelo desactivado y establezca `"client_composed": True` en mensajes individuales transmitidos en su lugar. Mientras la opción está activada, el SDK sobrescribe cualquier valor `client_composed` que establezca. Requiere Python Agent SDK 0.2.158 o posterior y Claude Code v2.1.248 o posterior; la CLI incluida en esas versiones de SDK satisface el requisito de Claude Code |

931| `fork_session` | `bool` | `False` | Al reanudar con `resume`, bifurcar a un nuevo ID de sesión en lugar de continuar la sesión original |933| `fork_session` | `bool` | `False` | Al reanudar con `resume`, bifurcar a un nuevo ID de sesión en lugar de continuar la sesión original |

932| `resume_session_at` | `str \| None` | `None` | Al reanudar, cargar la conversación solo hasta e incluyendo el mensaje con este UUID. Utilice con `resume`, y generalmente `fork_session`, para ramificar desde un punto anterior. Requiere Python Agent SDK 0.2.137 o posterior |934| `resume_session_at` | `str \| None` | `None` | Al reanudar, cargar la conversación solo hasta e incluyendo el mensaje con este UUID. Utilice con `resume`, y generalmente `fork_session`, para ramificar desde un punto anterior. Requiere Python Agent SDK 0.2.137 o posterior |

933| `resume_drops_turn` | `str \| None` | `None` | UUID del indicador del usuario cuyo turno descarta un truncamiento `resume_session_at`. Cuando se establece, la CLI rechaza la reanudación si el rango descartado contiene entradas no atribuibles a ese turno. Requiere Python Agent SDK 0.2.137 o posterior y Claude Code v2.1.223 o posterior; la CLI incluida en esas versiones de SDK satisface el requisito de Claude Code |935| `resume_drops_turn` | `str \| None` | `None` | UUID del indicador del usuario cuyo turno descarta un truncamiento `resume_session_at`. Cuando se establece, la CLI rechaza la reanudación si el rango descartado contiene entradas no atribuibles a ese turno. Requiere Python Agent SDK 0.2.137 o posterior y Claude Code v2.1.223 o posterior; la CLI incluida en esas versiones de SDK satisface el requisito de Claude Code |


1010| `type` | Sí | Debe ser `"preset"` para usar un indicador del sistema preestablecido |1012| `type` | Sí | Debe ser `"preset"` para usar un indicador del sistema preestablecido |

1011| `preset` | Sí | Debe ser `"claude_code"` para usar el indicador del sistema de Claude Code |1013| `preset` | Sí | Debe ser `"claude_code"` para usar el indicador del sistema de Claude Code |

1012| `append` | No | Instrucciones adicionales para agregar al indicador del sistema preestablecido |1014| `append` | No | Instrucciones adicionales para agregar al indicador del sistema preestablecido |

1013| `exclude_dynamic_sections` | No | Mover contexto por sesión como directorio de trabajo, la bandera de repositorio git, y rutas de memoria automática del indicador del sistema al primer mensaje del usuario. Mejora la reutilización de caché de indicadores entre usuarios y máquinas. Consulte [Modificar indicadores del sistema](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1015| `exclude_dynamic_sections` | No | Mover contexto por usuario, como la ubicación de memoria automática, del indicador del sistema al primer mensaje del usuario. Mejora la reutilización de caché de indicadores entre usuarios y máquinas. Consulte [Modificar indicadores del sistema](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

1014| `snapshot` | No | Establezca en `False` para reconstruir el indicador del sistema en cada solicitud en lugar de [reutilizar el indicador que la sesión registró en su primera solicitud](/docs/es/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Requiere `claude-agent-sdk` v0.2.153 o posterior |1016| `snapshot` | No | Establezca en `False` para reconstruir el indicador del sistema en cada solicitud en lugar de [reutilizar el indicador que la sesión registró en su primera solicitud](/docs/es/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Requiere `claude-agent-sdk` v0.2.153 o posterior |

1015 1017 

1016<h3 id="systempromptcustom">1018<h3 id="systempromptcustom">


3791<Warning>3793<Warning>

3792 Los comandos que se ejecutan con `dangerouslyDisableSandbox: True` tienen acceso completo al sistema. Asegúrese de que su controlador `can_use_tool` valide estas solicitudes cuidadosamente.3794 Los comandos que se ejecutan con `dangerouslyDisableSandbox: True` tienen acceso completo al sistema. Asegúrese de que su controlador `can_use_tool` valide estas solicitudes cuidadosamente.

3793 3795 

3794 Si `permission_mode` se establece en `bypassPermissions` y `allow_unsandboxed_commands` está habilitado, el modelo puede ejecutar autónomamente comandos fuera del sandbox sin solicitudes de aprobación, aparte de las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Esta combinación efectivamente permite que el modelo escape del aislamiento de sandbox silenciosamente.3796 Si `permission_mode` se establece en `bypassPermissions` y `allowUnsandboxedCommands` está habilitado, el modelo puede ejecutar autónomamente comandos fuera del sandbox sin solicitudes de aprobación, aparte de las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves). Esta combinación efectivamente permite que el modelo escape del aislamiento de sandbox silenciosamente.

3795</Warning>3797</Warning>

3796 3798 

3797<h2 id="see-also">3799<h2 id="see-also">

Details

330 Limitaciones conocidas330 Limitaciones conocidas

331</h2>331</h2>

332 332 

333* **Structured output**: el resultado JSON aparece solo en el `ResultMessage.structured_output` final, no como deltas de transmisión. Consulte [structured outputs](/docs/es/agent-sdk/structured-outputs) para obtener detalles.333* **Structured output**: con mensajes parciales habilitados, el JSON se transmite como chunks `input_json_delta` no validados de una llamada de herramienta, y solo el resultado validado llega al `ResultMessage.structured_output` final. Consulte [structured outputs](/docs/es/agent-sdk/structured-outputs) para obtener detalles.

334 334 

335<h2 id="next-steps">335<h2 id="next-steps">

336 Próximos pasos336 Próximos pasos

Details

162 structured\_output es None pero el resultado dice éxito162 structured\_output es None pero el resultado dice éxito

163</h3>163</h3>

164 164 

165Un mensaje de resultado puede terminar con `subtype: "success"` mientras `structured_output` es `None` en Python o `undefined` en TypeScript. La ejecución se completa, pero no existe una salida validada. Una forma de alcanzar esto es un esquema que ninguna salida puede satisfacer, por ejemplo restricciones de longitud conflictivas. La ejecución termina sin un error de validación, y la única señal es el `structured_output` faltante.165Un mensaje de resultado puede terminar con `subtype: "success"` mientras `structured_output` es `None` en Python o `undefined` en TypeScript. La ejecución se completa, pero no existe una salida validada. Una forma de alcanzar esto es un esquema que ninguna salida puede satisfacer, por ejemplo restricciones de longitud conflictivas.

166 166 

167Trate este resultado como un error en el código de la aplicación. Verifique tanto que `subtype` sea `success` como que `structured_output` esté presente antes de usarlo. La sección [Error handling](/docs/es/agent-sdk/structured-outputs#error-handling) muestra este patrón para ambos SDK.167Trate este resultado como un error en el código de la aplicación. Verifique tanto que `subtype` sea `success` como que `structured_output` esté presente antes de usarlo. La sección [Error handling](/docs/es/agent-sdk/structured-outputs#error-handling) muestra este patrón para ambos SDK.

168 168 

Details

54* Para compilación cruzada, instale el paquete de plataforma que no coincida, por ejemplo `npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force`.54* Para compilación cruzada, instale el paquete de plataforma que no coincida, por ejemplo `npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force`.

55* En Windows, la subruta del binario es `claude.exe`, por ejemplo `@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe`.55* En Windows, la subruta del binario es `claude.exe`, por ejemplo `@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe`.

56 56 

57<h3 id="import-the-/core-entry-when-you-bundle-the-agent-sdk">

58 Importe la entrada `/core` cuando agrupe el Agent SDK

59</h3>

60 

61Si su aplicación agrupa el Agent SDK junto con sus propias dependencias, importe desde `@anthropic-ai/claude-agent-sdk/core` en lugar de la raíz del paquete. La entrada `/core` requiere Agent SDK de TypeScript v0.3.282 o posterior, y sus tipos requieren TypeScript 5.0 o posterior.

62 

63La entrada `/core` exporta el mismo `query()`, `startup()`, `tool()`, `createSdkMcpServer()`, y `resolveSettings()` que la entrada raíz, junto con las funciones que renombran, etiquetan y eliminan sesiones, `AbortError`, las constantes de tiempo de ejecución, y cada tipo. No añade nombres propios. Para mantener pequeño el código que carga su aplicación, `/core` omite algunas exportaciones raíz, incluyendo `prewarm()`, la clase `InMemorySessionStore`, y los asistentes que listan, leen, bifurcan, importan y resumen sesiones. Si necesita uno de ellos, use la entrada raíz en su lugar.

64 

65La entrada raíz inserta sus propias copias de `zod` y `@modelcontextprotocol/sdk`. La entrada `/core` las importa desde su `node_modules` en los rangos que las `peerDependencies` del Agent SDK declaran, por lo que un paquete que ya las incluye no lleva una segunda copia. Importe desde la raíz o `/core` en un proceso dado, no ambas: son paquetes separados, y cargar ambas le da dos copias de las clases y el estado del Agent SDK.

66 

57<h2 id="functions">67<h2 id="functions">

58 Funciones68 Funciones

59</h2>69</h2>


93 `startup()`103 `startup()`

94</h3>104</h3>

95 105 

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

97 107 

98```typescript theme={null}108```typescript theme={null}

99function startup(params?: {109function startup(params?: {


135}145}

136```146```

137 147 

148<h3 id="prewarm">

149 `prewarm()`

150</h3>

151 

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

153 

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

155 

156```typescript theme={null}

157function prewarm(params?: {

158 options?: Options;

159 initializeTimeoutMs?: number;

160}): Promise<SpareProcess>;

161```

162 

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

164 

165<h4 id="example-2">

166 Ejemplo

167</h4>

168 

169Precaliente al inicio de la aplicación, luego reclame el repuesto cuando el usuario inicie una sesión:

170 

171```typescript theme={null}

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

173 

174// Al inicio de la aplicación, antes de que se conozca la carpeta de la sesión

175const spare = await prewarm({ options: { maxTurns: 3 } });

176 

177// Más tarde, cuando el usuario inicia una sesión en una carpeta

178const claimedQuery = spare.claim({

179 prompt: "What files are here?",

180 options: { cwd: "/path/to/project" },

181});

182 

183spare.claimed.catch((error: Error) => {

184 // A menos que el mensaje comience con "option_not_applied", el mensaje no se ejecutó:

185 // inicie esta sesión con query() en su lugar

186 console.error("Claim failed:", error.message);

187});

188 

189for await (const message of claimedQuery) {

190 console.log(message);

191}

192```

193 

138<h3 id="tool">194<h3 id="tool">

139 `tool()`195 `tool()`

140</h3>196</h3>


167 `ToolAnnotations`223 `ToolAnnotations`

168</h4>224</h4>

169 225 

170Re-exportado desde `@modelcontextprotocol/sdk/types.js`. Todos los campos son sugerencias opcionales; los clientes no deben confiar en ellos para decisiones de seguridad.226Definido en `@modelcontextprotocol/sdk/types.js`. Todos los campos son sugerencias opcionales; los clientes no deben confiar en ellos para decisiones de seguridad.

171 227 

172| Campo | Tipo | Predeterminado | Descripción |228| Campo | Tipo | Predeterminado | Descripción |

173| :- | :- | :- | :- |229| :- | :- | :- | :- |


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

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

261 317 

262<h4 id="example-2">318<h4 id="example-3">

263 Ejemplo319 Ejemplo

264</h4>320</h4>

265 321 


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

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

314 370 

315<h4 id="example-3">371<h4 id="example-4">

316 Ejemplo372 Ejemplo

317</h4>373</h4>

318 374 


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

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

454 510 

455<h4 id="example-4">511<h4 id="example-5">

456 Ejemplo512 Ejemplo

457</h4>513</h4>

458 514 


547| `toolAliases` | `Record<string, string>` | `undefined` | Mapee nombres de herramientas integradas a nombres de herramientas MCP para que Claude llame a su implementación MCP en lugar de la integrada. Por ejemplo, `{ Bash: 'mcp__workspace__bash' }` |603| `toolAliases` | `Record<string, string>` | `undefined` | Mapee nombres de herramientas integradas a nombres de herramientas MCP para que Claude llame a su implementación MCP en lugar de la integrada. Por ejemplo, `{ Bash: 'mcp__workspace__bash' }` |

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

549| `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 |605| `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 |

606| `verbatimPrompts` | `boolean` | `false` | Entregue cada mensaje tal como está escrito. El SDK envía cada mensaje de usuario con `client_composed: true`. Vea [`client_composed`](#sdkusermessage) para lo que Claude Code omite en esos mensajes. Use esta opción cuando el texto de su mensaje incluya contenido que el usuario final no escribió. Para control por turno, déjelo desactivado y establezca `client_composed` en mensajes individuales transmitidos en su lugar. Requiere TypeScript Agent SDK v0.3.280 o posterior y Claude Code v2.1.248 o posterior; la versión de Claude Code incluida con esas versiones de SDK satisface el requisito de versión de Claude Code |

550 607 

551<h4 id="handle-slow-or-stalled-api-responses">608<h4 id="handle-slow-or-stalled-api-responses">

552 Manejo de respuestas de API lentas o estancadas609 Manejo de respuestas de API lentas o estancadas


617 path: string,674 path: string,

618 options?: { maxBytes?: number; encoding?: 'utf-8' | 'base64' }675 options?: { maxBytes?: number; encoding?: 'utf-8' | 'base64' }

619 ): Promise<SDKControlReadFileResponse | null>;676 ): Promise<SDKControlReadFileResponse | null>;

677 reloadPlugins(options?: {

678 holdOnCacheImpact?: boolean;

679 }): Promise<SDKControlReloadPluginsResponse>;

620 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;680 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;

681 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;

621 accountInfo(): Promise<AccountInfo>;682 accountInfo(): Promise<AccountInfo>;

622 reconnectMcpServer(serverName: string): Promise<void>;683 reconnectMcpServer(serverName: string): Promise<void>;

623 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;684 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;


650| `mcpServerStatus()` | Devuelve el estado de los servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |711| `mcpServerStatus()` | Devuelve el estado de los servidores MCP conectados como [`McpServerStatus`](#mcpserverstatus)`[]` |

651| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) desglosando el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, es el mismo dato que `/context` muestra en una sesión interactiva. La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |712| `getContextUsage(opts?)` | Devuelve un [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) desglosando el uso de la ventana de contexto de la sesión por categoría, skill y herramienta. Con el `detail` predeterminado, es el mismo dato que `/context` muestra en una sesión interactiva. La [opción `detail`](#sdkcontrolgetcontextusageresponse) requiere Agent SDK v0.3.257 o posterior |

652| `readFile(path, options?)` | Lee un archivo del sistema de archivos de la sesión. Claude Code resuelve la ruta contra `cwd`; [What `readFile()` can read](#what-readfile-can-read) enumera los archivos que sirve. Pase `{ maxBytes }` para cambiar el límite de lectura (predeterminado 1 MB, techo 10 MB) y `{ encoding: 'base64' }` para archivos binarios como imágenes. Se resuelve con un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), o `null` en denegación de permiso, un archivo faltante, o un error de transporte. Requiere TypeScript SDK v0.2.121 o posterior |713| `readFile(path, options?)` | Lee un archivo del sistema de archivos de la sesión. Claude Code resuelve la ruta contra `cwd`; [What `readFile()` can read](#what-readfile-can-read) enumera los archivos que sirve. Pase `{ maxBytes }` para cambiar el límite de lectura (predeterminado 1 MB, techo 10 MB) y `{ encoding: 'base64' }` para archivos binarios como imágenes. Se resuelve con un [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), o `null` en denegación de permiso, un archivo faltante, o un error de transporte. Requiere TypeScript SDK v0.2.121 o posterior |

714| `reloadPlugins(options?)` | Recarga plugins desde el disco, por lo que los plugins que instala o edita a mitad de sesión llegan a la sesión en ejecución. Se resuelve con un [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) que enumera los comandos, subagentes, plugins y estado del servidor MCP de la sesión. Requiere Agent SDK v0.2.85 o posterior. La [opción `holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) requiere Agent SDK v0.3.268 o posterior |

653| `reloadSkills()` | Recarga skills desde el disco, por lo que los skills que agrega o edita a mitad de sesión se ponen a disposición de la sesión en ejecución. Se resuelve con un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) que enumera los skills disponibles después de la recarga. Requiere Agent SDK v0.3.163 o posterior |715| `reloadSkills()` | Recarga skills desde el disco, por lo que los skills que agrega o edita a mitad de sesión se ponen a disposición de la sesión en ejecución. Se resuelve con un [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) que enumera los skills disponibles después de la recarga. Requiere Agent SDK v0.3.163 o posterior |

716| `reloadOutputStyles()` | Re-lee [estilos de salida](/docs/es/output-styles) desde el disco, por lo que un archivo de estilo que agrega o edita a mitad de sesión se pone a disposición de la sesión en ejecución. Se resuelve con un [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) que enumera los nombres de estilo disponibles después de la recarga. Requiere Agent SDK v0.3.261 o posterior |

654| `accountInfo()` | Devuelve información de cuenta |717| `accountInfo()` | Devuelve información de cuenta |

655| `reconnectMcpServer(serverName)` | Reconecte un servidor MCP por nombre. Si el nombre también coincide con una entrada en un archivo de configuración como `.mcp.json` o `~/.claude.json`, Claude Code reconecta el servidor que configuró a través de [`mcpServers`](#options) o `setMcpServers()`, no la entrada del archivo de configuración. Ese orden de resolución requiere Claude Code v2.1.257 o posterior |718| `reconnectMcpServer(serverName)` | Reconecte un servidor MCP por nombre. Si el nombre también coincide con una entrada en un archivo de configuración como `.mcp.json` o `~/.claude.json`, Claude Code reconecta el servidor que configuró a través de [`mcpServers`](#options) o `setMcpServers()`, no la entrada del archivo de configuración. Ese orden de resolución requiere Claude Code v2.1.257 o posterior |

656| `toggleMcpServer(serverName, enabled)` | Habilite o deshabilite un servidor MCP por nombre, con la misma resolución de nombre que `reconnectMcpServer()`. Deshabilitar desconecta el servidor |719| `toggleMcpServer(serverName, enabled)` | Habilite o deshabilite un servidor MCP por nombre, con la misma resolución de nombre que `reconnectMcpServer()`. Deshabilitar desconecta el servidor |


672* **Aplicadas durante el turno actual**: `model`. Si cambia `model` mientras Claude está trabajando en un turno, la respuesta que Claude ya está generando finaliza en el modelo anterior, y el resto del turno, comenzando con la siguiente llamada que Claude Code hace al modelo, usa el nuevo. Los subagentes mantienen su propio modelo. Antes de v2.1.212, un cambio a mitad de turno esperaba el siguiente turno.735* **Aplicadas durante el turno actual**: `model`. Si cambia `model` mientras Claude está trabajando en un turno, la respuesta que Claude ya está generando finaliza en el modelo anterior, y el resto del turno, comenzando con la siguiente llamada que Claude Code hace al modelo, usa el nuevo. Los subagentes mantienen su propio modelo. Antes de v2.1.212, un cambio a mitad de turno esperaba el siguiente turno.

673* **Sin efecto a mitad de sesión**: las opciones de mensaje del sistema. Estos se resuelven una vez al inicio, por lo que la sesión en ejecución mantiene el valor original aunque la llamada tenga éxito. Para cambiarlos, inicie una nueva sesión.736* **Sin efecto a mitad de sesión**: las opciones de mensaje del sistema. Estos se resuelven una vez al inicio, por lo que la sesión en ejecución mantiene el valor original aunque la llamada tenga éxito. Para cambiarlos, inicie una nueva sesión.

674 737 

675`effortLevel` acepta un nombre de [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level). También acepta `"ultracode"`, que solicita esfuerzo `xhigh` con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado. `applyFlagSettings()` declara `effortLevel` sin ese valor, así que pase el equivalente `{ ultracode: true }` en TypeScript. El valor `ultracode` requiere Claude Code v2.1.203 o posterior y solo es aceptado por `applyFlagSettings()`, no por la clave `effortLevel` en un archivo de configuración.738`effortLevel` acepta un nombre de [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level). También acepta `"ultracode"`, que solicita esfuerzo `xhigh` con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado. `applyFlagSettings()` declara `effortLevel` sin ese valor, así que en TypeScript pase `{ ultracode: true, effortLevel: "xhigh" }` para el mismo resultado, o la clave [`ultracode`](/docs/es/settings-reference#ultracode) sola para activar ultracode en el nivel de esfuerzo actual de la sesión. El valor `ultracode` requiere Claude Code v2.1.203 o posterior y solo es aceptado por `applyFlagSettings()`, no por la clave `effortLevel` en un archivo de configuración. Antes de v2.1.284, la clave `ultracode` sola también establecía el nivel en `xhigh`.

676 739 

677Los 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. Esta es la misma capa que la [sección de precedencia en la página](#settings-precedence) llama opciones programáticas.740Los 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. Esta es la misma capa que la [sección de precedencia en la página](#settings-precedence) llama opciones programáticas.

678 741 


741 804 

742`WarmQuery` implementa `AsyncDisposable`, por lo que se puede usar con `await using` para limpieza automática.805`WarmQuery` implementa `AsyncDisposable`, por lo que se puede usar con `await using` para limpieza automática.

743 806 

807<h3 id="spareprocess">

808 `SpareProcess`

809</h3>

810 

811*Alpha.* Identificador devuelto por [`prewarm()`](#prewarm): un proceso de Claude Code iniciado que aún no está vinculado a una sesión y se puede reclamar una vez. Requiere TypeScript Agent SDK v0.3.282 o posterior.

812 

813```typescript theme={null}

814interface SpareProcess extends AsyncDisposable {

815 claim(params: {

816 prompt: string | AsyncIterable<SDKUserMessage>;

817 options: ClaimOptions;

818 }): Query;

819 readonly claimed: Promise<{ cwd: string; sessionId: string; parkedMs?: number; sdkMcpSettled: boolean }>;

820 readonly exited: Promise<void>;

821 close(): void;

822}

823```

824 

825<h4 id="members">

826 Miembros

827</h4>

828 

829| Miembro | Descripción |

830| :- | :- |

831| `claim({ prompt, options })` | Vincule el repuesto a una sesión en `options.cwd` y envíe su primer mensaje. Devuelve un [`Query`](#query-object) de forma síncrona, como lo hace `query()`. Solo se puede llamar una vez |

832| `claimed` | Se resuelve con el directorio de trabajo y el ID de la sesión una vez que Claude Code acepta la reclamación. Rechaza cuando Claude Code rechaza la reclamación, cuando el proceso salió o fue cerrado primero, y, con un mensaje que comienza con `option_not_applied`, cuando la sesión se ejecuta sin el `model` o `maxThinkingTokens` que solicitó |

833| `exited` | Se resuelve cuando el proceso sale, reclamado o no. Reemplace un repuesto que sale antes de que lo reclame |

834| `close()` | Termine el proceso. Antes de una reclamación esto descarta el repuesto y rechaza `claimed` |

835 

836`options.cwd` es requerido. Una reclamación también puede establecer `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, una superposición de configuración de marca en `settings`, `appendSystemPrompt`, `title`, `agents`, y tokens por sesión en `env`.

837 

838Claude Code puede rechazar una reclamación, por ejemplo para una carpeta que no existe o una cuya configuración del proyecto establece `env`, `agent`, o `model`. Cuando `claimed` rechaza con un mensaje que comienza con `option_not_applied`, la sesión se ejecuta sin el `model` o `maxThinkingTokens` que solicitó. Después de cualquier otro rechazo su mensaje no ha ejecutado, así que inicie la sesión con `query()` en su lugar.

839 

744<h3 id="sdkcontrolinitializeresponse">840<h3 id="sdkcontrolinitializeresponse">

745 `SDKControlInitializeResponse`841 `SDKControlInitializeResponse`

746</h3>842</h3>


824 tokens: number;920 tokens: number;

825 color: string;921 color: string;

826 isDeferred?: boolean;922 isDeferred?: boolean;

923 kind: "used" | "free" | "buffer" | "deferred";

827 }[];924 }[];

828 totalTokens: number;925 totalTokens: number;

829 maxTokens: number;926 maxTokens: number;


913 1010 

914Lea la atribución de tokens de los campos de colección:1011Lea la atribución de tokens de los campos de colección:

915 1012 

916* `categories` contiene los totales por categoría.1013* `categories` contiene los totales por categoría. Cada entrada `kind` clasifica la fila con los mismos valores que [`SDKContextUsageCategory`](#sdkcontextusagecategory). Clasifique las filas en él en lugar de en el `name` de visualización. El campo requiere Agent SDK v0.3.268 o posterior.

917* `mcpTools` y `agents` atribuyen tokens a herramientas MCP individuales y subagentes.1014* `mcpTools` y `agents` atribuyen tokens a herramientas MCP individuales y subagentes.

918* `memoryFiles` enumera cada archivo de memoria cargado con su costo.1015* `memoryFiles` enumera cada archivo de memoria cargado con su costo.

919* `skills.skillFrontmatter` atribuye los tokens de la lista de skills a cada skill incluido. Los conteos por skill miden la entrada de cada skill tal como Claude Code realmente la envía, que puede ser más corta que el frontmatter completo del skill. Compare `skills.totalSkills` con `skills.includedSkills` para ver si cada skill descubierto hizo en la lista.1016* `skills.skillFrontmatter` atribuye los tokens de la lista de skills a cada skill incluido. Los conteos por skill miden la entrada de cada skill tal como Claude Code realmente la envía, que puede ser más corta que el frontmatter completo del skill. Compare `skills.totalSkills` con `skills.includedSkills` para ver si cada skill descubierto hizo en la lista.


950 1047 

951Las reglas de negación y solicitud de Read aún bloquean una ruta coincidente, y una regla de permiso amplia de Read no abre el resto del sistema de archivos a `readFile()`. Para cualquier otra cosa la llamada se resuelve con `null`.1048Las reglas de negación y solicitud de Read aún bloquean una ruta coincidente, y una regla de permiso amplia de Read no abre el resto del sistema de archivos a `readFile()`. Para cualquier otra cosa la llamada se resuelve con `null`.

952 1049 

1050<h3 id="sdkcontrolreloadpluginsresponse">

1051 `SDKControlReloadPluginsResponse`

1052</h3>

1053 

1054Tipo de retorno de [`reloadPlugins()`](#query-object).

1055 

1056```typescript theme={null}

1057type SDKControlReloadPluginsResponse = {

1058 commands: SlashCommand[];

1059 agents: AgentInfo[];

1060 plugins: {

1061 name: string;

1062 path: string;

1063 source?: string;

1064 version?: string;

1065 }[];

1066 mcpServers: McpServerStatus[];

1067 error_count: number;

1068 held?: boolean;

1069 cache_impact?: {

1070 mcp_servers_added: string[];

1071 mcp_servers_removed: string[];

1072 lsp_tool_change: ("adds" | "may-add" | "removes" | "may-remove") | null;

1073 };

1074};

1075```

1076 

1077Los campos de colección describen la sesión después de la llamada:

1078 

1079* `commands`, `agents`, y `mcpServers`: los comandos, subagentes y estado del servidor MCP de la sesión, en las mismas formas que `supportedCommands()`, `supportedAgents()`, y `mcpServerStatus()` devuelven. `supportedAgents()` sigue devolviendo la lista capturada en la inicialización, así que lea `agents` aquí para el conjunto después de una recarga

1080* `plugins`: cada plugin cargado con su `name` e instalación `path`. `version` repite lo que el manifiesto del plugin declara y está controlado por el autor del plugin, así que valídelo antes de confiar en él. Se omite cuando el manifiesto no declara ninguno

1081* `error_count`: el número de errores al cargar plugins

1082 

1083Pase `{ holdOnCacheImpact: true }` a `reloadPlugins()` para retener una recarga que invalidaría el caché de mensaje de la conversación en lugar de aplicarla. Claude Code ejecuta la verificación que el comando interactivo `/reload-plugins` hace antes de [advertir sobre el costo del caché](/docs/es/prompt-caching#enabling-or-disabling-a-plugin). La opción requiere Agent SDK v0.3.268 o posterior. Un ejecutable de Claude Code más antiguo que v2.1.268, como uno que señala `pathToClaudeCodeExecutable`, ignora la opción y aplica la recarga.

1084 

1085Cuando pasa la opción, lea `held` para aprender qué sucedió:

1086 

1087* `true`: la recarga no se aplicó, y los campos de colección describen la sesión tal como aún es. `cache_impact` dice qué aplicar cambiaría. Para aplicar de todas formas, llame a `reloadPlugins()` nuevamente sin la opción.

1088* `false`: la verificación no encontró impacto en el caché, y la recarga se aplicó.

1089* Ausente: no pasó la opción, o el ejecutable de Claude Code es más antiguo que v2.1.268 y aplicó la recarga.

1090 

1091`cache_impact` está presente solo junto a `held: true`. `mcp_servers_added` y `mcp_servers_removed` nombran los servidores MCP de plugin que la recarga registraría o eliminaría, como nombres con alcance `plugin:<plugin>:<server>`. Los nombres están creados por el plugin, así que valídelos antes de mostrarlos. `lsp_tool_change` dice si aplicar agregaría o eliminaría la herramienta LSP, o `null` cuando no haría ninguno. Las formas `may-` significan que la verificación no pudo ver completamente el conjunto de plugins pendiente.

1092 

953<h3 id="sdkcontrolreloadskillsresponse">1093<h3 id="sdkcontrolreloadskillsresponse">

954 `SDKControlReloadSkillsResponse`1094 `SDKControlReloadSkillsResponse`

955</h3>1095</h3>


964 1104 

965`skills` enumera los skills disponibles después de la recarga, en la misma forma [`SlashCommand`](#slashcommand) que `supportedCommands()` devuelve.1105`skills` enumera los skills disponibles después de la recarga, en la misma forma [`SlashCommand`](#slashcommand) que `supportedCommands()` devuelve.

966 1106 

1107<h3 id="sdkcontrolreloadoutputstylesresponse">

1108 `SDKControlReloadOutputStylesResponse`

1109</h3>

1110 

1111Tipo de retorno de [`reloadOutputStyles()`](#query-object).

1112 

1113```typescript theme={null}

1114type SDKControlReloadOutputStylesResponse = {

1115 available_output_styles: string[];

1116};

1117```

1118 

1119`available_output_styles` enumera los nombres de los estilos de salida integrados y personalizados disponibles después de la recarga.

1120 

967<h3 id="sdkcontrolmcpreadresourceresponse">1121<h3 id="sdkcontrolmcpreadresourceresponse">

968 `SDKControlMcpReadResourceResponse`1122 `SDKControlMcpReadResourceResponse`

969</h3>1123</h3>


984 1138 

985Pase a `readMcpResource()` el nombre del servidor tal como `mcpServerStatus()` lo reporta y un URI `ui://`, como el `ui.resourceUri` que una herramienta declara en su [`_meta`](#mcpserverstatus). La llamada rechaza para cualquier otro esquema de URI, para un [servidor MCP del SDK](#createsdkmcpserver) que su aplicación aloja a sí misma, y para un servidor que no está conectado. Está disponible cuando el mensaje de inicialización [`capabilities`](#sdksystemmessage) incluye `mcp_read_resource_v1`.1139Pase a `readMcpResource()` el nombre del servidor tal como `mcpServerStatus()` lo reporta y un URI `ui://`, como el `ui.resourceUri` que una herramienta declara en su [`_meta`](#mcpserverstatus). La llamada rechaza para cualquier otro esquema de URI, para un [servidor MCP del SDK](#createsdkmcpserver) que su aplicación aloja a sí misma, y para un servidor que no está conectado. Está disponible cuando el mensaje de inicialización [`capabilities`](#sdksystemmessage) incluye `mcp_read_resource_v1`.

986 1140 

987Cada entrada `contents` es un elemento de contenido tal como el servidor lo envió. `blob` contiene datos base64 para un elemento binario, y `_meta` es el `_meta` del elemento, donde un servidor MCP Apps pone el `ui.csp` y `ui.permissions` del recurso. El contenido es HTML de terceros no confiable, así que renderícelo en un sandbox.1141Cada entrada `contents` es un elemento de contenido tal como el servidor lo envió, menos cualquier clave `_meta` bajo el prefijo `com.anthropic/`, que está reservado para Claude Code. `blob` contiene datos base64 para un elemento binario, y `_meta` es el `_meta` del elemento, donde un servidor MCP Apps pone el `ui.csp` y `ui.permissions` del recurso.

1142 

1143El contenido es HTML de terceros no confiable, así que renderícelo en un sandbox.

988 1144 

989<h3 id="agentdefinition">1145<h3 id="agentdefinition">

990 `AgentDefinition`1146 `AgentDefinition`


1142 blockedPath?: string;1298 blockedPath?: string;

1143 mcpServer?: { name: string; source: string };1299 mcpServer?: { name: string; source: string };

1144 decisionReason?: string;1300 decisionReason?: string;

1301 defaultToNo?: boolean;

1302 suppressAlwaysAllowRule?: boolean;

1145 toolUseID: string;1303 toolUseID: string;

1146 agentID?: string;1304 agentID?: string;

1147 requestId: string;1305 requestId: string;


1156| `blockedPath` | `string` | La ruta de archivo que activó la solicitud de permiso, si corresponde |1314| `blockedPath` | `string` | La ruta de archivo que activó la solicitud de permiso, si corresponde |

1157| `mcpServer` | `{ name: string; source: string }` | Para una herramienta `mcp__*`, el servidor MCP que la sirve y de dónde vino la definición de ese servidor, con los campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para otras herramientas. Requiere Agent SDK v0.3.274 o posterior |1315| `mcpServer` | `{ name: string; source: string }` | Para una herramienta `mcp__*`, el servidor MCP que la sirve y de dónde vino la definición de ese servidor, con los campos de [`McpServerProvenance`](#mcpserverprovenance). Ausente para otras herramientas. Requiere Agent SDK v0.3.274 o posterior |

1158| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |1316| `decisionReason` | `string` | Explica por qué se activó esta solicitud de permiso |

1317| `defaultToNo` | `boolean` | Cuando es `true`, una sola pulsación de tecla extraviada no debe aprobar esta solicitud: abra su mensaje en su opción de rechazo, no preseleccione aprobar, y no ofrezca un atajo de aprobación de una sola tecla. Requiere Agent SDK v0.3.268 o posterior |

1318| `suppressAlwaysAllowRule` | `boolean` | Cuando es `true`, no ofrezca una opción de siempre permitir persistente para esta solicitud, porque la regla que escribiría otorga más que la acción de la solicitud. Requiere Agent SDK v0.3.268 o posterior |

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

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

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


1380 context_usage?: SDKContextUsage;1540 context_usage?: SDKContextUsage;

1381 user_message_uuid?: string;1541 user_message_uuid?: string;

1382 user_message_uuids?: string[];1542 user_message_uuids?: string[];

1543 resume_reason?: string;

1383};1544};

1384```1545```

1385 1546 


1394 1555 

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

1396 1557 

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

1398 1559 

1399`timestamp` es la hora ISO 8601 cuando el contenido del mensaje terminó de generarse en el proceso que lo produjo. El valor proviene del reloj de esa máquina, así que úselo solo para mostrar y no ordene los mensajes por él. Un turno de API puede producir varios mensajes del asistente que comparten un `message.id`, cada uno con su propio `timestamp`. Cuando el campo está ausente, recurra a la hora en que recibió el mensaje.1560`timestamp` es la hora ISO 8601 cuando el contenido del mensaje terminó de generarse en el proceso que lo produjo. El valor proviene del reloj de esa máquina, así que úselo solo para mostrar y no ordene los mensajes por él. Un turno de API puede producir varios mensajes del asistente que comparten un `message.id`, cada uno con su propio `timestamp`. Cuando el campo está ausente, recurra a la hora en que recibió el mensaje.

1400 1561 


1416 parent_tool_use_id: string | null;1577 parent_tool_use_id: string | null;

1417 isSynthetic?: boolean;1578 isSynthetic?: boolean;

1418 shouldQuery?: boolean;1579 shouldQuery?: boolean;

1580 client_composed?: true;

1419 tool_use_result?: unknown;1581 tool_use_result?: unknown;

1420 origin?: SDKMessageOrigin;1582 origin?: SDKMessageOrigin;

1421 inline_pastes?: string[];1583 inline_pastes?: string[];


1424 1586 

1425Establezca `pasted_content` para enviar contenido que el usuario pegó en su interfaz de prompt en lugar de escribir, una entrada por pegado, cada una una cadena o una matriz de bloques de contenido. Claude Code añade el texto de cada entrada después del texto escrito, en orden, y puede envolver cada pegado en etiquetas `<pasted_content>`. Los bloques que no sean texto se ignoran, así que envíe imágenes y documentos en `message.content`. Requiere Agent SDK v0.3.277 o posterior.1587Establezca `pasted_content` para enviar contenido que el usuario pegó en su interfaz de prompt en lugar de escribir, una entrada por pegado, cada una una cadena o una matriz de bloques de contenido. Claude Code añade el texto de cada entrada después del texto escrito, en orden, y puede envolver cada pegado en etiquetas `<pasted_content>`. Los bloques que no sean texto se ignoran, así que envíe imágenes y documentos en `message.content`. Requiere Agent SDK v0.3.277 o posterior.

1426 1588 

1427Establezca `shouldQuery` en `false` para añadir el mensaje a la transcripción sin activar un turno del asistente. El mensaje se retiene y se fusiona en el siguiente mensaje del usuario que sí activa un turno. Úselo para inyectar contexto, como la salida de un comando que ejecutó fuera de banda, sin gastar una llamada de modelo en él.1589Establezca `shouldQuery` o `client_composed` para cambiar cómo Claude Code maneja un mensaje que envía:

1590 

1591* `shouldQuery`: establézcalo en `false` para añadir el mensaje a la transcripción sin activar un turno del asistente. El mensaje se retiene y se fusiona en el siguiente mensaje del usuario que sí activa un turno. Úselo para inyectar contexto, como la salida de un comando que ejecutó fuera de banda, sin gastar una llamada de modelo en él.

1592* `client_composed`: establézcalo en `true` para que Claude Code entregue el texto del mensaje tal como está escrito. Claude Code entonces no expande menciones `@path` o [`@server:resource`](/docs/es/mcp#use-mcp-resources), y no ejecuta texto que comience con `/` como un comando. Mientras la opción [`verbatimPrompts`](#options) está activada, el SDK establece el campo en cada mensaje. Requiere TypeScript Agent SDK v0.3.280 o posterior y Claude Code v2.1.248 o posterior.

1428 1593 

1429En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurado de la herramienta en lugar del texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` coincidente, así que el campo se escribe `unknown`; las formas integradas se enumeran en [Tipos de Salida de Herramientas](#tool-output-types).1594En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurado de la herramienta en lugar del texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` coincidente, así que el campo se escribe `unknown`; las formas integradas se enumeran en [Tipos de Salida de Herramientas](#tool-output-types).

1430 1595 


1448 message: MessageParam;1613 message: MessageParam;

1449 parent_tool_use_id: string | null;1614 parent_tool_use_id: string | null;

1450 isSynthetic?: boolean;1615 isSynthetic?: boolean;

1616 client_composed?: true;

1451 tool_use_result?: unknown;1617 tool_use_result?: unknown;

1452 origin?: SDKMessageOrigin;1618 origin?: SDKMessageOrigin;

1453 isReplay: true;1619 isReplay: true;


1480 ttft_stream_ms?: number;1646 ttft_stream_ms?: number;

1481 user_message_uuid?: string;1647 user_message_uuid?: string;

1482 user_message_uuids?: string[];1648 user_message_uuids?: string[];

1649 resume_reason?: string;

1650 local_command?: string;

1483 request_sent_wall_ms?: number;1651 request_sent_wall_ms?: number;

1484 first_content_frame_ms?: number;1652 first_content_frame_ms?: number;

1485 first_stream_post_ms?: number;1653 first_stream_post_ms?: number;


1493 structured_output?: unknown;1661 structured_output?: unknown;

1494 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };1662 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };

1495 terminal_reason?: TerminalReason;1663 terminal_reason?: TerminalReason;

1664 result_index?: number;

1496 fast_mode_state?: FastModeState;1665 fast_mode_state?: FastModeState;

1497 fast_mode_disabled_reason?: FastModeDisabledReason;1666 fast_mode_disabled_reason?: FastModeDisabledReason;

1498 origin?: SDKMessageOrigin;1667 origin?: SDKMessageOrigin;


1520 startup_failure_reason?: SDKStartupFailureReason;1689 startup_failure_reason?: SDKStartupFailureReason;

1521 user_message_uuid?: string;1690 user_message_uuid?: string;

1522 user_message_uuids?: string[];1691 user_message_uuids?: string[];

1692 resume_reason?: string;

1523 terminal_reason?: TerminalReason;1693 terminal_reason?: TerminalReason;

1694 result_index?: number;

1524 fast_mode_state?: FastModeState;1695 fast_mode_state?: FastModeState;

1525 fast_mode_disabled_reason?: FastModeDisabledReason;1696 fast_mode_disabled_reason?: FastModeDisabledReason;

1526 origin?: SDKMessageOrigin;1697 origin?: SDKMessageOrigin;


1534* `ttft_stream_ms`: tiempo en milisegundos hasta el primer evento de transmisión `message_start`, cuando se abre la transmisión de respuesta. Menor que `ttft_ms`; la brecha entre los dos es el tiempo dedicado a transmitir el primer mensaje. Presente solo en el brazo de éxito.1705* `ttft_stream_ms`: tiempo en milisegundos hasta el primer evento de transmisión `message_start`, cuando se abre la transmisión de respuesta. Menor que `ttft_ms`; la brecha entre los dos es el tiempo dedicado a transmitir el primer mensaje. Presente solo en el brazo de éxito.

1535* `user_message_uuid`: el `uuid` del mensaje que envió que este turno respondió. Consulte [`user_message_uuid`](#user_message_uuid) para saber qué resultados lo llevan.1706* `user_message_uuid`: el `uuid` del mensaje que envió que este turno respondió. Consulte [`user_message_uuid`](#user_message_uuid) para saber qué resultados lo llevan.

1536* `user_message_uuids`: los `uuid`s de cada mensaje que envió que Claude Code respondió en este turno. Consulte [`user_message_uuids`](#user_message_uuids).1707* `user_message_uuids`: los `uuid`s de cada mensaje que envió que Claude Code respondió en este turno. Consulte [`user_message_uuids`](#user_message_uuids).

1708* `resume_reason`: por qué Claude Code volvió a ejecutar este turno después de que una reiniciación lo interrumpió. Presente en ambos brazos, y solo en tal re-ejecución. Consulte [`resume_reason`](#resume_reason).

1709*

1710 

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

1712 

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

1538* `first_content_frame_ms`: tiempo en milisegundos hasta el primer evento de transmisión `content_block_start` o `content_block_delta`, contando bloques de pensamiento como contenido. Presente solo en el brazo de éxito, cuando `is_error` es false. Requiere Agent SDK v0.3.260 o posterior.1714*

1539* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: tiempos para cargar el primer evento de transmisión del turno. Claude Code los registra solo en sesiones que transmite a claude.ai, como [sesiones en la nube](/docs/es/claude-code-on-the-web), y los resultados que `query()` produce no los llevan. Requiere Agent SDK v0.3.260 o posterior.1715 

1716`first_content_frame_ms`: tiempo en milisegundos hasta el primer evento de transmisión `content_block_start` o `content_block_delta`, contando bloques de pensamiento como contenido. Presente solo en el brazo de éxito, cuando `is_error` es false. Requiere Agent SDK v0.3.260 o posterior.

1717 

1718*

1719 

1720`first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: tiempos para cargar el primer evento de transmisión del turno. Claude Code los registra solo en sesiones que transmite a claude.ai, como [sesiones en la nube](/docs/es/claude-code-on-the-web), y los resultados que `query()` produce no los llevan. Requiere Agent SDK v0.3.260 o posterior.

1721 

1540* `usage`: solo bucle del agente principal. Excluye llamadas de subagente y modelo auxiliar, y es por turno en sesiones de entrada de transmisión. Prefiera `modelUsage` para contabilidad de tokens/costos.1722* `usage`: solo bucle del agente principal. Excluye llamadas de subagente y modelo auxiliar, y es por turno en sesiones de entrada de transmisión. Prefiera `modelUsage` para contabilidad de tokens/costos.

1541* `modelUsage`: totales por modelo para cada llamada de modelo realizada a través de la canalización de consultas durante esta llamada `query()`, incluido el bucle principal, subagentes y llamadas internas como compactación y agentes de Workflow. Las llamadas auxiliares fuera de esa canalización, como el clasificador de permisos y solicitudes de conteo de tokens, se excluyen. Una llamada que reanuda una sesión también cuenta los [totales por modelo restaurados de las llamadas anteriores de la sesión](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). En sesiones de entrada de transmisión los totales son acumulativos entre turnos, así que lea el resultado más reciente en lugar de sumar entre resultados. Consulte [Rastrear costos en modo de entrada de transmisión](/docs/es/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para reinicializaciones y [Recuperar totales después de un bloqueo de sesión](/docs/es/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) para resultados puestos a cero.1723* `modelUsage`: totales por modelo para cada llamada de modelo realizada a través de la canalización de consultas durante esta llamada `query()`, incluido el bucle principal, subagentes y llamadas internas como compactación y agentes de Workflow. Las llamadas auxiliares fuera de esa canalización, como el clasificador de permisos y solicitudes de conteo de tokens, se excluyen. Una llamada que reanuda una sesión también cuenta los [totales por modelo restaurados de las llamadas anteriores de la sesión](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). En sesiones de entrada de transmisión los totales son acumulativos entre turnos, así que lea el resultado más reciente en lugar de sumar entre resultados. Consulte [Rastrear costos en modo de entrada de transmisión](/docs/es/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para reinicializaciones y [Recuperar totales después de un bloqueo de sesión](/docs/es/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) para resultados puestos a cero.

1542* `total_cost_usd`: costo estimado acumulativo en USD, cubriendo las mismas llamadas que `modelUsage` y reiniciado en los mismos puntos. Una llamada que reanuda una sesión también cuenta los [totales restaurados de las llamadas anteriores de la sesión](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Es una estimación, no una declaración de facturación. Consulte [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) para advertencias de precisión.1724* `total_cost_usd`: costo estimado acumulativo en USD, cubriendo las mismas llamadas que `modelUsage` y reiniciado en los mismos puntos. Una llamada que reanuda una sesión también cuenta los [totales restaurados de las llamadas anteriores de la sesión](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Es una estimación, no una declaración de facturación. Consulte [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking) para advertencias de precisión.

1543* `queued_turn_count`: el número de mensajes que envió con `origin: { kind: "human" }` que aún están esperando cuando Claude Code produjo el resultado. Consulte [`queued_turn_count`](#queued_turn_count) para saber qué significan `0` y un campo ausente.1725* `queued_turn_count`: el número de mensajes que envió con `origin: { kind: "human" }` que aún están esperando cuando Claude Code produjo el resultado. Consulte [`queued_turn_count`](#queued_turn_count) para saber qué significan `0` y un campo ausente.

1544* `startup_failure_reason`: por qué Claude Code se negó a iniciar, en el resultado `error_during_execution` que escribe antes de salir en un fallo de inicio conocido. Consulte [`startup_failure_reason`](#startup_failure_reason) para los valores y qué fallos lo llevan. Requiere Agent SDK v0.3.274 o posterior.1726*

1727 

1728`result_index`: dónde cae este resultado en el orden de entrega de la ejecución, contando desde 0 en cada resultado que el proceso escribe. Presente en ambos brazos. Un resultado cuya escritura falla aún consume su número, así que una brecha en la secuencia significa que se perdió un resultado. Requiere Agent SDK v0.3.268 o posterior.

1729 

1730*

1731 

1732`startup_failure_reason`: por qué Claude Code se negó a iniciar, en el resultado `error_during_execution` que escribe antes de salir en un fallo de inicio conocido. Consulte [`startup_failure_reason`](#startup_failure_reason) para los valores y qué fallos lo llevan. Requiere Agent SDK v0.3.274 o posterior.

1733 

1545* `terminal_reason`: por qué terminó el bucle. Uno de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"`, o `"turn_setup_failed"`.1734* `terminal_reason`: por qué terminó el bucle. Uno de `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"`, o `"turn_setup_failed"`.

1546* `fast_mode_state`: uno de `"on"`, `"off"`, o `"cooldown"`.1735* `fast_mode_state`: uno de `"on"`, `"off"`, o `"cooldown"`.

1547* `fast_mode_disabled_reason`: por qué [el modo rápido](/docs/es/fast-mode) no está disponible ahora. Ausente cuando nada bloquea el modo rápido, aunque una solicitud aún puede ejecutarse a velocidad estándar. Durante el enfriamiento después de un límite de velocidad de modo rápido, Claude Code reporta `fast_mode_state: "cooldown"` sin código de razón y vuelve a habilitar el modo rápido cuando expira el enfriamiento. Requiere Claude Code v2.1.219 o posterior.1736* `fast_mode_disabled_reason`: por qué [el modo rápido](/docs/es/fast-mode) no está disponible ahora. Ausente cuando nada bloquea el modo rápido, aunque una solicitud aún puede ejecutarse a velocidad estándar. Durante el enfriamiento después de un límite de velocidad de modo rápido, Claude Code reporta `fast_mode_state: "cooldown"` sin código de razón y vuelve a habilitar el modo rápido cuando expira el enfriamiento. Requiere Claude Code v2.1.219 o posterior.


1580Qué mensaje de los suyos responde un turno depende de cómo comenzó el turno:1769Qué mensaje de los suyos responde un turno depende de cómo comenzó el turno:

1581 1770 

1582* **Un mensaje regular que envió**, es decir, uno sin `isSynthetic: true`: el turno responde ese mensaje durante toda su ejecución. Cuando envía varios mensajes juntos, Claude Code puede fusionarlos en un turno, y el campo entonces lleva solo el `uuid` del último mensaje. Para hacer coincidir la respuesta con cualquiera de los mensajes fusionados, use [`user_message_uuids`](#user_message_uuids).1771* **Un mensaje regular que envió**, es decir, uno sin `isSynthetic: true`: el turno responde ese mensaje durante toda su ejecución. Cuando envía varios mensajes juntos, Claude Code puede fusionarlos en un turno, y el campo entonces lleva solo el `uuid` del último mensaje. Para hacer coincidir la respuesta con cualquiera de los mensajes fusionados, use [`user_message_uuids`](#user_message_uuids).

1583* **Un mensaje que envió con `isSynthetic: true`**: el turno responde ese mensaje al principio. Si Claude Code recoge un mensaje regular suyo entre llamadas de herramientas, el turno responde el mensaje recogido a partir de entonces. Repetir el `uuid` de un mensaje sintético requiere Agent SDK v0.3.265 o posterior; las versiones anteriores no repiten nada en turnos sintéticos.1772*

1584* **Un prompt que Claude Code generó por sí mismo**, como el turno que continúa el trabajo interrumpido después de que se reinicia una sesión: el turno no responde ningún mensaje suyo al principio y sus marcos no llevan ningún eco. Si Claude Code recoge un mensaje regular suyo entre llamadas de herramientas, el turno responde ese mensaje a partir de entonces. El eco de recogida requiere Agent SDK v0.3.265 o posterior; las versiones anteriores no repiten nada en estos turnos.1773 

1774**Un mensaje que envió con `isSynthetic: true`**: el turno responde ese mensaje al principio. Si Claude Code recoge un mensaje regular suyo entre llamadas de herramientas, el turno responde el mensaje recogido a partir de entonces. Repetir el `uuid` de un mensaje sintético requiere Agent SDK v0.3.265 o posterior; las versiones anteriores no repiten nada en turnos sintéticos.

1775 

1776*

1777 

1778**El prompt que Claude Code genera para volver a ejecutar un turno interrumpido bajo [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars)**: cuando el último prompt del turno interrumpido es un mensaje regular que envió, ya sea que abriera el turno o Claude Code lo recogiera durante el turno, la re-ejecución responde ese mensaje al principio. [`resume_reason`](#resume_reason) indica los marcos de la re-ejecución del intento interrumpido. Cuando el último prompt no es un mensaje regular suyo, la re-ejecución no responde ningún mensaje suyo al principio. Si Claude Code recoge un mensaje regular suyo entre llamadas de herramientas, el turno responde el mensaje recogido a partir de entonces. Repetir el prompt del turno interrumpido requiere Agent SDK v0.3.268 o posterior.

1779 

1780*

1781 

1782**Cualquier otro prompt que Claude Code generó por sí mismo**: el turno no responde ningún mensaje suyo al principio y sus marcos no llevan ningún eco. Si Claude Code recoge un mensaje regular suyo entre llamadas de herramientas, el turno responde ese mensaje a partir de entonces. El eco de recogida requiere Agent SDK v0.3.265 o posterior; las versiones anteriores no repiten nada en estos turnos.

1585 1783 

1586Claude Code repite el `uuid` del mensaje respondido en tres tipos de marco:1784Claude Code repite el `uuid` del mensaje respondido en tres tipos de marco:

1587 1785 

1588* **El resultado**: cada resultado de un turno que respondió un mensaje que envió. Cada tal resultado lo lleva en Agent SDK v0.3.265 o posterior. Antes de v0.3.265, el resultado de éxito de un turno que un mensaje regular inició carecía de él cuando el turno no envió ninguna solicitud de API o terminó con una llamada de herramienta diferida. Antes de v0.3.246, los resultados de error también carecían de él, y antes de v0.3.216 cada resultado lo hacía.1786* **El resultado**: cada resultado de un turno que respondió un mensaje que envió. Cada tal resultado lo lleva en Agent SDK v0.3.265 o posterior. Antes de v0.3.265, el resultado de éxito de un turno que un mensaje regular inició carecía de él cuando el turno no envió ninguna solicitud de API o terminó con una llamada de herramienta diferida. Antes de v0.3.246, los resultados de error también carecían de él, y antes de v0.3.216 cada resultado lo hacía.

1589* **La primera respuesta del turno**: el primer [mensaje del asistente](#sdkassistantmessage), o con `includePartialMessages` el primer [evento de transmisión](#sdkpartialassistantmessage) cuyo `event.type` no es `ping`, para que pueda vincular la respuesta antes de que llegue el resultado. Cuando un turno no transmite nada, Claude Code lo establece en el primer mensaje del asistente en su lugar. El eco de primera respuesta requiere Agent SDK v0.3.246 o posterior. Cuando el mensaje que el turno está respondiendo cambia a mitad del turno, la primera respuesta después del cambio también lleva el campo, en Agent SDK v0.3.265 o posterior; las versiones anteriores lo establecen en un marco de respuesta por turno.1787*

1590* **Cada marco [`thinking_tokens`](#sdkthinkingtokensmessage) del turno**: para que pueda atribuir el progreso del pensamiento al mensaje que envió sin esperar la primera respuesta del turno. Requiere Agent SDK v0.3.260 o posterior.1788 

1789**La primera respuesta del turno**: el primer [mensaje del asistente](#sdkassistantmessage), o con `includePartialMessages` el primer [evento de transmisión](#sdkpartialassistantmessage) cuyo `event.type` no es `ping`, para que pueda vincular la respuesta antes de que llegue el resultado. Cuando un turno no transmite nada, Claude Code lo establece en el primer mensaje del asistente en su lugar. El eco de primera respuesta requiere Agent SDK v0.3.246 o posterior. Cuando el mensaje que el turno está respondiendo cambia a mitad del turno, la primera respuesta después del cambio también lleva el campo, en Agent SDK v0.3.265 o posterior; las versiones anteriores lo establecen en un marco de respuesta por turno.

1790 

1791*

1792 

1793**Cada marco [`thinking_tokens`](#sdkthinkingtokensmessage) del turno**: para que pueda atribuir el progreso del pensamiento al mensaje que envió sin esperar la primera respuesta del turno. Requiere Agent SDK v0.3.260 o posterior.

1591 1794 

1592Claude Code omite el campo en estos casos:1795Claude Code omite el campo en estos casos:

1593 1796 

1594* Marcos de respuesta que no sean esas primeras respuestas1797* Marcos de respuesta que no sean esas primeras respuestas

1595* Marcos de subagente1798* Marcos de subagente

1596* Turnos que no responden ningún mensaje con un `uuid`: el turno respondió un mensaje que envió sin uno, o Claude Code inició el turno por sí mismo y no recogió ningún mensaje regular que tenga uno1799* Turnos que no responden ningún mensaje de los suyos, o responden un mensaje que envió sin un `uuid`

1597* Resultados que no responden ningún mensaje que envió, como el resultado puesto a cero después de un bloqueo de proceso de trabajo1800* Resultados que no responden ningún mensaje que envió, como el resultado puesto a cero después de un bloqueo de proceso de trabajo

1598 1801 

1599<h4 id="user_message_uuids">1802<h4 id="user_message_uuids">


1602 1805 

1603Los `uuid`s de cada mensaje que envió que Claude Code respondió en este turno. Cuando envía varios mensajes juntos, Claude Code puede fusionarlos en un turno, y `user_message_uuid` entonces nombra solo el último de ellos. Para hacer coincidir la respuesta con cualquiera de los mensajes fusionados, busque el `uuid` de ese mensaje en cualquier lugar de esta lista. Requiere Agent SDK v0.3.259 o posterior.1806Los `uuid`s de cada mensaje que envió que Claude Code respondió en este turno. Cuando envía varios mensajes juntos, Claude Code puede fusionarlos en un turno, y `user_message_uuid` entonces nombra solo el último de ellos. Para hacer coincidir la respuesta con cualquiera de los mensajes fusionados, busque el `uuid` de ese mensaje en cualquier lugar de esta lista. Requiere Agent SDK v0.3.259 o posterior.

1604 1807 

1605Claude Code establece la lista junto con `user_message_uuid` en cada marco de respuesta que lleva ese campo y en el resultado. Para el conjunto completo de marcos que llevan `user_message_uuid`, y la versión que cada uno requiere, consulte [`user_message_uuid`](#user_message_uuid). La lista siempre contiene `user_message_uuid` y contiene como máximo 64 entradas.1808Claude Code establece la lista junto con `user_message_uuid` en cada marco de respuesta que lleva ese campo y en el resultado. Para el conjunto completo de marcos de turno que llevan `user_message_uuid`, y la versión que cada uno requiere, consulte [`user_message_uuid`](#user_message_uuid). La lista siempre contiene `user_message_uuid` y contiene como máximo 64 entradas.

1606 1809 

1607Cuando Claude Code recoge un mensaje regular que envió mientras se ejecutaba un turno, añade el `uuid` de ese mensaje a la lista del resultado.1810Cuando Claude Code recoge un mensaje regular que envió mientras se ejecutaba un turno, añade el `uuid` de ese mensaje a la lista del resultado.

1608 1811 

1609Cuando una primera respuesta o resultado lleva `user_message_uuid` sin la lista, proviene de una versión anterior de Claude Code, así que recurra al campo único.1812Cuando una primera respuesta o resultado lleva `user_message_uuid` sin la lista, proviene de una versión anterior de Claude Code, así que recurra al campo único.

1610 1813 

1814<h4 id="resume_reason">

1815 `resume_reason`

1816</h4>

1817 

1818Por qué Claude Code volvió a ejecutar este turno después de una reiniciación. Claude Code establece este campo en un turno que volvió a ejecutar bajo [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars), para que pueda distinguir la respuesta y el resultado de la re-ejecución del intento interrumpido. Requiere Agent SDK v0.3.268 o posterior.

1819 

1820Claude Code establece el campo en dos tipos de marco:

1821 

1822* **El resultado de la re-ejecución**: en los brazos de éxito y error por igual, ya sea que el resultado lleve `user_message_uuid` o no.

1823* **Los marcos de respuesta de la re-ejecución**: aquellos que llevan [`user_message_uuid`](#user_message_uuid).

1824 

1825El valor es un token corto en minúsculas que nombra por qué se volvió a ejecutar el turno, como `interrupted_turn`. El campo está ausente en cada otro turno.

1826 

1611<h4 id="queued_turn_count">1827<h4 id="queued_turn_count">

1612 `queued_turn_count`1828 `queued_turn_count`

1613</h4>1829</h4>


1657| `org_pin_api_key_conflict` | La configuración administrada [requiere un inicio de sesión de puerta de enlace de primera parte o en la nube](/docs/es/authentication#restrict-login-to-your-organization), y se configura una clave de API de Anthropic, token de autenticación o `apiKeyHelper` en su lugar |1873| `org_pin_api_key_conflict` | La configuración administrada [requiere un inicio de sesión de puerta de enlace de primera parte o en la nube](/docs/es/authentication#restrict-login-to-your-organization), y se configura una clave de API de Anthropic, token de autenticación o `apiKeyHelper` en su lugar |

1658| `org_verify_failed` | La organización del inicio de sesión no pudo verificarse contra el pin, por ejemplo debido a un fallo de red o un token revocado |1874| `org_verify_failed` | La organización del inicio de sesión no pudo verificarse contra el pin, por ejemplo debido a un fallo de red o un token revocado |

1659| `org_pin_mismatch` | El inicio de sesión pertenece a una organización que el pin no permite |1875| `org_pin_mismatch` | El inicio de sesión pertenece a una organización que el pin no permite |

1660| `managed_settings_invalid` | La configuración de política administrada no pudo leerse, o el pin no nombra ninguna organización |1876| `managed_settings_invalid` | La configuración de política administrada no pudo leerse, el pin no nombra ninguna organización, o [restricciones de modelo administradas](/docs/es/errors#managed-settings-block-the-default-model) no dejan ningún modelo permitido para la opción Predeterminado |

1661| `remote_settings_required_unavailable` | La configuración administrada que la organización requiere no pudo cargarse |1877| `remote_settings_required_unavailable` | La configuración administrada que la organización requiere no pudo cargarse |

1662| `gateway_signin_required` | La [puerta de enlace en la nube](/docs/es/claude-apps-gateway) terminó este inicio de sesión |1878| `gateway_signin_required` | La [puerta de enlace en la nube](/docs/es/claude-apps-gateway) terminó este inicio de sesión |

1663| `gateway_access_denied` | La solicitud de configuración administrada a la puerta de enlace en la nube volvió con un 403, que la [tabla de solución de problemas](/docs/es/claude-apps-gateway-deploy#troubleshooting) de la puerta de enlace cubre |1879| `gateway_access_denied` | La solicitud de configuración administrada a la puerta de enlace en la nube volvió con un 403, que la [tabla de solución de problemas](/docs/es/claude-apps-gateway-deploy#troubleshooting) de la puerta de enlace cubre |


1701 output_style: string;1917 output_style: string;

1702 skills: string[];1918 skills: string[];

1703 plugins: { name: string; path: string }[];1919 plugins: { name: string; path: string }[];

1920 plugin_errors?: {

1921 plugin: string;

1922 type: string;

1923 message: string;

1924 path?: string;

1925 }[];

1704 fast_mode_state?: FastModeState;1926 fast_mode_state?: FastModeState;

1705 fast_mode_disabled_reason?: FastModeDisabledReason;1927 fast_mode_disabled_reason?: FastModeDisabledReason;

1706 effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;1928 effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;


1727| `interrupt_receipt_v1` | [`interrupt()`](#query-object) se resuelve con un recibo [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) que enumera los mensajes que estaban pendientes cuando llegó la interrupción |1949| `interrupt_receipt_v1` | [`interrupt()`](#query-object) se resuelve con un recibo [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) que enumera los mensajes que estaban pendientes cuando llegó la interrupción |

1728| `interrupt_cancel_queued_v1` | La solicitud de control `interrupt` honra `cancel_queued: true`, cancelando los mensajes que el recibo enumeraría bajo `still_queued` y enumerándolos bajo `cancelled` en su lugar. Consulte [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Requiere Claude Code v2.1.219 o posterior |1950| `interrupt_cancel_queued_v1` | La solicitud de control `interrupt` honra `cancel_queued: true`, cancelando los mensajes que el recibo enumeraría bajo `still_queued` y enumerándolos bajo `cancelled` en su lugar. Consulte [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Requiere Claude Code v2.1.219 o posterior |

1729 1951 

1952La matriz `plugin_errors` enumera fallos de carga de plugin. Una entrada describe un plugin que no se cargó y está ausente de `plugins`, o un plugin que se cargó sin una de sus partes, como su archivo de hooks. La clave se omite cuando nada falló. `SDKSystemMessage` declara `plugin_errors` en Agent SDK v0.3.283 o posterior.

1953 

1954Cuando un directorio o archivo de su opción [`plugins`](#options) falla al cargarse, el campo `plugin` de la entrada contiene una etiqueta posicional como `inline[0]` en lugar de un nombre de plugin. Esto sucede, por ejemplo, cuando la ruta no existe o el manifiesto no es válido. Haga coincidir tal entrada con su opción por su campo `path`.

1955 

1956La tabla siguiente enumera los campos de cada entrada `plugin_errors`.

1957 

1958| Campo | Tipo | Descripción |

1959| - | - | - |

1960| `plugin` | `string` | El ID del plugin que falla, o una etiqueta posicional como `inline[0]` cuando el directorio o archivo del plugin en sí falló al cargarse |

1961| `type` | `string` | Categoría de error de un conjunto abierto, como `path-not-found` o `manifest-validation-error`. Trate un valor que no reconozca como un fallo genérico |

1962| `message` | `string` | Texto de visualización que describe el fallo |

1963| `path` | `string` | Presente solo cuando el directorio o archivo del plugin en sí falló al cargarse. Su ruta absoluta, con una ruta relativa de su opción `plugins` resuelta contra la opción [`cwd`](#options) |

1964 

1730<h3 id="sdkpartialassistantmessage">1965<h3 id="sdkpartialassistantmessage">

1731 `SDKPartialAssistantMessage`1966 `SDKPartialAssistantMessage`

1732</h3>1967</h3>


1743 ttft_ms?: number; // Time to first token in ms, present only on message_start events1978 ttft_ms?: number; // Time to first token in ms, present only on message_start events

1744 user_message_uuid?: string;1979 user_message_uuid?: string;

1745 user_message_uuids?: string[];1980 user_message_uuids?: string[];

1981 resume_reason?: string;

1746};1982};

1747```1983```

1748 1984 

1749Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer evento de transmisión que no es ping del turno, y nuevamente cuando el mensaje que el turno está respondiendo cambia, bajo las condiciones en [`user_message_uuid`](#user_message_uuid).1985Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer evento de transmisión que no es ping del turno, y nuevamente cuando el mensaje que el turno está respondiendo cambia, bajo las condiciones en [`user_message_uuid`](#user_message_uuid). Cuando Claude Code vuelve a ejecutar un turno que una reiniciación interrumpió, los eventos de transmisión de la re-ejecución que llevan esos campos también llevan [`resume_reason`](#resume_reason).

1750 1986 

1751<h3 id="sdkcompactboundarymessage">1987<h3 id="sdkcompactboundarymessage">

1752 `SDKCompactBoundaryMessage`1988 `SDKCompactBoundaryMessage`


1771 `SDKInformationalMessage`2007 `SDKInformationalMessage`

1772</h3>2008</h3>

1773 2009 

1774Banner de texto genérico emitido por el bucle. Lleva líneas de estado no erróneas, retroalimentación de hooks como la razón de bloqueo de un hook `UserPromptSubmit`, y salida de comandos. En Claude Code v2.1.227 o posterior, el [`systemMessage`](/docs/es/hooks#json-output) de un hook puede llegar como este mensaje, con cada línea prefijada por el nombre del hook, como `PostToolUse:Bash says:`. Si el `systemMessage` de un hook llega como este mensaje depende del evento. Cada [sección de evento](/docs/es/hooks#hook-events) en la página de hooks dice cómo se muestra la salida. Renderice `content` como texto sin formato en el `level` dado.2010Banner de texto genérico emitido por el bucle. Lleva advertencias, avisos y otras líneas de estado no erróneas que Claude Code genera, y retroalimentación de hooks como la razón de bloqueo de un hook `UserPromptSubmit`.

2011 

2012En Claude Code v2.1.227 o posterior, el [`systemMessage`](/docs/es/hooks#json-output) de un hook puede llegar como este mensaje, con cada línea prefijada por el nombre del hook, como `PostToolUse:Bash says:`. Cada [sección de evento](/docs/es/hooks#hook-events) en la página de hooks dice cómo se muestra la salida.

2013 

2014Renderice `content` como texto sin formato en el `level` dado.

1775 2015 

1776```typescript theme={null}2016```typescript theme={null}

1777type SDKInformationalMessage = {2017type SDKInformationalMessage = {


2002| - | - |2242| - | - |

2003| `human` | Entrada directa del usuario final. Si su aplicación reenvía lo que el usuario escribió como un mensaje de usuario, establezca su `origin` en `{ kind: "human" }` explícitamente: Claude Code trata un mensaje de usuario sin `origin` como no atribuido, y verifica que requieren un prompt escrito por humanos, como la [palabra clave de flujo de trabajo `ultracode`](/docs/es/workflows#ask-for-a-workflow-in-your-prompt), no lo aceptan. Antes de v2.1.210, Claude Code trataba un `origin` ausente en un mensaje de usuario como entrada humana. |2243| `human` | Entrada directa del usuario final. Si su aplicación reenvía lo que el usuario escribió como un mensaje de usuario, establezca su `origin` en `{ kind: "human" }` explícitamente: Claude Code trata un mensaje de usuario sin `origin` como no atribuido, y verifica que requieren un prompt escrito por humanos, como la [palabra clave de flujo de trabajo `ultracode`](/docs/es/workflows#ask-for-a-workflow-in-your-prompt), no lo aceptan. Antes de v2.1.210, Claude Code trataba un `origin` ausente en un mensaje de usuario como entrada humana. |

2004| `channel` | Mensaje que llega en un [canal](/docs/es/channels). `server` es el nombre del servidor MCP de origen. |2244| `channel` | Mensaje que llega en un [canal](/docs/es/channels). `server` es el nombre del servidor MCP de origen. |

2005| `peer` | Mensaje de otro agente: un [compañero](/docs/es/agent-teams) en proceso o un [par entre sesiones](/docs/es/cross-session-messaging), otra de sus sesiones de Claude Code. Consulte [Campos de origen de par](#peer-origin-fields) para la semántica por campo y el modelo de confianza. |2245| `peer` | Mensaje de otro agente: un [compañero](/docs/es/agent-teams) en proceso enviando a `main` con `SendMessage`, o un [par entre sesiones](/docs/es/cross-session-messaging), otra de sus sesiones de Claude Code. Consulte [Campos de origen de par](#peer-origin-fields) para la semántica por campo y el modelo de confianza. |

2006| `task-notification` | Turno sintético inyectado para una entrega que llega sin un prompt de usuario fresco, como una tarea de fondo terminada; consulte [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) para ese brazo. Un prompt que su aplicación [declara como una ejecución programada](#declare-a-scheduled-run) también lleva este tipo. El `subkind` opcional marca qué generó la notificación. Consulte [Subtipos de notificación de tarea](#task-notification-subkinds). |2246| `task-notification` | Turno sintético inyectado para una entrega que llega sin un prompt de usuario fresco, como una tarea de fondo terminada; consulte [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) para ese brazo. Un prompt que su aplicación [declara como una ejecución programada](#declare-a-scheduled-run) también lleva este tipo. El `subkind` opcional marca qué generó la notificación. Consulte [Subtipos de notificación de tarea](#task-notification-subkinds). |

2007| `coordinator` | Mensaje de un coordinador de equipo en un [equipo de agentes](/docs/es/agent-teams). |2247| `coordinator` | Mensaje de un coordinador de equipo en un [equipo de agentes](/docs/es/agent-teams). |

2008| `auto-continuation` | Turno sintético inyectado cuando la sesión continúa sin entrada de usuario fresca, como un resultado de comando que activa un prompt de seguimiento. |2248| `auto-continuation` | Turno sintético inyectado cuando la sesión continúa sin entrada de usuario fresca, como un resultado de comando que activa un prompt de seguimiento. |


2882 Tipos de Entrada de Herramienta3122 Tipos de Entrada de Herramienta

2883</h2>3123</h2>

2884 3124 

2885Documentación de esquemas de entrada para todas las herramientas integradas de Claude Code. Estos tipos se exportan desde `@anthropic-ai/claude-agent-sdk` y se pueden usar para interacciones de herramientas seguras de tipos.3125Documentación de esquemas de entrada para todas las herramientas integradas de Claude Code. Estos tipos se exportan desde `@anthropic-ai/claude-agent-sdk/sdk-tools` y se pueden usar para interacciones de herramientas seguras de tipos.

2886 3126 

2887<h3 id="toolinputschemas">3127<h3 id="toolinputschemas">

2888 `ToolInputSchemas`3128 `ToolInputSchemas`

2889</h3>3129</h3>

2890 3130 

2891Unión de tipos de entrada de herramienta exportados desde `@anthropic-ai/claude-agent-sdk`; los miembros incluyen:3131Unión de tipos de entrada de herramienta exportados desde `@anthropic-ai/claude-agent-sdk/sdk-tools`; los miembros incluyen:

2892 3132 

2893```typescript theme={null}3133```typescript theme={null}

2894type ToolInputSchemas =3134type ToolInputSchemas =


3690 Tipos de Salida de Herramienta3930 Tipos de Salida de Herramienta

3691</h2>3931</h2>

3692 3932 

3693Documentación de esquemas de salida para todas las herramientas integradas de Claude Code. Estos tipos se exportan desde `@anthropic-ai/claude-agent-sdk` y representan los datos de respuesta reales devueltos por cada herramienta.3933Documentación de esquemas de salida para todas las herramientas integradas de Claude Code. Estos tipos se exportan desde `@anthropic-ai/claude-agent-sdk/sdk-tools` y representan los datos de respuesta reales devueltos por cada herramienta.

3694 3934 

3695<h3 id="tooloutputschemas">3935<h3 id="tooloutputschemas">

3696 `ToolOutputSchemas`3936 `ToolOutputSchemas`

3697</h3>3937</h3>

3698 3938 

3699Unión de tipos de salida de herramienta exportados desde `@anthropic-ai/claude-agent-sdk`; los miembros incluyen:3939Unión de tipos de salida de herramienta exportados desde `@anthropic-ai/claude-agent-sdk/sdk-tools`; los miembros incluyen:

3700 3940 

3701```typescript theme={null}3941```typescript theme={null}

3702type ToolOutputSchemas =3942type ToolOutputSchemas =


5535 `SDKTaskProgressMessage`5775 `SDKTaskProgressMessage`

5536</h3>5776</h3>

5537 5777 

5538Se emite periódicamente mientras se ejecuta un subagente o tarea de fondo. El campo `summary` se completa solo cuando [`agentProgressSummaries`](#options) está habilitado.5778Se emite periódicamente mientras se ejecuta un subagente o tarea de fondo.

5779 

5780Para una tarea de subagente, el campo `summary` lleva un resumen de progreso generado por modelo y se completa solo cuando [`agentProgressSummaries`](#options) está habilitado. Para una [llamada de herramienta MCP en segundo plano](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls), `summary` lleva el progreso más reciente reportado por el servidor MCP y no depende de esa opción.

5539 5781 

5540```typescript theme={null}5782```typescript theme={null}

5541type SDKTaskProgressMessage = {5783type SDKTaskProgressMessage = {


5698 5940 

5699Se emite cuando el conjunto de comandos disponibles cambia a mitad de sesión, como cuando Claude Code descubre skills al entrar en un subdirectorio. El array `commands` es la lista completa actualizada, así que reemplace cualquier lista de comandos en caché con esta carga útil. Llamar a [`supportedCommands()`](#query-object) después de este mensaje devuelve la misma lista actualizada, porque el método rastrea el último push; esto requiere Agent SDK v0.3.216 o posterior. En versiones anteriores del SDK, `supportedCommands()` devuelve la instantánea capturada en la inicialización y nunca refleja cambios a mitad de sesión.5941Se emite cuando el conjunto de comandos disponibles cambia a mitad de sesión, como cuando Claude Code descubre skills al entrar en un subdirectorio. El array `commands` es la lista completa actualizada, así que reemplace cualquier lista de comandos en caché con esta carga útil. Llamar a [`supportedCommands()`](#query-object) después de este mensaje devuelve la misma lista actualizada, porque el método rastrea el último push; esto requiere Agent SDK v0.3.216 o posterior. En versiones anteriores del SDK, `supportedCommands()` devuelve la instantánea capturada en la inicialización y nunca refleja cambios a mitad de sesión.

5700 5942 

5943Claude Code también emite este mensaje cuando los [prompts](/docs/es/mcp#use-mcp-prompts-as-commands) de un servidor MCP se unen o salen de la lista, por ejemplo cuando un servidor termina de conectarse después de que la sesión comienza. Esto requiere Claude Code v2.1.281 o posterior.

5944 

5701```typescript theme={null}5945```typescript theme={null}

5702type SDKCommandsChangedMessage = {5946type SDKCommandsChangedMessage = {

5703 type: "system";5947 type: "system";


5735 new_conversation_id: UUID;5979 new_conversation_id: UUID;

5736 uuid: UUID;5980 uuid: UUID;

5737 session_id: string;5981 session_id: string;

5982 trigger?: "clear" | "plan_mode_exit" | "fresh_session" | "onboarding";

5983 user_message_uuid?: string;

5984 timestamp?: string;

5738};5985};

5739```5986```

5740 5987 

5988Los campos opcionales describen el reinicio:

5989 

5990* `trigger`: qué descartó la conversación. Reinicie su transcripción en cada mensaje `conversation_reset`, incluyendo uno donde este campo está ausente o lleva un valor que no reconoce.

5991* `user_message_uuid`: el `uuid` del mensaje de usuario que llevaba el `/clear`. Úselo para hacer coincidir el reinicio con ese mensaje.

5992* `timestamp`: cuándo sucedió el reinicio, como una cadena ISO 8601 en UTC. Úselo para visualización, no para ordenar mensajes.

5993 

5994Los campos `trigger`, `user_message_uuid` y `timestamp` requieren Claude Code v2.1.281 o posterior.

5995 

5741Las tipificaciones publicadas del SDK declaran `SDKConversationResetMessage` en Claude Code v2.1.203 y posterior. Antes de v2.1.203, `SDKMessage` hacía referencia al tipo sin declararlo, por lo que el estrechamiento en `type === "conversation_reset"` no pasaba la verificación de tipos cuando `skipLibCheck` estaba deshabilitado.5996Las tipificaciones publicadas del SDK declaran `SDKConversationResetMessage` en Claude Code v2.1.203 y posterior. Antes de v2.1.203, `SDKMessage` hacía referencia al tipo sin declararlo, por lo que el estrechamiento en `type === "conversation_reset"` no pasaba la verificación de tipos cuando `skipLibCheck` estaba deshabilitado.

5742 5997 

5743<h3 id="aborterror">5998<h3 id="aborterror">


5854| `allowedDomains` | `string[]` | `[]` | Nombres de dominio a los que los procesos en sandbox pueden acceder |6109| `allowedDomains` | `string[]` | `[]` | Nombres de dominio a los que los procesos en sandbox pueden acceder |

5855| `deniedDomains` | `string[]` | `[]` | Nombres de dominio a los que los procesos en sandbox no pueden acceder. Tiene prioridad sobre `allowedDomains` |6110| `deniedDomains` | `string[]` | `[]` | Nombres de dominio a los que los procesos en sandbox no pueden acceder. Tiene prioridad sobre `allowedDomains` |

5856| `strictAllowlist` | `boolean` | `false` | Niegue a los comandos en sandbox el acceso a hosts fuera de la [lista de permitidos de red](/docs/es/sandboxing#network-isolation) en lugar de solicitar. Se aplica solo a comandos en sandbox; las herramientas en proceso como WebFetch no están controladas por esto. Solo se respeta desde la configuración de usuario, administrada o CLI `--settings`; la configuración del proyecto se ignora. Requiere Claude Code v2.1.219 o posterior |6111| `strictAllowlist` | `boolean` | `false` | Niegue a los comandos en sandbox el acceso a hosts fuera de la [lista de permitidos de red](/docs/es/sandboxing#network-isolation) en lugar de solicitar. Se aplica solo a comandos en sandbox; las herramientas en proceso como WebFetch no están controladas por esto. Solo se respeta desde la configuración de usuario, administrada o CLI `--settings`; la configuración del proyecto se ignora. Requiere Claude Code v2.1.219 o posterior |

5857| `allowManagedDomainsOnly` | `boolean` | `false` | Solo configuración administrada. Cuando se establece en [configuración administrada](/docs/es/managed-settings), solo se respetan las entradas `allowedDomains` y las reglas de permitir `WebFetch(domain:...)` de la configuración administrada, y se ignoran las entradas de permitir de la configuración de usuario, proyecto o local. No tiene efecto cuando se establece a través de opciones de SDK |6112| `allowManagedDomainsOnly` | `boolean` | `false` | Solo configuración administrada. Cuando se establece en [configuración administrada](/docs/es/managed-settings), solo se respetan las entradas `allowedDomains` y las reglas de permitir `WebFetch(domain:...)` de la configuración administrada, y se ignoran las entradas de permitir de la configuración de usuario, proyecto o local. Desde el SDK, páselo a través de la opción [`managedSettings`](#options) |

5858| `allowLocalBinding` | `boolean` | `false` | Permita que los procesos se vinculen a puertos locales (por ejemplo, para servidores de desarrollo) |6113| `allowLocalBinding` | `boolean` | `false` | Permita que los procesos se vinculen a puertos locales (por ejemplo, para servidores de desarrollo) |

5859| `allowUnixSockets` | `string[]` | `[]` | Rutas de socket Unix a las que los procesos pueden acceder (por ejemplo, socket de Docker) |6114| `allowUnixSockets` | `string[]` | `[]` | Rutas de socket Unix a las que los procesos pueden acceder (por ejemplo, socket de Docker) |

5860| `allowAllUnixSockets` | `boolean` | `false` | Permita el acceso a todos los sockets Unix |6115| `allowAllUnixSockets` | `boolean` | `false` | Permita el acceso a todos los sockets Unix |

Details

296 <Tab title="Aprobar y recordar">296 <Tab title="Aprobar y recordar">

297 El usuario aprueba y no quiere que se le pregunte de nuevo para este tipo de llamada. El tercer argumento de devolución de llamada lleva `suggestions`, una matriz de entradas [`PermissionUpdate`](/docs/es/agent-sdk/typescript#permissionupdate) ya preparadas. Devuelva una en `updatedPermissions` para aplicarla. Una sugerencia con el destino `localSettings` escribe la regla en `.claude/settings.local.json` para que futuras sesiones omitan la solicitud para llamadas coincidentes.297 El usuario aprueba y no quiere que se le pregunte de nuevo para este tipo de llamada. El tercer argumento de devolución de llamada lleva `suggestions`, una matriz de entradas [`PermissionUpdate`](/docs/es/agent-sdk/typescript#permissionupdate) ya preparadas. Devuelva una en `updatedPermissions` para aplicarla. Una sugerencia con el destino `localSettings` escribe la regla en `.claude/settings.local.json` para que futuras sesiones omitan la solicitud para llamadas coincidentes.

298 298 

299 En TypeScript, omita la opción de permitir siempre para una solicitud cuyas opciones llevan [`suppressAlwaysAllowRule: true`](/docs/es/agent-sdk/typescript#canusetool). La sugerencia requiere Agent SDK v0.3.268 o posterior, y el `context` de Python no la lleva.

300 

299 El ejemplo de Python requiere `claude-agent-sdk` 0.1.80 o posterior.301 El ejemplo de Python requiere `claude-agent-sdk` 0.1.80 o posterior.

300 302 

301 <CodeGroup>303 <CodeGroup>

agent-teams.md +39 −37

Details

243 Cómo funcionan los equipos de agentes243 Cómo funcionan los equipos de agentes

244</h2>244</h2>

245 245 

246Esta sección cubre la arquitectura y la mecánica detrás de los equipos de agentes. Si desea comenzar a usarlos, vea [Controle su equipo de agentes](#control-your-agent-team) arriba.246Esta sección cubre la arquitectura y la mecánica detrás de los equipos de agentes. Si desea comenzar a usarlos, consulte [Controle su equipo de agentes](#control-your-agent-team) arriba.

247 247 

248<h3 id="how-claude-starts-agent-teams">248<h3 id="how-claude-starts-agent-teams">

249 Cómo Claude inicia equipos de agentes249 Cómo Claude inicia equipos de agentes

250</h3>250</h3>

251 251 

252Para iniciar un equipo, solicite compañeros de equipo a Claude. Claude lanza un compañero de equipo cuando llama a la [herramienta Agent](/docs/es/tools-reference) con un [`name`](/docs/es/sub-agents#subagent-names) mientras los equipos de agentes están habilitados, a menos que la llamada sea un [fork](/docs/es/sub-agents#fork-the-current-conversation) o pase `isolation` en la llamada misma. Claude Code no le pide que confirme el lanzamiento.252Para iniciar un equipo, pida a Claude compañeros de equipo. Claude lanza un compañero de equipo cuando llama a la [herramienta Agent](/docs/es/tools-reference) con un [`name`](/docs/es/sub-agents#subagent-names) mientras los equipos de agentes están habilitados, a menos que la llamada sea un [fork](/docs/es/sub-agents#fork-the-current-conversation) o pase `isolation` en la llamada misma. Claude Code no le pide que confirme el lanzamiento.

253 253 

254Claude también nombra subagentes ordinarios por su cuenta para poder enviarles mensajes más tarde. Esas llamadas siguen la misma regla, por lo que los equipos pueden formarse incluso cuando no solicitó uno. Si prefiere subagentes en su lugar, [desactive los equipos de agentes](#claude-spawns-teammates-instead-of-subagents).254Claude también nombra subagentes ordinarios por su cuenta para poder enviarles mensajes más tarde. Esas llamadas siguen la misma regla, por lo que los equipos pueden formarse incluso cuando no pidió uno. Si prefiere subagentes en su lugar, [desactive los equipos de agentes](#claude-spawns-teammates-instead-of-subagents).

255 255 

256<h3 id="architecture">256<h3 id="architecture">

257 Arquitectura257 Arquitectura

258</h3>258</h3>

259 259 

260Un equipo de agentes consiste en:260Un equipo de agentes consta de:

261 261 

262| Componente | Rol |262| Componente | Rol |

263| :- | :- |263| :- | :- |

264| **Líder del equipo** | La sesión principal de Claude Code que genera compañeros de equipo y coordina el trabajo |264| **Líder del equipo** | La sesión principal de Claude Code que genera compañeros de equipo y coordina el trabajo |

265| **Compañeros de equipo** | Instancias separadas de Claude Code que cada una trabaja en tareas asignadas |265| **Compañeros de equipo** | Instancias separadas de Claude Code que trabajan cada una en tareas asignadas |

266| **Lista de tareas** | Lista compartida de elementos de trabajo que los compañeros de equipo reclaman y completan |266| **Lista de tareas** | Lista compartida de elementos de trabajo que los compañeros de equipo reclaman y completan |

267| **Buzón** | Sistema de mensajería para comunicación entre agentes |267| **Buzón** | Sistema de mensajería para la comunicación entre agentes |

268 268 

269El buzón de cada agente es un archivo JSON en `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code valida cada entrada cuando lee un archivo de buzón. Las entradas que no coinciden con el formato de mensaje se reportan como errores y se eliminan del archivo; los mensajes válidos aún se entregan. Antes de v2.1.207, una única entrada de buzón malformada causaba un error repetido cada segundo y bloqueaba la entrega para ese buzón hasta que eliminara manualmente el archivo.269El buzón de cada agente es un archivo JSON en `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code valida cada entrada cuando lee un archivo de buzón. Las entradas que no coinciden con el formato de mensaje se reportan como errores y se eliminan del archivo; los mensajes válidos aún se entregan. Antes de v2.1.207, una única entrada de buzón malformada causaba un error repetido cada segundo y bloqueaba la entrega para ese buzón hasta que eliminara el archivo manualmente.

270 270 

271Claude Code reporta un mensaje como enviado solo cuando la escritura en el archivo de buzón del destinatario tiene éxito, ya sea que el mensaje sea texto plano o un mensaje de protocolo estructurado como una aprobación de plan o una solicitud de cierre. Cuando la escritura falla, por ejemplo porque el disco está lleno o el directorio de buzón no es escribible, el agente remitente recibe un error y nada se envía. Vea [No se pudo escribir en la bandeja de entrada de un compañero de equipo](/docs/es/errors#failed-to-write-to-a-teammate-inbox) para los mensajes de error y pasos de recuperación.271Claude Code reporta un mensaje como enviado solo cuando la escritura en el archivo de buzón del destinatario tiene éxito, ya sea que el mensaje sea texto sin formato o un mensaje de protocolo estructurado como una aprobación de plan o una solicitud de cierre. Cuando la escritura falla, por ejemplo porque el disco está lleno o el directorio de buzón no es escribible, el agente que envía recibe un error y nada se envía. Consulte [No se pudo escribir en la bandeja de entrada de un compañero de equipo](/docs/es/errors#failed-to-write-to-a-teammate-inbox) para los mensajes de error y los pasos de recuperación.

272 272 

273Claude Code gestiona las dependencias de tareas automáticamente: cuando un compañero de equipo completa una tarea de la que otras tareas dependen, desbloquea las tareas dependientes sin ninguna acción de su parte.273Claude Code gestiona las dependencias de tareas automáticamente: cuando un compañero de equipo completa una tarea de la que otras tareas dependen, desbloquea las tareas dependientes sin ninguna acción de su parte.

274 274 

275Los equipos y tareas se almacenan localmente bajo un nombre derivado de la sesión. El nombre es `session-` seguido de los primeros ocho caracteres del ID de sesión:275Los equipos y las tareas se almacenan localmente bajo un nombre derivado de la sesión. El nombre es `session-` seguido de los primeros ocho caracteres del ID de sesión:

276 276 

277* **Configuración del equipo**: `~/.claude/teams/{team-name}/config.json`277* **Configuración del equipo**: `~/.claude/teams/{team-name}/config.json`

278* **Lista de tareas**: `~/.claude/tasks/{team-name}/`278* **Lista de tareas**: `~/.claude/tasks/{team-name}/`

279 279 

280Claude Code genera ambos automáticamente al inicio de la sesión y los actualiza a medida que los compañeros de equipo se unen, se quedan inactivos o se van. El directorio de configuración del equipo se elimina cuando la sesión termina. El directorio de lista de tareas persiste localmente y nunca se carga, por lo que las sesiones reanudadas mantienen sus tareas. La retención se rige por el mismo [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays) que ya controla para transcripciones de sesión, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically).280Claude Code genera ambos automáticamente al inicio de la sesión y los actualiza a medida que los compañeros de equipo se unen, se quedan inactivos o se van. El directorio de configuración del equipo se elimina cuando finaliza la sesión. El directorio de lista de tareas persiste localmente y nunca se carga, por lo que las sesiones reanudadas mantienen sus tareas. La retención se rige por el mismo [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays) que ya controla para transcripciones de sesión, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically).

281 281 

282La configuración del equipo contiene estado de tiempo de ejecución como IDs de sesión e IDs de panel tmux, así que no la edite manualmente ni la pre-autorice: sus cambios se sobrescriben en la siguiente actualización de estado.282La configuración del equipo contiene estado de tiempo de ejecución como IDs de sesión e IDs de panel tmux, por lo que no la edite manualmente ni la cree previamente: sus cambios se sobrescriben en la siguiente actualización de estado.

283 283 

284Para definir roles de compañeros de equipo reutilizables, use [definiciones de subagents](#use-subagent-definitions-for-teammates) en su lugar.284Para definir roles de compañeros de equipo reutilizables, use [definiciones de subagentes](#use-subagent-definitions-for-teammates) en su lugar.

285 285 

286La configuración del equipo contiene un array `members` con el nombre de cada miembro y el ID del agente. La entrada del líder siempre lleva el tipo de agente `team-lead`. La entrada de un compañero de equipo lleva cualquier tipo de agente que el líder nombró al generarlo, ya sea un [tipo integrado](/docs/es/sub-agents#built-in-subagents) o una [definición de subagente](#use-subagent-definitions-for-teammates), y omite el campo cuando el líder no nombró ninguno. Los compañeros de equipo pueden leer este archivo para descubrir otros miembros del equipo.286La configuración del equipo contiene un array `members` con el nombre y el ID de agente de cada miembro. La entrada del líder siempre lleva el tipo de agente `team-lead`. La entrada de un compañero de equipo lleva el tipo de agente que el líder nombró al generarlo, ya sea un [tipo integrado](/docs/es/sub-agents#built-in-subagents) o una [definición de subagente](#use-subagent-definitions-for-teammates), y omite el campo cuando el líder no nombró ninguno. Los compañeros de equipo pueden leer este archivo para descubrir otros miembros del equipo.

287 287 

288No hay equivalente a nivel de proyecto de la configuración del equipo. Un archivo como `.claude/teams/teams.json` en su directorio de proyecto no se reconoce como configuración; Claude lo trata como un archivo ordinario.288No hay equivalente a nivel de proyecto de la configuración del equipo. Un archivo como `.claude/teams/teams.json` en el directorio de su proyecto no se reconoce como configuración; Claude lo trata como un archivo ordinario.

289 289 

290<h3 id="use-subagent-definitions-for-teammates">290<h3 id="use-subagent-definitions-for-teammates">

291 Usar definiciones de subagents para compañeros de equipo291 Usar definiciones de subagentes para compañeros de equipo

292</h3>292</h3>

293 293 

294Cuando genera un compañero de equipo en cualquier modo de visualización, puede hacer referencia a un tipo de [subagente](/docs/es/sub-agents) del proyecto, usuario o alcance de [subagente](/docs/es/sub-agents#choose-the-subagent-scope) administrado. Esto le permite definir un rol una vez, como un revisor de seguridad o ejecutor de pruebas, y reutilizarlo tanto como un subagente delegado como un compañero de equipo de equipo de agentes.294Al generar un compañero de equipo en cualquier modo de visualización, puede hacer referencia a un tipo de [subagente](/docs/es/sub-agents) del proyecto, usuario o [alcance de subagente](/docs/es/sub-agents#choose-the-subagent-scope) administrado. Esto le permite definir un rol una vez, como un security-reviewer o test-runner, y reutilizarlo tanto como un subagente delegado como un compañero de equipo de equipo de agentes.

295 295 

296Para usar una definición de subagente, mencione por nombre cuando le pida a Claude que genere el compañero de equipo:296Para usar una definición de subagente, nómbrela cuando pida a Claude que genere el compañero de equipo:

297 297 

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

299Genere un compañero de equipo usando el tipo de agente security-reviewer para auditar el módulo de autenticación.299Spawn a teammate using the security-reviewer agent type to audit the auth module.

300```300```

301 301 

302Claude Code lee la definición de subagente que nombró y aplica estas partes a él. Donde una parte depende del [modo de visualización](#choose-a-display-mode) del compañero de equipo, la entrada lo indica:302Claude Code lee la definición de subagente que nombró y aplica estas partes a ella al compañero de equipo. Donde una parte depende del [modo de visualización](#choose-a-display-mode) del compañero de equipo, la entrada lo dice:

303 303 

304* **`tools`**: Claude Code limita al compañero de equipo a las herramientas en la lista `tools` de la definición. Para un compañero de equipo en proceso, Claude Code añade `SendMessage` a esa lista, y en una [sesión que tiene las herramientas Task](/docs/es/tools-reference#task-tool-availability) también añade `TaskCreate`, `TaskGet`, `TaskList` y `TaskUpdate`.304* **`tools`**: Claude Code limita el compañero de equipo a las herramientas en la lista `tools` de la definición. Para un compañero de equipo en proceso, Claude Code agrega `SendMessage` a esa lista, y en una [sesión que tiene las herramientas Task](/docs/es/tools-reference#task-tool-availability) también agrega `TaskCreate`, `TaskGet`, `TaskList` y `TaskUpdate`.

305* **`model`**: Claude Code usa el `model` de la definición en cualquier modo de visualización cuando su indicación de generación no nombra uno. Vea [cómo Claude Code elige el modelo de un compañero de equipo](#specify-teammates-and-models).305* **`model`**: Claude Code usa el `model` de la definición en cualquier modo de visualización cuando su solicitud de generación no nombra uno. Consulte [cómo Claude Code elige el modelo de un compañero de equipo](#specify-teammates-and-models).

306* **Body**: para un compañero de equipo en proceso, Claude Code añade el cuerpo de la definición a su prompt del sistema predeterminado como instrucciones adicionales. Para un compañero de equipo de panel dividido, Claude Code usa el cuerpo en lugar de su prompt del sistema predeterminado.306* **Body**: para un compañero de equipo en proceso, Claude Code agrega el cuerpo de la definición a su solicitud de sistema predeterminada como instrucciones adicionales. Para un compañero de equipo de panel dividido, Claude Code usa el cuerpo en lugar de su solicitud de sistema predeterminada.

307* **`skills`**: Claude Code no aplica el `skills` de la definición a un compañero de equipo en ningún modo de visualización. El compañero de equipo carga skills desde su configuración de proyecto y usuario.307* **`skills`**: Claude Code no aplica los `skills` de la definición a un compañero de equipo en ningún modo de visualización. El compañero de equipo carga skills de su configuración de proyecto y usuario.

308* **`mcpServers`**: para un compañero de equipo de panel dividido, Claude Code aplica el `mcpServers` de la definición bajo las [reglas para ese campo](/docs/es/sub-agents#scope-mcp-servers-to-a-subagent), que cubren una sesión iniciada con `--agent` también. Un compañero de equipo en proceso ignora el campo y carga servidores MCP desde su configuración de proyecto y usuario.308* **`mcpServers`**: para un compañero de equipo de panel dividido, Claude Code aplica el `mcpServers` de la definición bajo las [reglas para ese campo](/docs/es/sub-agents#scope-mcp-servers-to-a-subagent), que cubren una sesión iniciada con `--agent` también. Un compañero de equipo en proceso ignora el campo y carga servidores MCP de su configuración de proyecto y usuario.

309 309 

310Cuando Claude envía un mensaje a un compañero de equipo en proceso que ya no se está ejecutando, Claude Code lo trae de vuelta en la misma sesión, restaura cualquier conversación guardada para él, y le da el mensaje como su siguiente indicación. Después de reanudar una sesión, los compañeros de equipo no se traen de vuelta de esta manera, según [la limitación de reanudación](#limitations).310Cuando Claude envía un mensaje a un compañero de equipo en proceso que ya no se está ejecutando, Claude Code lo trae de vuelta en la misma sesión, restaura cualquier conversación guardada para él, y le da el mensaje como su siguiente solicitud. Después de reanudar una sesión, los compañeros de equipo no se traen de vuelta de esta manera, según [la limitación de reanudación](#limitations).

311 311 

312Para un compañero de equipo que trae de vuelta, Claude Code vuelve a aplicar una definición que provino del directorio `.claude/agents/` de un proyecto o un directorio `--add-dir` solo si ha [confiado en la carpeta en la que se encuentra el archivo del agente](/docs/es/permissions#what-runs-before-you-trust-a-folder). Confiar en una carpeta padre no cuenta. Hasta entonces, el compañero de equipo vuelve con ninguna de las herramientas o instrucciones de la definición, manteniendo solo las herramientas que Claude Code añade a cada compañero de equipo en proceso. Vea [la definición del agente del compañero de equipo no fue restaurada](/docs/es/errors#teammate-agent-definition-not-restored) para el texto de notificación.312Para un compañero de equipo que trae de vuelta, Claude Code vuelve a aplicar una definición que provino del directorio `.claude/agents/` de un proyecto o un directorio `--add-dir` solo si ha [confiado en la carpeta en la que se encuentra el archivo del agente](/docs/es/permissions#what-runs-before-you-trust-a-folder). Confiar en una carpeta principal no cuenta. Hasta entonces, el compañero de equipo vuelve sin ninguna de las herramientas o instrucciones de la definición, manteniendo solo las herramientas que Claude Code agrega a cada compañero de equipo en proceso. Consulte [la definición del agente del compañero de equipo no fue restaurada](/docs/es/errors#teammate-agent-definition-not-restored) para el texto del aviso.

313 313 

314<h3 id="permissions">314<h3 id="permissions">

315 Permisos315 Permisos

316</h3>316</h3>

317 317 

318Los compañeros de equipo comienzan con el modo de permiso del líder, excepto el modo [`dontAsk`](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), que no heredan. Si el líder se ejecuta con `--dangerously-skip-permissions`, todos los compañeros de equipo también lo hacen. Después de generar, puede cambiar el modo de permiso de un compañero de equipo individual, pero no puede establecer modos de permiso por compañero de equipo en el momento de la generación.318Los compañeros de equipo comienzan con el modo de permiso del líder, excepto el [modo `dontAsk`](/docs/es/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), que no heredan. Si el líder se ejecuta con `--dangerously-skip-permissions`, todos los compañeros de equipo también lo hacen. Después de generar, puede cambiar el modo de permiso de un compañero de equipo individual, pero no puede establecer modos de permiso por compañero de equipo en el momento de la generación.

319 319 

320Las solicitudes de permiso de compañeros de equipo aparecen en la sesión del líder, así que apruébelas allí usted mismo. [Aprobación de plan](#have-teammates-plan-before-implementing) es la excepción diseñada: la sesión del líder otorga aprobaciones de plan de compañeros de equipo sin una solicitud separada para usted.320Los avisos de permiso de compañero de equipo aparecen en la sesión del líder, así que apruébelos allí usted mismo. [Aprobación de plan](#have-teammates-plan-before-implementing) es la excepción diseñada: la sesión del líder otorga aprobaciones de plan de compañero de equipo sin un aviso separado para usted.

321 321 

322<h4 id="messages-between-agents">322<h4 id="messages-between-agents">

323 Mensajes entre agentes323 Mensajes entre agentes

324</h4>324</h4>

325 325 

326Cuando un agente envía un mensaje a otro a través de `SendMessage`, Claude Code le dice al agente receptor que el mensaje provino de otra sesión de Claude, no de usted. Un compañero de equipo no puede aprobar una solicitud de permiso o proporcionar consentimiento en su nombre, y un compañero de equipo al que se le negó una acción no puede retransmitirla a otro compañero de equipo para eludir la verificación. Las mismas reglas se aplican a un mensaje que llega desde [una de sus otras sesiones de Claude Code](/docs/es/cross-session-messaging#how-a-session-treats-an-incoming-message), fuera del equipo completamente.326Cuando un agente envía a otro un mensaje sobre `SendMessage`, Claude Code le dice al agente receptor que el mensaje provino de otra sesión de Claude, no de usted. Un compañero de equipo no puede aprobar un aviso de permiso o proporcionar consentimiento en su nombre, y un compañero de equipo al que se le negó una acción no puede retransmitirla a otro compañero de equipo para eludir la verificación. Las mismas reglas se aplican a un mensaje que llega de [una de sus otras sesiones de Claude Code](/docs/es/cross-session-messaging#how-a-session-treats-an-incoming-message), fuera del equipo completamente.

327 327 

328En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el clasificador aplica dos verificaciones a los mensajes entre agentes:328En [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el clasificador aplica dos verificaciones a los mensajes entre agentes:

329 329 

330* Trata una afirmación de aprobación retransmitida desde otro agente como entrada no confiable en lugar de confirmación de usted.330* Trata una afirmación de aprobación retransmitida de otro agente como entrada no confiable en lugar de confirmación de usted.

331* Revisa cada mensaje antes de que Claude Code lo entregue, ya sea un mensaje plano o un mensaje de protocolo estructurado como una solicitud de cierre o una respuesta de aprobación de plan. Un mensaje que bloquea nunca llega al destinatario.331* Revisa cada mensaje antes de que Claude Code lo entregue, ya sea un mensaje simple o un mensaje de protocolo estructurado como una solicitud de cierre o una respuesta de aprobación de plan. Un mensaje que bloquea nunca llega al destinatario.

332 332 

333<h3 id="context-and-communication">333<h3 id="context-and-communication">

334 Contexto y comunicación334 Contexto y comunicación

335</h3>335</h3>

336 336 

337Cada compañero de equipo tiene su propia ventana de contexto. Cuando se genera, un compañero de equipo carga el mismo contexto de proyecto que una sesión regular: CLAUDE.md, MCP servers y skills. También recibe la indicación de generación del líder. El historial de conversación del líder no se transfiere.337Cada compañero de equipo tiene su propia ventana de contexto. Cuando se genera, un compañero de equipo carga el mismo contexto de proyecto que una sesión regular: CLAUDE.md, servidores MCP y skills. Si inicia el líder con [`--setting-sources`](/docs/es/cli-reference#cli-flags), los compañeros de equipo cargan desde la misma lista restringida de fuentes. Antes de v2.1.281, los compañeros de equipo de [panel dividido](#choose-a-display-mode) cargaban cada fuente de configuración.

338 

339Un compañero de equipo también recibe la solicitud de generación del líder. El historial de conversación del líder no se transfiere.

338 340 

339**Cómo los compañeros de equipo comparten información:**341**Cómo los compañeros de equipo comparten información:**

340 342 

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

342* **Notificaciones de inactividad**: cuando un compañero de equipo termina y se detiene, notifica automáticamente al líder e incluye su respuesta final en la notificación. Un compañero de equipo cuyo turno termina en un error de API notifica al líder que falló e incluye el texto del error.344* **Notificaciones de inactividad**: cuando un compañero de equipo termina y se detiene, notifica automáticamente al líder e incluye su respuesta final en la notificación. Un compañero de equipo cuyo turno termina en un error de API notifica al líder que falló e incluye el texto del error.

343* **Lista de tareas compartida**: [agentes que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability) pueden ver el estado de la tarea y reclamar trabajo disponible.345* **Lista de tareas compartida**: [agentes que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability) pueden ver el estado de la tarea y reclamar trabajo disponible.

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

345 347 

346El líder asigna a cada compañero de equipo un nombre cuando lo genera, y cualquier compañero de equipo puede enviar un mensaje a otro por ese nombre. Para obtener nombres predecibles que pueda referenciar en indicaciones posteriores, dígale al líder cómo llamar a cada compañero de equipo en su instrucción de generación.348El líder asigna a cada compañero de equipo un nombre cuando los genera, y cualquier compañero de equipo puede enviar un mensaje a cualquier otro por ese nombre. Para obtener nombres predecibles que pueda referenciar en solicitudes posteriores, dígale al líder cómo llamar a cada compañero de equipo en su instrucción de generación.

347 349 

348<h3 id="token-usage">350<h3 id="token-usage">

349 Uso de tokens351 Uso de tokens

350</h3>352</h3>

351 353 

352Los equipos de agentes usan significativamente más tokens que una única sesión. Cada compañero de equipo tiene su propia ventana de contexto, y el uso de tokens escala con el número de compañeros de equipo activos. Para investigación, revisión y trabajo de nuevas características, los tokens adicionales generalmente valen la pena. Para tareas rutinarias, una única sesión es más rentable. Vea [costos de tokens de equipos de agentes](/docs/es/costs#agent-team-token-costs) para orientación de uso.354Los equipos de agentes usan significativamente más tokens que una sesión única. Cada compañero de equipo tiene su propia ventana de contexto, y el uso de tokens se escala con el número de compañeros de equipo activos. Para investigación, revisión y trabajo de nuevas características, los tokens adicionales generalmente valen la pena. Para tareas rutinarias, una sesión única es más rentable. Consulte [costos de tokens de equipo de agentes](/docs/es/costs#agent-team-token-costs) para orientación de uso.

353 355 

354El cache de prompt de un compañero de equipo en proceso cae fuera del bucket TTL de cache de la conversación principal]\(/es/prompt-caching#which-ttl-each-request-gets), por lo que su cache se mantiene durante cinco minutos por defecto, incluso en una suscripción de Claude. Para mantenerlo durante una hora, establezca [`subagentPromptCacheTtl`](/docs/es/settings-reference#subagentpromptcachettl) en `1h`. La API factura escrituras de cache de 1 hora a una tasa más alta.356Las solicitudes de un compañero de equipo en proceso caen fuera del [bucket TTL de cache](/docs/es/prompt-caching#which-ttl-each-request-gets) de la conversación principal, por lo que su cache se mantiene durante cinco minutos por defecto, incluso en una suscripción de Claude. Para mantenerlo durante una hora, establezca [`subagentPromptCacheTtl`](/docs/es/settings-reference#subagentpromptcachettl) en `1h`. La API factura escrituras de cache de una hora a una tasa más alta.

355 357 

356<h2 id="use-case-examples">358<h2 id="use-case-examples">

357 Ejemplos de casos de uso359 Ejemplos de casos de uso

agent-view.md +137 −121

Details

260 260 

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

262 262 

263Puede desactivar este atajo con la configuración `leftArrowOpensAgents` en `/config`.263Puede desactivar este atajo con la configuración [`leftArrowOpensAgents`](/docs/es/settings-reference#leftarrowopensagents) en `/config`.

264 264 

265<h3 id="organize-the-list">265<h3 id="organize-the-list">

266 Organizar la lista266 Organizar la lista


337`Ctrl+S`, `Ctrl+T` y `Ctrl+G` siguen su [`keybindings.json`](/docs/es/keybindings). Reenlace o desenlace `Ctrl+S` y `Ctrl+T` con las acciones `agents:switchView` y `agents:togglePin` en el [contexto `Agents`](/docs/es/keybindings#agents-actions), y `Ctrl+G` a través del enlace `chat:externalEditor` del contexto `Chat`. Los otros atajos en la tabla no se pueden reenlazar.337`Ctrl+S`, `Ctrl+T` y `Ctrl+G` siguen su [`keybindings.json`](/docs/es/keybindings). Reenlace o desenlace `Ctrl+S` y `Ctrl+T` con las acciones `agents:switchView` y `agents:togglePin` en el [contexto `Agents`](/docs/es/keybindings#agents-actions), y `Ctrl+G` a través del enlace `chat:externalEditor` del contexto `Chat`. Los otros atajos en la tabla no se pueden reenlazar.

338 338 

339<h2 id="dispatch-new-agents">339<h2 id="dispatch-new-agents">

340 Distribuir nuevos agentes340 Enviar nuevos agentes

341</h2>341</h2>

342 342 

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

344 344 

345<h3 id="from-agent-view">345<h3 id="from-agent-view">

346 Desde la vista de agentes346 Desde la vista de agentes

347</h3>347</h3>

348 348 

349Escriba un mensaje en la entrada en la parte inferior de la vista de agentes y presione `Enter` para iniciar una nueva sesión en segundo plano. La sesión se nombra automáticamente a partir del mensaje; renómbrela más tarde con `Ctrl+R`.349Escriba un prompt en la entrada en la parte inferior de la vista de agentes y presione `Enter` para iniciar una nueva sesión en segundo plano. La sesión se nombra automáticamente a partir del prompt; cámbiela más tarde con `Ctrl+R`.

350 350 

351El nombre automático es una etiqueta corta escrita por un [modelo de clase Haiku](/docs/es/model-config). Un nombre que la sesión obtiene más tarde también aparece en su fila, incluido el [título generado](/docs/es/sessions#name-your-sessions) que la sesión obtiene cuando [acepta un plan](/docs/es/permission-modes#review-and-approve-a-plan) en esa sesión.351El nombre automático es una etiqueta corta escrita por un [modelo de clase Haiku](/docs/es/model-config). Un nombre que la sesión obtiene más tarde también aparece en su fila, incluido el [título generado](/docs/es/sessions#name-your-sessions) que la sesión obtiene cuando [acepta un plan](/docs/es/permission-modes#review-and-approve-a-plan) en esa sesión.

352 352 

353Pegue una imagen en el mensaje para incluir una captura de pantalla o diagrama con la tarea.353Pegue una imagen en el prompt para incluir una captura de pantalla o diagrama con la tarea.

354 354 

355El texto pegado más largo que 800 caracteres o más de tres líneas se contrae a un marcador de posición `[Pasted text #N]` para que la entrada permanezca en una línea; el texto completo se envía cuando distribuye. Para revisar o editar el texto contraído antes de distribuir, pegue el mismo texto nuevamente y el marcador de posición se expande nuevamente en la entrada.355El texto pegado más largo que 800 caracteres o más de tres líneas se contrae a un marcador de posición `[Pasted text #N]` para que la entrada permanezca en una línea; el texto completo se envía cuando envía. Para revisar o editar el texto contraído antes de enviar, pegue el mismo texto nuevamente y el marcador de posición se expande nuevamente en la entrada.

356 356 

357Prefije o mencione partes del mensaje para controlar cómo comienza la sesión:357Prefije o mencione partes del prompt para controlar cómo comienza la sesión:

358 358 

359| Entrada | Efecto |359| Entrada | Efecto |

360| :- | :- |360| :- | :- |

361| `<agent-name> <prompt>` | Si la primera palabra coincide con un nombre de [subagente](/docs/es/sub-agents) personalizado, ese subagente se ejecuta como el agente principal de la sesión con la configuración de su frontmatter |361| `<agent-name> <prompt>` | Si la primera palabra coincide con un nombre de [subagente](/docs/es/sub-agents) personalizado, ese subagente se ejecuta como el agente principal de la sesión con la configuración de su frontmatter |

362| `@<agent-name>` | Mencione un subagente personalizado en cualquier lugar del mensaje para ejecutarlo como el agente principal |362| `@<agent-name>` | Mencione un subagente personalizado en cualquier lugar del prompt para ejecutarlo como el agente principal |

363| `@<repo>` | Mencione un repositorio para ejecutar la sesión allí. Consulte [Distribuir a un directorio específico](#dispatch-to-a-specific-directory) para ver qué repositorios se enumeran |363| `@<repo>` | Mencione un repositorio para ejecutar la sesión allí. Consulte [Enviar a un directorio específico](#dispatch-to-a-specific-directory) para ver qué repositorios se enumeran |

364| `/<command>` | Sugiera [skills](/docs/es/skills) y [commands](/docs/es/commands) para distribuir como el mensaje |364| `/<command>` | Sugiera [skills](/docs/es/skills) y [comandos](/docs/es/commands) para enviar como el prompt |

365| `! <command>` | Ejecute un comando de shell como un trabajo en segundo plano en lugar de iniciar una sesión de Claude. El trabajo aparece como una fila a la que puede conectarse, observar y desconectarse |365| `! <command>` | Ejecute un comando de shell como un trabajo en segundo plano en lugar de iniciar una sesión de Claude. El trabajo aparece como una fila que puede adjuntar, ver y desasociar |

366| `#<number>` o una URL de solicitud de extracción o fusión | Si una sesión ya está trabajando en esa solicitud de extracción o fusión, Claude Code selecciona su fila en lugar de distribuir una nueva sesión |366| `#<number>` o una URL de solicitud de extracción o fusión | Si una sesión ya está trabajando en esa solicitud de extracción o fusión, Claude Code selecciona su fila en lugar de enviar una nueva sesión |

367 367 

368Un pequeño conjunto de comandos se ejecutan en la vista de agentes en sí en lugar de distribuirse:368Un pequeño conjunto de comandos se ejecutan en la vista de agentes en lugar de enviar:

369 369 

370* `/exit` y `/quit` cierran la vista de agentes370* `/exit` y `/quit` cierran la vista de agentes

371* `/logout` cierra su sesión371* `/logout` lo desconecta

372* `/model` establece el [modelo de distribución](#set-the-model)372* `/model` establece el [modelo de envío](#set-the-model)

373* `/login` abre el diálogo de inicio de sesión para que pueda iniciar sesión nuevamente sin conectarse a una sesión373* `/login` abre el diálogo de inicio de sesión para que pueda iniciar sesión nuevamente sin adjuntarse a una sesión

374* Un `/resume` sin argumentos, o su alias `/continue`, abre un selector de sesiones pasadas del repositorio para [traer una de vuelta](#organize-the-list) como una sesión en segundo plano. Requiere Claude Code v2.1.212 o posterior374* Un `/resume` desnudo, o su alias `/continue`, abre un selector de sesiones pasadas del repositorio para [traer una de vuelta](#organize-the-list) como una sesión en segundo plano. Requiere Claude Code v2.1.212 o posterior

375 375 

376Skills, sus propios comandos y built-ins que expanden prompts como `/init` se envían a una nueva sesión en segundo plano como su primer mensaje. Otros comandos built-in muestran una sugerencia `attach to a session to run it` en su lugar. Todo lo que escribió permanece en la entrada junto a la sugerencia para que pueda editarlo.376Las skills, sus propios comandos y los comandos integrados que expanden prompts como `/init` se envían a una nueva sesión en segundo plano como su primer prompt. Otros comandos integrados muestran una sugerencia `attach to a session to run it` en su lugar. Todo lo que escribió permanece en la entrada junto a la sugerencia para que pueda editarlo.

377 377 

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

379 379 

380Cuando el mismo `@name` coincide tanto con un subagente como con un repositorio hermano, el subagente tiene prioridad. La coincidencia de primera palabra sin `@` también se aplica, por lo que un mensaje que comienza con uno de sus nombres de subagente distribuye ese subagente en lugar de tratar la palabra como texto plano. Use la forma `@` cuando desee ser explícito, o comience el mensaje con una palabra diferente para evitar la coincidencia.380Cuando el mismo `@name` coincide tanto con un subagente como con un repositorio hermano, el subagente tiene prioridad. La coincidencia de primera palabra desnuda también se aplica, por lo que un prompt que comienza con uno de sus nombres de subagente envía ese subagente en lugar de tratar la palabra como texto sin formato. Use la forma `@` cuando desee ser explícito, o comience el prompt con una palabra diferente para evitar la coincidencia.

381 381 

382<h4 id="dispatch-to-a-specific-directory">382<h4 id="dispatch-to-a-specific-directory">

383 Distribuir a un directorio específico383 Enviar a un directorio específico

384</h4>384</h4>

385 385 

386Una nueva sesión se ejecuta en el directorio desde el que abrió la vista de agentes. Para dirigirse a un directorio diferente, use cualquiera de estos:386Una nueva sesión se ejecuta en el directorio desde el que abrió la vista de agentes. Para dirigirse a un directorio diferente, use cualquiera de estos:

387 387 

388* Abra `claude agents` en ese directorio.388* Abra `claude agents` en ese directorio.

389* Abra `claude agents` en un directorio padre y mencione un repositorio hijo con `@<repo>` en el mensaje. Escribir `@` enumera estos objetivos:389* Abra `claude agents` en un directorio principal y mencione un repositorio secundario con `@<repo>` en el prompt. Escribir `@` enumera estos objetivos:

390 390 

391 * Repositorios Git un nivel por debajo del directorio de lanzamiento391 * Repositorios Git un nivel por debajo del directorio de inicio

392 * Los [git worktrees](/docs/es/worktrees) registrados del repositorio desde el que se lanzó que viven dentro de su árbol de directorios, como los que Claude crea bajo `.claude/worktrees/`, etiquetados con su rama extraída. Los worktrees agregados fuera del repositorio, como con `git worktree add ../feature`, no se enumeran392 * Los [git worktrees](/docs/es/worktrees) registrados del repositorio desde el que inició que viven dentro de su árbol de directorios, como los que Claude crea bajo `.claude/worktrees/`, etiquetados con su rama extraída. Los worktrees agregados fuera del repositorio, como con `git worktree add ../feature`, no se enumeran

393 * Cualquier directorio que ya tenga una sesión en la lista393 * Cualquier directorio que ya tenga una sesión en la lista

394 394 

395 Un directorio cuyo nombre contiene un espacio no se enumera.395 Un directorio cuyo nombre contiene un espacio no se enumera.

396* Desde el shell, `cd` al directorio y ejecute `claude --bg "<prompt>"`.396* Desde el shell, `cd` al directorio y ejecute `claude --bg "<prompt>"`.

397 397 

398Cuando la vista de agentes se agrupa por directorio, distribuir envía el mensaje al directorio de la fila seleccionada, por lo que puede seleccionar un grupo y distribuir en él sin reescribir la ruta.398Cuando la vista de agentes se agrupa por directorio, enviar envía el prompt al directorio de la fila seleccionada, para que pueda seleccionar un grupo y enviar a él sin reescribir la ruta.

399 399 

400<h3 id="from-inside-a-session">400<h3 id="from-inside-a-session">

401 Desde dentro de una sesión401 Desde dentro de una sesión

402</h3>402</h3>

403 403 

404Dos comandos mueven el trabajo de la sesión en la que se encuentra al segundo plano: `/background` envía la conversación actual allí y libera su terminal, y `/fork` envía una copia mientras continúa trabajando donde está.404Dos comandos mueven el trabajo de la sesión en la que se encuentra al fondo: `/background` envía la conversación actual allí y libera su terminal, y `/fork` envía una copia mientras continúa trabajando donde está.

405 405 

406<h4 id="send-the-session-to-the-background">406<h4 id="send-the-session-to-the-background">

407 Enviar la sesión al segundo plano407 Enviar la sesión al fondo

408</h4>408</h4>

409 409 

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

411 411 

412Salir de una sesión que aún tiene trabajo en segundo plano en ejecución, como subagentes, comandos de shell en segundo plano, flujos de trabajo o [monitores](/docs/es/tools-reference#monitor-tool), muestra un diálogo `Background work is running` en lugar de salir inmediatamente. Elija `Move to background and exit` para enviar la sesión al segundo plano de la misma manera que `/background` lo hace y volver a su shell. La opción no se muestra cuando la vista de agentes está [desactivada](#turn-off-agent-view).412Salir de una sesión que aún tiene trabajo en segundo plano en ejecución, como subagentes, comandos de shell en segundo plano, flujos de trabajo o [monitores](/docs/es/tools-reference#monitor-tool), muestra un diálogo `Background work is running` en lugar de salir inmediatamente. Elija `Move to background and exit` para enviar la sesión al fondo de la misma manera que lo hace `/background` y volver a su shell. La opción no se muestra cuando la vista de agentes está [desactivada](#turn-off-agent-view).

413 413 

414Si una sesión en segundo plano en la lista ya tiene el nombre de la conversación, Claude Code numera el nombre de la nueva fila, como `my-session (2)`, y deja el nombre de la fila existente sin cambios. Para renombrar la nueva fila, selecciónela en la vista de agentes y presione `Ctrl+R`.414Si una sesión en segundo plano en la lista ya tiene el nombre de la conversación, Claude Code numera el nombre de la nueva fila, como `my-session (2)`, y deja el nombre de la fila existente sin cambios. Para cambiar el nombre de la nueva fila, selecciónela en la vista de agentes y presione `Ctrl+R`.

415 415 

416<h4 id="copy-the-session-with-/fork">416<h4 id="copy-the-session-with-/fork">

417 Copiar la sesión con /fork417 Copiar la sesión con /fork

418</h4>418</h4>

419 419 

420Ejecute `/fork` para copiar la conversación actual en una nueva sesión en segundo plano mientras la original continúa ejecutándose. La copia comienza con todo en la conversación hasta ese punto; consulte los puntos a continuación para ver dónde se ejecuta la copia. También lleva el modelo, modo de permiso, nivel de esfuerzo y cualquier directorio o concesión de permiso "no preguntar de nuevo" que agregó durante la sesión. La copia aparece como su propia fila en la vista de agentes.420Ejecute `/fork` para copiar la conversación actual en una nueva sesión en segundo plano mientras el original continúa ejecutándose. La copia comienza con todo en la conversación hasta ese punto; consulte los puntos a continuación para ver dónde se ejecuta la copia. También lleva el modelo, modo de permiso, nivel de esfuerzo y cualquier directorio o concesión de permiso "no preguntar de nuevo" que agregó durante la sesión. La copia aparece como su propia fila en la vista de agentes.

421 421 

422Después de la bifurcación, las dos conversaciones son independientes: nada de lo que hace la copia entra en la conversación original por sí solo, aunque en sesiones donde [mensajería entre sesiones](/docs/es/cross-session-messaging) está habilitada, Claude en cualquiera de las sesiones puede enviar un mensaje explícitamente a la otra.422Después de la bifurcación, las dos conversaciones son independientes: nada de lo que hace la copia entra en la conversación original por sí sola, aunque en sesiones donde [mensajería entre sesiones](/docs/es/cross-session-messaging) está habilitada, Claude en cualquiera de las sesiones puede enviar un mensaje explícitamente al otro.

423 423 

424Copiar la sesión requiere Claude Code v2.1.212 o posterior; en v2.1.161 a v2.1.211, `/fork` inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) en su lugar, que ahora es `/subtask`. Cuando [la vista de agentes está desactivada](#turn-off-agent-view), `/fork` mantiene el comportamiento de subagente bifurcado y `/subtask` no está disponible.424Copiar la sesión requiere Claude Code v2.1.212 o posterior; en v2.1.161 a v2.1.211, `/fork` inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) en su lugar, que ahora es `/subtask`. Cuando [la vista de agentes está desactivada](#turn-off-agent-view), `/fork` mantiene el comportamiento de subagente bifurcado y `/subtask` no está disponible.

425 425 

426Pase un mensaje como `/fork open a draft pull request with the work so far` y la copia comienza a trabajar en él inmediatamente. Sin un mensaje, la copia espera su primera instrucción: seleccione su fila en `claude agents` y presione `Space` para enviar una, o ejecute `claude attach <id>`. La fila seleccionada muestra `space to send it a prompt` mientras espera.426Pase un prompt como `/fork open a draft pull request with the work so far` y la copia comienza a trabajar en él inmediatamente. Sin un prompt, la copia espera su primera instrucción: seleccione su fila en `claude agents` y presione `Space` para enviar una, o ejecute `claude attach <id>`. La fila seleccionada muestra `space to send it a prompt` mientras espera.

427 427 

428La confirmación de `/fork` es una línea que muestra el estado de la copia, como `session running`, el nombre de su fila de vista de agentes y su ID de sesión para `claude attach`. Haga clic en el nombre para cambiar a la copia: esta sesión se mueve al segundo plano, igual que presionar `←`, y la vista de agentes abre la sesión de la copia.428La confirmación de `/fork` es una línea que muestra el estado de la copia, como `session running`, el nombre de su fila de vista de agentes y su ID de sesión para `claude attach`. Haga clic en el nombre para cambiar a la copia: esta sesión se mueve al fondo, igual que presionar `←`, y la vista de agentes abre la sesión de la copia.

429 429 

430Excepto cuando la copia [edita en su lugar](#how-file-edits-are-isolated), Claude Code le indica que cree su propio worktree antes de hacer cambios de código. Fuera de un repositorio git, solo una copia movida fuera de un worktree creado por hook recibe la instrucción; sin un hook [`WorktreeCreate`](/docs/es/hooks#worktreecreate), la copia edita en su lugar. Una copia movida fuera de su worktree también recibe la instrucción de nunca editar, ejecutar comandos en o entrar en ese worktree, sea cual sea la configuración de aislamiento.430Excepto cuando la copia [edita en su lugar](#how-file-edits-are-isolated), Claude Code le indica que cree su propio worktree antes de hacer cambios de código. Fuera de un repositorio git, solo una copia movida fuera de un worktree creado por hook obtiene la instrucción; sin un hook [`WorktreeCreate`](/docs/es/hooks#worktreecreate), la copia edita en su lugar. Una copia movida fuera de su worktree también se le indica que nunca edite, ejecute comandos en, o entre en ese worktree, sea cual sea la configuración de aislamiento.

431 431 

432Dónde comienza la copia depende de dónde se ejecuta la sesión actual:432Dónde comienza la copia depende de dónde se ejecuta la sesión actual:

433 433 

434* Como cualquier sesión distribuida, la copia [se mueve a su propio worktree antes de editar archivos](#how-file-edits-are-isolated). En ese caso, la confirmación no menciona dónde se ejecuta la copia.434* Como cualquier sesión enviada, la copia [se mueve a su propio worktree antes de editar archivos](#how-file-edits-are-isolated). En ese caso, la confirmación no menciona dónde se ejecuta la copia.

435* Cuando su sesión se movió a su [worktree](/docs/es/worktrees) vinculado después de que comenzó, la copia comienza de nuevo donde estaba la sesión antes del movimiento y, a menos que [edite en su lugar](#how-file-edits-are-isolated), hace sus cambios de código en un worktree propio allí. Cuando su worktree está extraído en una rama, esa instrucción también le dice a una copia cuya tarea se basa en su trabajo que base su nueva rama en la suya, ya que su rama permanece extraída en su worktree. La confirmación termina con `runs in the origin tree`.435* Cuando su sesión se movió a su [worktree](/docs/es/worktrees) vinculado después de que comenzó, la copia comienza de nuevo donde estaba la sesión antes del movimiento y, a menos que [edite en su lugar](#how-file-edits-are-isolated), realiza sus cambios de código en un worktree propio allí. Cuando su worktree se extrae en una rama, esa instrucción también le dice a una copia cuya tarea se basa en su trabajo que base su nueva rama en la suya, ya que su rama permanece extraída en su worktree. La confirmación termina con `runs in the origin tree`.

436* Cuando lanzó la sesión dentro de un worktree vinculado de un repositorio que tiene un árbol de trabajo principal, la copia comienza en ese árbol de trabajo principal, con la misma regla de worktree propio pero sin instrucción de rama. La confirmación termina con `runs in the origin tree` aquí también.436* Cuando inició la sesión dentro de un worktree vinculado de un repositorio que tiene un árbol de trabajo principal, la copia comienza en ese árbol de trabajo principal, con la misma regla de worktree propio pero sin instrucción de rama. La confirmación termina con `runs in the origin tree` aquí también.

437* Una sesión lanzada dentro de un worktree de un diseño de repositorio desnudo no tiene árbol de trabajo principal al que volver, por lo que la copia permanece donde está, y la confirmación termina con `edits this checkout`. La misma nota aparece cuando el aislamiento de worktree está [desactivado](#how-file-edits-are-isolated) en una sesión que no está dentro de un worktree vinculado, porque la copia entonces edita los archivos que tiene abiertos.437* Una sesión iniciada dentro de un worktree de un diseño de repositorio desnudo no tiene un árbol de trabajo principal al que volver, por lo que la copia permanece donde está, y la confirmación termina con `edits this checkout`. La misma nota aparece cuando el aislamiento de worktree está [desactivado](#how-file-edits-are-isolated) en una sesión que no está dentro de un worktree vinculado, porque la copia luego edita los archivos que tiene abiertos.

438 438 

439Las sesiones iniciadas con banderas de lanzamiento que la copia no heredaría, como un mensaje del sistema reemplazado o una lista de permitidos `--tools`, no se pueden bifurcar; Claude Code lo dice en lugar de hacer una copia parcial. Una sesión distribuida desde la vista de agentes se bifurca normalmente: la copia se lanza con la misma [definición de agente](/docs/es/sub-agents) e instrucciones añadidas que la sesión de la que proviene.439Las sesiones iniciadas con indicadores de inicio que la copia no heredaría, como un prompt del sistema reemplazado o una lista de permitidos `--tools`, no se pueden bifurcar; Claude Code lo dice en lugar de hacer una copia parcial. Una sesión enviada desde la vista de agentes se bifurca normalmente: la copia se inicia con la misma [definición de agente](/docs/es/sub-agents) e instrucciones anexadas que la sesión de la que proviene.

440 440 

441<h4 id="what-carries-over-when-you-background">441<h4 id="what-carries-over-when-you-background">

442 Qué se lleva cuando envía al segundo plano442 Qué se lleva cuando envía al fondo

443</h4>443</h4>

444 444 

445Enviar al segundo plano inicia un nuevo proceso que se reanuda desde la conversación guardada, y el trabajo en vuelo se traslada a él: comandos shell en segundo plano en ejecución, subagentes en segundo plano, flujos de trabajo dinámicos, tareas programadas que creó con [`/loop`](/docs/es/scheduled-tasks), y [respuestas automáticas de Claude a comentarios de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) se trasladan a la sesión en segundo plano y siguen ejecutándose allí. Un subagente se traslada junto con todo lo que inició, por lo que se traslada solo cuando todo ese trabajo puede trasladarse también. Para detener el trabajo en vuelo en lugar de trasladarlo, establezca la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/docs/es/env-vars#variables); Claude Code luego le pide que confirme antes de enviar al segundo plano.445Enviar al fondo inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en vuelo se mueve a él: comandos de shell en segundo plano en ejecución, subagentes en segundo plano, flujos de trabajo dinámicos, tareas programadas que creó con [`/loop`](/docs/es/scheduled-tasks), y [respuestas automáticas de Claude a comentarios de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) todos se llevan y continúan ejecutándose allí. Un subagente se mueve junto con todo lo que inició, por lo que se lleva solo cuando todo ese trabajo también puede moverse. Para detener el trabajo en vuelo en lugar de llevarlo, establezca la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/docs/es/env-vars#variables); Claude Code luego le pide que confirme antes de enviar al fondo.

446 446 

447Cuando un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución, Claude Code pregunta antes de enviar al segundo plano con el diálogo `Background this session?`, que dice cuántos subagentes se reiniciarían. Elija `Stay` para dejarlos terminar primero. Si confirma, Claude Code reproduce la ejecución en la sesión en segundo plano: los subagentes que aún se estaban ejecutando comienzan de nuevo desde el principio, por lo que los tokens que usaron hasta ahora se gastan nuevamente. Consulte [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) para ver qué subagentes completados devuelven sus resultados guardados y cuáles se ejecutan nuevamente.447Cuando un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución, Claude Code pregunta antes de enviar al fondo con el diálogo `Background this session?`, que dice cuántos subagentes se reiniciarían. Elija `Stay` para dejarlos terminar primero. Si confirma, Claude Code reproduce la ejecución en la sesión en segundo plano: los subagentes que aún se ejecutaban comienzan de nuevo desde el principio, por lo que los tokens que usaron hasta ahora se gastan nuevamente. Consulte [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) para ver qué subagentes completados devuelven sus resultados guardados y cuáles se ejecutan nuevamente.

448 448 

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

450 450 

451Una vez en segundo plano, la sesión puede iniciar nuevos subagentes, monitores y comandos en segundo plano, y esos continúan ejecutándose en desconexiones y reconexiones posteriores.451Una vez en el fondo, la sesión puede iniciar nuevos subagentes, monitores y comandos en segundo plano, y esos continúan ejecutándose en desasociaciones y readjuntos posteriores.

452 452 

453Las banderas de configuración del lanzamiento original se transfieren a la sesión enviada al segundo plano, por lo que sus servidores MCP, configuración y modelo de respaldo permanecen en vigor:453Las banderas de configuración del inicio original se llevan a través de la sesión en segundo plano, por lo que sus servidores MCP, configuración y modelo de respaldo permanecen en vigor:

454 454 

455* `--mcp-config` y `--strict-mcp-config`455* `--mcp-config` y `--strict-mcp-config`

456* `--settings`456* `--settings`

457* `--setting-sources`

457* `--add-dir`458* `--add-dir`

458* `--plugin-dir`459* `--plugin-dir`

459* `--fallback-model`460* `--fallback-model`

460* `--allow-dangerously-skip-permissions`461* `--allow-dangerously-skip-permissions`

461 462 

462Los directorios que agregó durante la sesión con [`/add-dir`](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) también se transfieren. Transferir `--allow-dangerously-skip-permissions` mantiene `bypassPermissions` accesible en la sesión enviada al segundo plano, pero no otorga nada nuevo: el modo aún requiere la aceptación interactiva única descrita en [Modo de permiso, modelo y esfuerzo](#permission-mode-model-and-effort).463Los directorios que agregó durante la sesión con [`/add-dir`](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) también se llevan. Llevar `--allow-dangerously-skip-permissions` mantiene `bypassPermissions` alcanzable en la sesión en segundo plano, pero no otorga nada nuevo: el modo aún requiere la aceptación interactiva única descrita en [Modo de permiso, modelo y esfuerzo](#permission-mode-model-and-effort).

463 464 

464<h3 id="from-your-shell">465<h3 id="from-your-shell">

465 Desde su shell466 Desde su shell

466</h3>467</h3>

467 468 

468Pase `--bg` o su forma larga `--background` para iniciar una sesión que vaya directamente al segundo plano:469Pase `--bg` o su forma larga `--background` para iniciar una sesión que vaya directamente al fondo:

469 470 

470```bash theme={null}471```bash theme={null}

471claude --bg "investigate the flaky SettingsChangeDetector test"472claude --bg "investigate the flaky SettingsChangeDetector test"

472```473```

473 474 

474El mensaje es el argumento posicional, no un valor `-p`. Claude Code rechaza `--bg` combinado con `-p` o `--print` antes de que se cree cualquier sesión, porque `--print` nunca inicia la sesión interactiva a la que `claude agents` se conecta.475El prompt es el argumento posicional, no un valor `-p`. Claude Code rechaza `--bg` combinado con `-p` o `--print` antes de que se cree cualquier sesión, porque `--print` nunca inicia la sesión interactiva a la que se adjunta `claude agents`.

476 

477Si ejecuta `claude --bg` desde una terminal en un directorio que no ha [confiado](/docs/es/permissions#project-allow-rules-and-workspace-trust), el diálogo de confianza del espacio de trabajo aparece primero y la sesión comienza una vez que acepta. Si rechaza, Claude Code sale sin iniciar una sesión. Donde no puede aparecer ningún diálogo, como en un script, el comando sale con un error [`Workspace not trusted`](/docs/es/errors#workspace-not-trusted-when-dispatching-a-background-session) en su lugar.

475 478 

476Para ejecutar un [subagente](/docs/es/sub-agents) específico que haya definido, como un `code-reviewer`, como el agente principal de la sesión, combine `--bg` con `--agent`:479Para ejecutar un [subagente](/docs/es/sub-agents) específico que haya definido, como un `code-reviewer`, como el agente principal de la sesión, combine `--bg` con `--agent`:

477 480 


479claude --agent code-reviewer --bg "address review comments on PR 1234"482claude --agent code-reviewer --bg "address review comments on PR 1234"

480```483```

481 484 

482Si el nombre no coincide con ninguno de sus subagentes, el lanzamiento falla: Claude Code imprime una advertencia `no agent named` y aún reporta la sesión como enviada al segundo plano, pero la sesión sale inmediatamente con un error `--agent '<name>' not found`.485Si el nombre no coincide con ninguno de sus subagentes, el inicio falla: Claude Code imprime una advertencia `no agent named` y aún informa la sesión como enviada al fondo, pero la sesión sale inmediatamente con un error `--agent '<name>' not found`.

483 486 

484Cuando la sesión enviada al segundo plano se reanuda o reinicia más tarde, Claude Code restaura el agente y sus restricciones de herramientas; para su mensaje del sistema, consulte [Banderas de mensaje del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations). Busca primero el agente en el directorio de la sesión, siempre que haya [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), por lo que un agente con alcance de proyecto aún se carga cuando la sesión se reanuda desde otro directorio. Si el agente ya no existe, la sesión continúa con las herramientas predeterminadas y su transcripción se abre con una [advertencia que nombra al agente](/docs/es/errors#session-agent-no-longer-available).487Cuando la sesión en segundo plano se reanuda o reinicia más tarde, Claude Code restaura el agente y sus restricciones de herramientas; para su prompt del sistema, consulte [Indicadores de prompt del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations). Busca el agente en el directorio de la sesión primero, siempre que haya [confiado en ese espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), por lo que un agente con alcance de proyecto aún se carga cuando la sesión se reanuda desde otro directorio. Si el agente ya no existe, la sesión continúa con las herramientas predeterminadas y su transcripción se abre con una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available).

485 488 

486Para continuar una conversación existente en segundo plano, pase su ID de sesión completo con `--resume`:489Para continuar una conversación existente en el fondo, pase su ID de sesión completo con `--resume`:

487 490 

488```bash theme={null}491```bash theme={null}

489claude --resume 1f0e2c9a-6d0b-4c11-9f39-2a77c1d4e8b5 --bg "pick up where you left off and finish the migration"492claude --resume 1f0e2c9a-6d0b-4c11-9f39-2a77c1d4e8b5 --bg "pick up where you left off and finish the migration"

490```493```

491 494 

492En Claude Code v2.1.257 o posterior, Claude Code continúa esa sesión bajo el mismo ID, o inicia una copia bajo un nuevo ID e imprime una línea `note:` explicando por qué no pudo continuar en su lugar. Cuando la sesión continúa en su lugar, `claude agents` muestra una fila para ella.495En Claude Code v2.1.257 o posterior, Claude Code continúa esa sesión bajo el mismo ID, o inicia una copia bajo un ID nuevo e imprime una línea `note:` explicando por qué no pudo continuar en su lugar. Cuando la sesión continúa en su lugar, `claude agents` muestra una fila para ella.

493 496 

494Cuando combina `--bg` con `--continue`, un `--resume` sin argumentos, o `--resume` con un nombre o ruta de archivo, Claude Code siempre inicia una copia de este tipo. Agregue `--fork-session` para iniciar una copia a propósito, sin la nota.497Cuando combina `--bg` con `--continue`, un `--resume` desnudo, o `--resume` con un nombre o ruta de archivo, Claude Code siempre inicia una copia de este tipo. Agregue `--fork-session` para iniciar una copia a propósito, sin la nota.

495 498 

496Pase `--name` para establecer el nombre de visualización de la sesión en la vista de agentes en lugar del generado automáticamente:499Pase `--name` para establecer el nombre de visualización de la sesión en la vista de agentes en lugar del generado automáticamente:

497 500 


499claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"502claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"

500```503```

501 504 

502Después de enviar al segundo plano, Claude imprime el ID corto de la sesión y los comandos para administrarla. Cuando el servicio que aloja sesiones en segundo plano no está ya en ejecución, `--bg` puede imprimir primero `Starting background service…` encima de esta salida. Cuando pasa `--name`, el nombre aparece después del ID corto:505Después de enviar al fondo, Claude imprime el ID corto de la sesión y los comandos para administrarla. Cuando el servicio que aloja sesiones en segundo plano aún no se está ejecutando, `--bg` puede imprimir primero `Starting background service…` encima de esta salida. Cuando pasa `--name`, el nombre aparece después del ID corto:

503 506 

504```text theme={null}507```text theme={null}

505backgrounded · 7c5dcf5d · flaky-test-fix508backgrounded · 7c5dcf5d · flaky-test-fix


519claude --bg --exec 'pytest -x'522claude --bg --exec 'pytest -x'

520```523```

521 524 

522Desde la vista de agentes, distribuya el mismo tipo de trabajo escribiendo `!` como el primer carácter de la entrada de distribución: el `!` se muestra como un prefijo, todo lo que viene después es el comando, y `Enter` inicia el trabajo.525Desde la vista de agentes, envíe el mismo tipo de trabajo escribiendo `!` como el primer carácter de la entrada de envío: el `!` se muestra como un prefijo, todo después de él es el comando, y `Enter` inicia el trabajo.

523 526 

524El comando se ejecuta como un trabajo respaldado por PTY y aparece como una fila en la vista de agentes, con la línea de salida más reciente como su estado. Un trabajo de shell ejecuta el comando en lugar de Claude, por lo que no se invoca ningún modelo y la salida no se envía a ninguna sesión.527El comando se ejecuta como un trabajo respaldado por PTY y aparece como una fila en la vista de agentes, con la línea de salida más reciente como su estado. Un trabajo de shell ejecuta el comando en lugar de Claude, por lo que no se invoca ningún modelo y la salida no se envía a ninguna sesión.

525 528 

526Para ver la salida, conéctese a la fila, presione `Space` para echar un vistazo sin conectarse, o ejecute `claude logs <id>` desde su shell. La salida capturada permanece en la memoria y no se escribe en el disco. La fila y su salida se limpian automáticamente aproximadamente cinco minutos después de que el comando salga, así que léalo antes si necesita el resultado.529Para ver la salida, adjúntese a la fila, presione `Space` para ver sin adjuntarse, o ejecute `claude logs <id>` desde su shell. La salida capturada permanece en la memoria y no se escribe en el disco. La fila y su salida se limpian automáticamente aproximadamente cinco minutos después de que el comando sale, así que léalo antes de entonces si necesita el resultado.

527 530 

528<h3 id="how-file-edits-are-isolated">531<h3 id="how-file-edits-are-isolated">

529 Cómo se aíslan las ediciones de archivos532 Cómo se aíslan las ediciones de archivos

530</h3>533</h3>

531 534 

532Cada sesión en segundo plano, ya sea iniciada desde la vista de agentes, `/bg` o `claude --bg`, comienza en su directorio de trabajo. Antes de editar archivos, Claude mueve la sesión a un [git worktree](/docs/es/worktrees) aislado bajo `.claude/worktrees/`, de modo que las sesiones paralelas pueden leer el mismo checkout pero cada una escribe en la suya propia. Una vez que la sesión está en su worktree, Claude Code [aplica aislamiento de worktree](/docs/es/worktrees#how-claude-code-enforces-isolation) para la sesión y para cualquier subagente que genere.535Cada sesión en segundo plano, ya sea iniciada desde la vista de agentes, `/bg`, o `claude --bg`, comienza en su directorio de trabajo. Antes de editar archivos, Claude mueve la sesión a un [git worktree](/docs/es/worktrees) aislado bajo `.claude/worktrees/`, para que las sesiones paralelas puedan leer el mismo checkout pero cada una escribe en la suya. Una vez que la sesión está en su worktree, Claude Code [aplica aislamiento de worktree](/docs/es/worktrees#how-claude-code-enforces-isolation) para la sesión y para cualquier subagente que genere.

533 536 

534Claude omite el worktree cuando:537Claude omite el worktree cuando:

535 538 

536* La sesión ya está dentro de un git worktree vinculado, ya sea que Claude lo haya creado bajo `.claude/worktrees/` o que lo haya creado con `git worktree add` en otro lugar539* La sesión ya está dentro de un git worktree vinculado, ya sea que Claude lo creara bajo `.claude/worktrees/` o lo creara con `git worktree add` en otro lugar

537* El archivo que Claude está editando está dentro de un git worktree vinculado, como uno que la sesión o su subagente creó con `git worktree add`540* El archivo que Claude está editando está dentro de un git worktree vinculado, como uno que la sesión o su subagente creó con `git worktree add`

538* El directorio de trabajo no es un repositorio git y no hay ningún hook [`WorktreeCreate`](/docs/es/hooks#worktreecreate) configurado541* El directorio de trabajo no es un repositorio git y no hay ningún hook [`WorktreeCreate`](/docs/es/hooks#worktreecreate) configurado

539* La escritura está fuera del directorio de trabajo542* La escritura está fuera del directorio de trabajo

540 543 

541Para desactivar el aislamiento de worktree para un repositorio donde los git worktrees no son prácticos, establezca [`worktree.bgIsolation`](/docs/es/settings-reference#worktree-bgisolation) en `"none"`. Las sesiones en segundo plano editarán su copia de trabajo directamente sin moverse a un worktree primero. Agregue la configuración al archivo `.claude/settings.json` del proyecto:544Para desactivar el aislamiento de worktree para un repositorio donde los git worktrees no son prácticos, establezca [`worktree.bgIsolation`](/docs/es/settings-reference#worktree-bgisolation) en `"none"`. Las sesiones en segundo plano luego editan su copia de trabajo directamente sin moverse a un worktree primero. Agregue la configuración al `.claude/settings.json` del proyecto:

542 545 

543```json theme={null}546```json theme={null}

544{547{


548}551}

549```552```

550 553 

551Fuera de un repositorio git, las sesiones escriben en el directorio de trabajo directamente y no están aisladas entre sí, por lo que evite distribuir sesiones paralelas que editen los mismos archivos. Si utiliza un sistema de control de versiones diferente, configure un hook [`WorktreeCreate`](/docs/es/worktrees#non-git-version-control) y Claude aísla las ediciones de la misma manera que lo hace para git.554Fuera de un repositorio git, las sesiones escriben en el directorio de trabajo directamente y no se aíslan entre sí, por lo que evite enviar sesiones paralelas que editen los mismos archivos. Si usa un sistema de control de versiones diferente, configure un hook [`WorktreeCreate`](/docs/es/worktrees#non-git-version-control) y Claude aísla las ediciones de la misma manera que lo hace para git.

552 555 

553Cuando el hook falla en un directorio que no es un repositorio git, Claude omite el aislamiento para ese directorio y edita el directorio de trabajo en su lugar. Dentro de un repositorio git, Claude Code bloquea las escrituras en el checkout compartido hasta que Claude mueve la sesión a un worktree.556Cuando el hook falla en un directorio que no es un repositorio git, Claude omite el aislamiento para ese directorio y edita el directorio de trabajo en su lugar. Dentro de un repositorio git, Claude Code bloquea las escrituras al checkout compartido hasta que Claude mueve la sesión a un worktree.

554 557 

555Para encontrar la ruta del worktree de una sesión, eche un vistazo a la sesión o conéctese y verifique su directorio de trabajo.558Para encontrar la ruta del worktree de una sesión, vea la sesión o adjúntese y verifique su directorio de trabajo.

556 559 

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

558 561 

559Cuando una sesión en segundo plano ha realizado cambios de código en un worktree que Claude ingresó, Claude Code le indica a Claude que preserve el trabajo antes de terminar, por lo que sobrevive si elimina la sesión y su worktree:562Cuando una sesión en segundo plano ha realizado cambios de código en un worktree que Claude ingresó, Claude Code le indica a Claude que preserve el trabajo antes de terminar, para que sobreviva si elimina la sesión y su worktree:

560 563 

561* **Confirmar e insertar**: Claude confirma sin preguntar e inserta la rama cuando el repositorio tiene un remoto.564* **Confirmar e impulsar**: Claude confirma sin preguntar, e impulsa la rama cuando el repositorio tiene un remoto.

562* **Solicitud de extracción en borrador**: Claude abre una cuando la tarea lo requiere, y la etiqueta [`#N`](#pull-request-status) aparece en la fila.565* **Solicitud de extracción de borrador**: Claude abre una cuando la tarea lo requiere, y la etiqueta [`#N`](#pull-request-status) aparece en la fila.

563* **Nunca**: insertar a `main` o `master`, fuerza-insertar y fusionar.566* **Nunca**: impulsar a `main` o `master`, impulsar forzadamente y fusionar.

564* **Sus instrucciones de git tienen prioridad**: si la tarea, `CLAUDE.md` o [memoria](/docs/es/memory) dice que usted maneja la confirmación o inserción usted mismo, Claude deja git para usted.567* **Sus instrucciones de git tienen prioridad**: si la tarea, `CLAUDE.md`, o [memoria](/docs/es/memory) dice que maneja la confirmación o el impulso usted mismo, Claude le deja git a usted.

565 568 

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

567 570 

568Sea cual sea la tarea, Claude termina el trabajo con un informe que dice qué hizo y dónde está el trabajo: una ruta, una rama, una solicitud de extracción o la respuesta en sí.571Sea cual sea la tarea, Claude termina el trabajo con un informe que dice qué hizo y dónde está el trabajo: una ruta, una rama, una solicitud de extracción, o la respuesta en sí.

569 572 

570<h4 id="what-deleting-a-session-removes">573<h4 id="what-deleting-a-session-removes">

571 Qué elimina la eliminación de una sesión574 Qué elimina una sesión

572</h4>575</h4>

573 576 

574Elimine una sesión con `Ctrl+X` dos veces en [vista de agentes](#organize-the-list) o con [`claude rm`](#manage-sessions-from-the-shell). Excepto en los casos mantenidos a continuación, la sesión deja la lista. Su transcripción permanece en su máquina a través de `claude --resume`, y la eliminación sobrevive a los reinicios del supervisor.577Elimine una sesión con `Ctrl+X` dos veces en [vista de agentes](#organize-the-list) o con [`claude rm`](#manage-sessions-from-the-shell). Excepto en los casos mantenidos a continuación, la sesión sale de la lista. Su transcripción permanece en su máquina a través de `claude --resume`, y la eliminación sobrevive a los reinicios del supervisor.

575 578 

576Qué sucede con un worktree que Claude creó para la sesión:579Qué sucede con un worktree que Claude creó para la sesión:

577 580 

578* La vista de agentes lo elimina, incluidos los cambios sin confirmar, por lo que confirme lo que desee mantener primero.581* La vista de agentes lo elimina, incluidos los cambios sin confirmar, así que confirme lo que desea mantener primero.

579* `claude rm` lo mantiene, junto con la fila de la sesión, cuando tiene cambios sin confirmar.582* `claude rm` lo mantiene, junto con la fila de la sesión, cuando tiene cambios sin confirmar.

580* Ni la vista de agentes ni `claude rm` eliminan un worktree que otra sesión en ejecución está usando o ha bloqueado, y eliminar nuevamente no cambia eso. Claude Code mantiene el worktree y la sesión, y nombra el directorio mantenido y la razón; en la vista de agentes, la fila de la sesión muestra `not deleted`. Cierre la otra sesión, luego elimine nuevamente.583* Ni la vista de agentes ni `claude rm` eliminan un worktree que otra sesión en ejecución está usando o ha bloqueado, y eliminar nuevamente no cambia eso. Claude Code mantiene el worktree y la sesión, y nombra el directorio mantenido y la razón; en la vista de agentes, la fila de la sesión muestra `not deleted`. Cierre la otra sesión, luego elimine nuevamente.

581* Cuando elimina una sesión cuyo worktree tiene commits que Claude Code no puede confirmar que se guardan en otro lugar, Claude Code mantiene el worktree y la sesión, y el mensaje nombra la rama del worktree y cuántos commits no se han insertado. El mensaje también ofrece las dos formas de avanzar: insertar los commits, o eliminar nuevamente para descartarlos.584* Cuando elimina una sesión cuyo worktree tiene confirmaciones que Claude Code no puede confirmar que se guardan en otro lugar, Claude Code mantiene el worktree y la sesión, y el mensaje nombra la rama del worktree y cuántas confirmaciones no se impulsan. El mensaje también ofrece las dos formas de avanzar: impulsar las confirmaciones, o eliminar nuevamente para descartarlas.

582 585 

583 Los commits en un remoto no bloquean la eliminación. Tampoco los commits en la copia local de la rama predeterminada de su remoto `origin`, siempre que esa rama esté extraída en su checkout principal, el directorio del repositorio en sí en lugar de un worktree.586 Las confirmaciones en un remoto no bloquean la eliminación. Tampoco las confirmaciones en la copia local de la rama predeterminada de su remoto `origin`, siempre que esa rama se extraiga en su checkout principal, el directorio del repositorio en sí en lugar de un worktree.

584 587 

585 Después de esa negativa, elige:588 Después de esa negativa, elige:

586 589 

587 * Para mantener los commits, insértalos o fusionelos en esa rama predeterminada, luego elimina la sesión nuevamente.590 * Para mantener las confirmaciones, impúlselas, o fusionelas en esa rama predeterminada, luego elimine la sesión nuevamente.

588 * Para descartarlos, elimina la sesión nuevamente sin insertar: presione `Ctrl+X` dos veces en su fila en la vista de agentes, o ejecute el comando `claude rm <id> --discard-unpushed` que la negativa imprimió. Esto elimina la sesión y el worktree junto con su rama, descartando los commits no insertados y cualquier cambio sin confirmar.591 * Para descartarlas, elimine la sesión nuevamente sin impulsar: presione `Ctrl+X` dos veces en su fila en la vista de agentes, o ejecute el comando `claude rm <id> --discard-unpushed` que la negativa imprimió. Esto elimina la sesión y el worktree junto con su rama, descartando las confirmaciones no impulsadas y cualquier cambio sin confirmar.

589 592 

590 Cuando elimina nuevamente, Claude Code descarta solo lo que mostró la negativa: si el worktree ha ganado un commit desde entonces, Claude Code lo mantiene nuevamente y muestra el estado actualizado.593 Cuando elimina nuevamente, Claude Code descarta solo lo que mostró la negativa: si el worktree ha ganado una confirmación desde entonces, Claude Code lo mantiene nuevamente y muestra el estado actualizado.

591 594 

592 Cuando los registros de otra sesión terminada también nombran el worktree, permanece cuando elimina nuevamente; inserta los commits, luego elimina nuevamente.595 Cuando el registro de otra sesión terminada también nombra el worktree, permanece cuando elimina nuevamente; impulse las confirmaciones, luego elimine nuevamente.

593* Un worktree que git ya no reconoce, por ejemplo después de `git worktree prune`, no bloquea la eliminación. Claude Code elimina la sesión y deja el directorio en el disco.596* Un worktree que git ya no reconoce, por ejemplo después de `git worktree prune`, no bloquea la eliminación. Claude Code elimina la sesión y deja el directorio en el disco.

594* Cuando git o su hook [`WorktreeRemove`](/docs/es/hooks#worktreeremove) falla al eliminar el worktree, Claude Code mantiene el worktree y la sesión, y el mensaje nombra la causa. Para un hook, el mensaje dice cómo terminó, como `exited 1`, y cita el inicio de su stderr. El mensaje también le dice cuál de estos hacer a continuación:597* Cuando git o su hook [`WorktreeRemove`](/docs/es/hooks#worktreeremove) falla al eliminar el worktree, Claude Code mantiene el worktree y la sesión, y el mensaje nombra la causa. Para un hook, el mensaje dice cómo terminó, como `exited 1`, y cita el inicio de su stderr. El mensaje también le dice cuál de estos hacer a continuación:

595 598 

596 * Elimine la sesión nuevamente para eliminar el directorio de todas formas, presionando `Ctrl+X` dos veces en su fila en la vista de agentes o ejecutando el comando `claude rm <id> --force-remove-worktree <worktree-id>` que la negativa de `claude rm` imprimió. Claude Code ofrece esto solo cuando puede confirmar que el directorio es uno de los worktrees vinculados del repositorio bajo `.claude/worktrees/` sin cambios sin confirmar en archivos rastreados, sin repositorio anidado dentro de él, y sin registro de otra sesión nombrándolo. La rama del worktree permanece en el repositorio.599 * Elimine la sesión nuevamente para eliminar el directorio de todas formas, presionando `Ctrl+X` dos veces en su fila en la vista de agentes o ejecutando el comando `claude rm <id> --force-remove-worktree <worktree-id>` que la negativa de `claude rm` imprimió. La rama del worktree permanece en el repositorio.

597 * Arregle lo que se interpone en el camino, como confirmar o guardar los cambios sin confirmar, cerrar lo que está usando el directorio, o arreglar el hook, luego elimine la sesión nuevamente.600 

601 Claude Code ofrece esto solo cuando puede confirmar todo lo siguiente:

602 

603 * El directorio es uno de los worktrees vinculados del repositorio bajo `.claude/worktrees/`

604 * Ni el worktree ni un submódulo extraído tiene cambios sin confirmar en archivos rastreados

605 * Ningún registro de otra sesión lo nombra

606 

607 Cuando Claude Code no puede verificar el estado de un checkout de submódulo, como uno reemplazado por un repositorio git separado, tampoco ofrece esto.

608 * Arregle lo que se interpone, como confirmar o guardar los cambios sin confirmar, mover un repositorio git separado fuera del worktree, cerrar lo que esté usando el directorio, o arreglar el hook, luego elimine la sesión nuevamente.

598 * Elimine el directorio usted mismo, luego elimine la sesión nuevamente.609 * Elimine el directorio usted mismo, luego elimine la sesión nuevamente.

599 610 

600Un worktree que creó usted mismo e inició la sesión dentro se deja en su lugar de cualquier forma.611Un worktree que creó usted mismo e inició la sesión dentro se deja en su lugar de cualquier forma.

601 612 

602Una sesión cuyo directorio de worktree no pertenece a ningún repositorio git, porque el repositorio fue eliminado o un hook [`WorktreeCreate`](/docs/es/hooks#worktreecreate) creó el directorio en otro lugar, aún se puede eliminar. Mientras los archivos permanezcan en el directorio:613Una sesión cuyo directorio de worktree no pertenece a ningún repositorio git, porque el repositorio fue eliminado o un hook [`WorktreeCreate`](/docs/es/hooks#worktreecreate) creó el directorio en otro lugar, aún se puede eliminar. Mientras los archivos permanezcan en el directorio:

603 614 

604* La vista de agentes pide el mismo doble presión `Ctrl+X` antes de descartarlos. Para un directorio creado por hook, ejecuta su hook [`WorktreeRemove`](/docs/es/hooks#worktreeremove) en su lugar, y sin uno rechaza la eliminación y mantiene la sesión.615* La vista de agentes pide la misma doble pulsación de `Ctrl+X` antes de descartarlos. Para un directorio creado por hook, ejecuta su hook [`WorktreeRemove`](/docs/es/hooks#worktreeremove) en su lugar, y sin uno rechaza la eliminación y mantiene la sesión.

605* `claude rm` mantiene la sesión y el worktree, y nombra la razón.616* `claude rm` mantiene la sesión y el worktree, y nombra la razón.

606 617 

607Cualquiera de los caminos mantiene un directorio que los registros de otra sesión terminada nombran.618Cualquiera de los caminos mantiene un directorio que los registros de otra sesión terminada nombran.


610 Establecer el modelo621 Establecer el modelo

611</h3>622</h3>

612 623 

613El nombre del modelo mostrado en el encabezado de la vista de agentes es el valor predeterminado de distribución. Las nuevas sesiones que inicia desde la entrada utilizan este modelo, que proviene de la configuración [`model`](/docs/es/settings-reference#model) en su configuración de usuario. Establézcalo seleccionando un modelo en el selector [`/model`](/docs/es/model-config), o edite la configuración directamente.624El nombre del modelo que se muestra en el encabezado de la vista de agentes es el predeterminado de envío. Las nuevas sesiones que inicia desde la entrada usan este modelo, que proviene de la [configuración `model`](/docs/es/settings-reference#model) en su configuración de usuario. Establézcalo seleccionando un modelo en el selector [`/model`](/docs/es/model-config), o edite la configuración directamente.

614 625 

615Para anular el valor predeterminado de distribución para toda la sesión de vista de agentes, pase `--model` al abrir la vista de agentes. Consulte [Modo de permiso, modelo y esfuerzo](#permission-mode-model-and-effort).626Para anular el predeterminado de envío para toda la sesión de vista de agentes, pase `--model` cuando abra la vista de agentes. Consulte [Modo de permiso, modelo y esfuerzo](#permission-mode-model-and-effort).

616 627 

617Para cambiar el valor predeterminado de distribución desde dentro de la vista de agentes, escriba `/model` seguido de un nombre de modelo en la entrada de distribución y presione `Enter`. El encabezado se actualiza para mostrar ese modelo con un marcador `(session)`, y las sesiones que distribuya después lo utilizan. Escriba `/model default` para borrar la anulación y volver al valor predeterminado de distribución. Esta anulación dura el resto de la ejecución actual de `claude agents` y no se escribe en su archivo de configuración. El siguiente ejemplo distribuye una sesión en Opus y la siguiente en Sonnet:628Para cambiar el predeterminado de envío desde dentro de la vista de agentes, escriba `/model` seguido de un nombre de modelo en la entrada de envío y presione `Enter`. El encabezado se actualiza para mostrar ese modelo con un marcador `(session)`, y las sesiones que envía después lo usan. Escriba `/model default` para borrar la anulación y volver al predeterminado de envío. Esta anulación dura el resto de la ejecución actual de `claude agents` y no escribe en su archivo de configuración. El siguiente ejemplo envía una sesión en Opus y la siguiente en Sonnet:

618 629 

619```text theme={null}630```text theme={null}

620/model opus631/model opus


626Cada sesión en segundo plano puede ejecutarse en un modelo diferente. Para anularlo para una sesión:637Cada sesión en segundo plano puede ejecutarse en un modelo diferente. Para anularlo para una sesión:

627 638 

628* Desde el shell, pase `--model` con `claude --bg`.639* Desde el shell, pase `--model` con `claude --bg`.

629* Conéctese a una sesión en ejecución y ejecute `/model` para cambiar: una selección del selector, o un `/model <name>` escrito, se guarda como su valor predeterminado para nuevas sesiones a menos que presione `s` en el selector para un cambio solo de sesión. Un cambio solo de sesión persiste si la sesión se reinicia.640* Adjúntese a una sesión en ejecución y ejecute `/model` para cambiar: una selección del selector, o un `/model <name>` escrito, se guarda como su predeterminado para nuevas sesiones a menos que presione `s` en el selector para un cambio solo de sesión. Un cambio solo de sesión persiste si la sesión se reaparece.

630* Distribuya un [subagente](/docs/es/sub-agents) cuyo frontmatter establezca un campo `model`.641* Envíe un [subagente](/docs/es/sub-agents) cuyo frontmatter establece un campo `model`.

631 642 

632<h3 id="permission-mode-model-and-effort">643<h3 id="permission-mode-model-and-effort">

633 Modo de permiso, modelo y esfuerzo644 Modo de permiso, modelo y esfuerzo

634</h3>645</h3>

635 646 

636Una sesión en segundo plano toma su configuración, proveedor, modo de permiso, modelo y esfuerzo de dónde y cómo la distribuyó. Las subsecciones a continuación cubren cada fuente y qué persiste cuando el supervisor reinicia la sesión.647Una sesión en segundo plano toma su configuración, proveedor, modo de permiso, modelo y esfuerzo de dónde y cómo la envió. Las subsecciones a continuación cubren cada fuente, y qué persiste cuando el supervisor reinicia la sesión.

637 648 

638<h4 id="settings-and-provider">649<h4 id="settings-and-provider">

639 Configuración y proveedor650 Configuración y proveedor

640</h4>651</h4>

641 652 

642Una sesión en segundo plano lee su [configuración](/docs/es/settings) desde el directorio en el que se ejecuta, igual que si hubiera iniciado `claude` allí. Esto incluye valores [`env`](/docs/es/settings-reference#env) en la configuración del proyecto, por lo que una variable `ANTHROPIC_MODEL` o de proveedor establecida allí se aplica a cada sesión en segundo plano en ese directorio.653Una sesión en segundo plano lee su [configuración](/docs/es/settings) del directorio en el que se ejecuta, igual que si hubiera iniciado `claude` allí con las [banderas de configuración que llevó](#what-carries-over-when-you-background). Esto incluye [valores `env`](/docs/es/settings-reference#env) en la configuración del proyecto, por lo que una variable `ANTHROPIC_MODEL` o proveedor establecida allí se aplica a cada sesión en segundo plano en ese directorio.

643 654 

644Una sesión en segundo plano también se ejecuta con el `PATH` del shell desde el que la distribuyó, por lo que los comandos que ejecuta encuentran las mismas herramientas que su terminal. También mantiene la selección del proveedor en la nube de ese shell, como `CLAUDE_CODE_USE_BEDROCK` o `CLAUDE_CODE_USE_VERTEX`, junto con sus alias `ANTHROPIC_DEFAULT_*_MODEL` y cualquier anulación [`CLAUDE_CODE_EXTRA_BODY`](/docs/es/env-vars) que haya exportado allí.655Una sesión en segundo plano también se ejecuta con el `PATH` del shell desde el que la envió, por lo que los comandos que ejecuta encuentran las mismas herramientas que su terminal. También mantiene la selección del proveedor de nube de ese shell, como `CLAUDE_CODE_USE_BEDROCK` o `CLAUDE_CODE_USE_VERTEX`, junto con sus alias `ANTHROPIC_DEFAULT_*_MODEL` y cualquier anulación [`CLAUDE_CODE_EXTRA_BODY`](/docs/es/env-vars) que exportó allí.

645 656 

646<h4 id="llm-gateway">657<h4 id="llm-gateway">

647 Puerta de enlace LLM658 Puerta de enlace LLM


649 660 

650Si enruta Claude Code a través de una [puerta de enlace LLM](/docs/es/llm-gateway), coloque las variables de puerta de enlace en el bloque `env` de un archivo de configuración en lugar de exportarlas en su shell, y las sesiones en segundo plano las leen con el resto de su configuración. [Establecer en un archivo de configuración](/docs/es/llm-gateway-connect#set-in-a-settings-file) muestra el bloque y qué archivo de configuración usar para la credencial.661Si enruta Claude Code a través de una [puerta de enlace LLM](/docs/es/llm-gateway), coloque las variables de puerta de enlace en el bloque `env` de un archivo de configuración en lugar de exportarlas en su shell, y las sesiones en segundo plano las leen con el resto de su configuración. [Establecer en un archivo de configuración](/docs/es/llm-gateway-connect#set-in-a-settings-file) muestra el bloque y qué archivo de configuración usar para la credencial.

651 662 

652Si exporta una puerta de enlace `ANTHROPIC_BASE_URL` solo en su shell en su lugar, llega a una sesión en segundo plano, junto con `ANTHROPIC_CUSTOM_HEADERS` y la credencial que exportó con ella, solo cuando el [supervisor](#the-supervisor-process) fue iniciado desde un shell que exportó la misma puerta de enlace, y solo en estos casos:663Si exporta una puerta de enlace `ANTHROPIC_BASE_URL` solo en su shell en su lugar, llega a una sesión en segundo plano, junto con el `ANTHROPIC_CUSTOM_HEADERS` y la credencial que exportó con ella, solo cuando el [supervisor](#the-supervisor-process) fue iniciado desde un shell que exportó la misma puerta de enlace, y solo en estos casos:

653 664 

654* Envía su propia sesión al segundo plano con `←` o `/background`665* Envía su propia sesión al fondo con `←` o `/background`

655* Distribuye una sesión al directorio en el que está666* Envía una sesión al directorio en el que está

656* Despierta una sesión detenida en el directorio en el que está adjuntándose o respondiendo a ella667* Despierta una sesión detenida en el directorio en el que está adjuntándose o respondiendo a ella

657 668 

658Claude Code reenvía una puerta de enlace frente a un proveedor en la nube. Si el shell desde el que distribuye selecciona el proveedor e exporta su punto final de puerta de enlace con su bandera de omisión de autenticación, Claude Code reenvía el par punto final-y-bandera a la sesión bajo las condiciones que se aplican a `ANTHROPIC_BASE_URL`, junto con `ANTHROPIC_CUSTOM_HEADERS`. Por ejemplo, exporte `CLAUDE_CODE_USE_VERTEX=1` con `ANTHROPIC_VERTEX_BASE_URL` y `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`, y Claude Code reenvía ese punto final y bandera.669Claude Code reenvía una puerta de enlace frente a un proveedor de nube. Si el shell desde el que envía selecciona el proveedor y exporta su punto final de puerta de enlace con su bandera de omisión de autenticación, Claude Code reenvía el par punto final-y-bandera a la sesión bajo las condiciones que se aplican a `ANTHROPIC_BASE_URL`, junto con `ANTHROPIC_CUSTOM_HEADERS`. Por ejemplo, exporte `CLAUDE_CODE_USE_VERTEX=1` con `ANTHROPIC_VERTEX_BASE_URL` y `CLAUDE_CODE_SKIP_VERTEX_AUTH=1`, y Claude Code reenvía ese punto final y bandera.

659 670 

660Claude Code aplica una puerta de enlace reenviada solo al proceso en ejecución de esa sesión y nunca la escribe en el disco.671Claude Code aplica una puerta de enlace reenviada solo al proceso en ejecución de esa sesión y nunca la escribe en el disco.

661 672 


665 676 

666El [modo de permiso](/docs/es/permissions) depende de cómo inició la sesión:677El [modo de permiso](/docs/es/permissions) depende de cómo inició la sesión:

667 678 

668* **Enviado al segundo plano con `/bg` o `←`**: Claude Code mantiene el modo de permiso en el que estaba la sesión, por lo que uno que cambió a `acceptEdits` o `auto` permanece allí después de desconectarse679* **Enviada al fondo con `/bg` o `←`**: Claude Code mantiene el modo de permiso en el que estaba la sesión, por lo que uno que cambió a `acceptEdits` o `auto` permanece allí después de desasociarse

669* **Distribuido desde una vista de agentes que abrió con `←`**: la configuración propia del objetivo viene primero, y el modo de permiso de la sesión de la que vino se aplica cuando nada más establece uno680* **Enviada desde una vista de agentes que abrió con `←`**: la configuración propia del objetivo viene primero, y el modo de permiso de la sesión de la que vino se aplica cuando nada más establece uno

670* **Distribuido desde `claude agents` iniciado en un shell, o con `claude --bg`**: la nueva sesión comienza de la manera que lo haría una nueva sesión `claude` en ese directorio, a menos que la haya distribuido desde una vista de agentes que abrió con [valores predeterminados de distribución](#dispatch-defaults). [Qué modo de permiso comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera el orden681* **Enviada desde `claude agents` iniciada en un shell, o con `claude --bg`**: la nueva sesión comienza de la manera que lo haría una nueva sesión `claude` en ese directorio, a menos que la haya enviado desde una vista de agentes que abrió con [predeterminados de envío](#dispatch-defaults). [Qué modo de permiso comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera el orden

671 682 

672Para una sesión que distribuye desde una vista de agentes abierta con `←`, Claude Code toma el modo de permiso del primero de estos que se aplica:683Para una sesión que envía desde una vista de agentes abierta con `←`, Claude Code toma el modo de permiso del primero de estos que se aplica:

673 684 

6741. El [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) del directorio objetivo. Se aplican dos reglas de origen:6851. El [`permissions.defaultMode`](/docs/es/settings-reference#permissions-defaultmode) del directorio objetivo. Se aplican dos reglas de fuente:

675 * `auto` y `bypassPermissions` [toman efecto solo desde configuración administrada, un archivo `--settings` o `~/.claude/settings.json`](/docs/es/settings-reference#permissions-defaultmode).686 * `auto` y `bypassPermissions` [toman efecto solo desde la configuración administrada, un archivo `--settings`, o `~/.claude/settings.json`](/docs/es/settings-reference#permissions-defaultmode).

676 * Claude Code rechaza un `defaultMode` del `.claude/settings.json` o `.claude/settings.local.json` del proyecto que selecciona un modo más permisivo que el modo en el que estaba la sesión de la que vino.687 * Claude Code rechaza un `defaultMode` del `.claude/settings.json` o `.claude/settings.local.json` del proyecto que selecciona un modo más permisivo que el modo en el que estaba la sesión de la que vino.

6772. El modo de permiso de la sesión de la que vino6882. El modo de permiso de la sesión de la que vino

678 689 

679Cuando Claude Code rechaza el modo de una fuente como demasiado permisivo, la siguiente fuente en la lista decide. Por ejemplo, si distribuye desde una sesión en modo plan a un directorio cuya configuración verificada pide `acceptEdits`, la nueva sesión comienza en modo plan. Si mueve ese `defaultMode` a `~/.claude/settings.json`, se aplica independientemente del modo de permiso de la sesión de la que vino.690Cuando Claude Code rechaza el modo de una fuente como demasiado permisivo, la siguiente fuente en la lista decide. Por ejemplo, si envía desde una sesión en modo de plan a un directorio cuya configuración registrada pide `acceptEdits`, la nueva sesión comienza en modo de plan. Si mueve ese `defaultMode` a `~/.claude/settings.json`, se aplica independientemente del modo de permiso de la sesión de la que vino.

680 691 

681La permisividad corre plan, luego Manual y `dontAsk`, luego `acceptEdits` y auto, que cada uno cuenta como más permisivo que el otro, luego `bypassPermissions`.692La permisividad corre plan, luego Manual y `dontAsk`, luego `acceptEdits` y auto, que cada uno cuenta como más permisivo que el otro, luego `bypassPermissions`.

682 693 

683<h4 id="dispatch-defaults">694<h4 id="dispatch-defaults">

684 Valores predeterminados de distribución695 Predeterminados de envío

685</h4>696</h4>

686 697 

687Para establecer valores predeterminados para cada sesión que distribuya desde la vista de agentes, pase cualquiera de `--permission-mode`, `--model`, `--effort` o `--agent` al abrirla:698Para establecer predeterminados para cada sesión que envía desde la vista de agentes, pase cualquiera de `--permission-mode`, `--model`, `--effort`, o `--agent` cuando la abre:

688 699 

689```bash theme={null}700```bash theme={null}

690claude agents --permission-mode plan --model opus --effort high701claude agents --permission-mode plan --model opus --effort high


692 703 

693`--effort` aquí acepta los mismos valores que la [bandera `--effort` de nivel superior](/docs/es/cli-reference#cli-flags), incluido `ultracode`.704`--effort` aquí acepta los mismos valores que la [bandera `--effort` de nivel superior](/docs/es/cli-reference#cli-flags), incluido `ultracode`.

694 705 

695`--agent` establece el [subagente](/docs/es/sub-agents) utilizado cuando un mensaje de distribución no nombra uno, ya sea con `@name` o como la primera palabra. Por defecto es la configuración [`agent`](/docs/es/settings-reference#agent) si se establece una, de lo contrario el agente integrado `claude` que lo captura todo. Nombrar un subagente en la entrada de distribución anula ambos.706`--agent` establece el [subagente](/docs/es/sub-agents) usado cuando un prompt de envío no nombra uno, ya sea con `@name` o como la primera palabra. Por defecto es la [configuración `agent`](/docs/es/settings-reference#agent) si se establece una, de lo contrario el agente integrado `claude` que lo atrapa todo. Nombrar un subagente en la entrada de envío anula ambos.

696 707 

697`claude agents` también acepta `--dangerously-skip-permissions` como abreviatura de `--permission-mode bypassPermissions`, y `--allow-dangerously-skip-permissions` para hacer que `bypassPermissions` esté disponible en el ciclo `Shift+Tab` de cada sesión distribuida sin comenzar en ese modo. Ambos coinciden con las [banderas CLI de nivel superior](/docs/es/cli-reference).708`claude agents` también acepta `--dangerously-skip-permissions` como abreviatura de `--permission-mode bypassPermissions`, y `--allow-dangerously-skip-permissions` para hacer que `bypassPermissions` esté disponible en el ciclo `Shift+Tab` de cada sesión enviada sin comenzar en ese modo. Ambos coinciden con las [banderas CLI de nivel superior](/docs/es/cli-reference).

698 709 

699Pase `--restricted` para iniciar cada sesión que distribuya desde la vista en [modo restringido](/docs/es/cli-reference#cli-flags), como si cada una se lanzara con la bandera de nivel superior `--restricted`. Requiere Claude Code v2.1.248 o posterior.710Pase `--restricted` para iniciar cada sesión que envía desde la vista en [modo restringido](/docs/es/cli-reference#cli-flags), como si cada una se iniciara con la bandera de nivel superior `--restricted`. Requiere Claude Code v2.1.248 o posterior.

700 711 

701Los valores predeterminados activos aparecen en el pie de página debajo de la entrada de distribución.712Los predeterminados activos aparecen en el pie de página debajo de la entrada de envío.

702 713 

703Claude Code rechaza `claude --bg --permission-mode bypassPermissions` hasta que haya aceptado el descargo de responsabilidad de bypass ejecutando `claude --dangerously-skip-permissions` una vez de forma interactiva, ya que ese modo permite que una sesión que no está viendo actúe sin aprobación. Pasar `--dangerously-skip-permissions` o `--permission-mode bypassPermissions` a `claude agents` muestra el mismo descargo de responsabilidad cuando no lo ha aceptado antes, y aceptar aplica `bypassPermissions` a las sesiones que lanza desde la vista. Pasar `--allow-dangerously-skip-permissions` muestra el mismo descargo de responsabilidad también, y aceptar hace que `bypassPermissions` esté disponible en el ciclo `Shift+Tab` de esas sesiones sin iniciarlas en él.714Claude Code rechaza `claude --bg --permission-mode bypassPermissions` hasta que haya aceptado la exención de omisión ejecutando `claude --dangerously-skip-permissions` una vez de forma interactiva, ya que ese modo permite que una sesión que no está viendo actúe sin aprobación. Pasar `--dangerously-skip-permissions` o `--permission-mode bypassPermissions` a `claude agents` muestra la misma exención cuando no la ha aceptado antes, y aceptar aplica `bypassPermissions` a las sesiones que inicia desde la vista. Pasar `--allow-dangerously-skip-permissions` muestra la misma exención también, y aceptar hace que `bypassPermissions` esté disponible en el ciclo `Shift+Tab` de esas sesiones sin iniciarlas en él.

704 715 

705<h4 id="what-persists-across-restarts">716<h4 id="what-persists-across-restarts">

706 Qué persiste en los reinicios717 Qué persiste en los reinicios

707</h4>718</h4>

708 719 

709El modo de permiso, modelo y esfuerzo que eligió para una sesión en segundo plano, junto con las [banderas de configuración que lleva](#what-carries-over-when-you-background), todos persisten cuando el supervisor posteriormente [detiene y reinicia](#the-supervisor-process) su proceso. Una sesión que lanzó con `claude --bg --dangerously-skip-permissions` o `claude --bg --permission-mode bypassPermissions` permanece en `bypassPermissions` después de ese reinicio. Un modelo o esfuerzo que cambió a mitad de sesión con `/model` o `/effort` también se mantiene.720El modo de permiso, modelo y esfuerzo que eligió para una sesión en segundo plano, junto con las [banderas de configuración que llevó](#what-carries-over-when-you-background), todos persisten cuando el supervisor más tarde [detiene y reinicia](#the-supervisor-process) su proceso. Una sesión que inició con `claude --bg --dangerously-skip-permissions` o `claude --bg --permission-mode bypassPermissions` permanece en `bypassPermissions` después de ese reinicio. Un modelo o esfuerzo que cambió a mitad de sesión con `/model` o `/effort` también se mantiene.

710 721 

711Si la sesión tomó su esfuerzo de su configuración en lugar de `--effort` o `/effort`, Claude Code lee su configuración nuevamente cada vez que inicia un proceso para la sesión. Entonces, cuando edita el esfuerzo guardado en `settings.json`, el cambio llega a las sesiones que envía al segundo plano con `←` o `/bg`, y sus reinicios posteriores. El esfuerzo guardado es la clave [`effortLevel`](/docs/es/settings-reference#effortlevel) o una entrada [`modelSettings`](/docs/es/settings-reference#modelsettings).722Si la sesión tomó su esfuerzo de su configuración en lugar de `--effort` o `/effort`, Claude Code lee su configuración nuevamente cada vez que inicia un proceso para la sesión. Después de editar el esfuerzo guardado en `settings.json`, el cambio llega a las sesiones que envía al fondo con `←` o `/bg`, y sus reinicios posteriores. El esfuerzo guardado es la clave [`effortLevel`](/docs/es/settings-reference#effortlevel) o una entrada [`modelSettings`](/docs/es/settings-reference#modelsettings).

712 723 

713Claude Code también mantiene un nombre que estableció con [`/rename`](/docs/es/commands) o `Ctrl+R` en ese reinicio, por lo que aún puede ejecutar [`claude --resume <name>`](/docs/es/sessions#name-your-sessions) para llegar a la sesión.724Claude Code también mantiene un nombre que estableció con [`/rename`](/docs/es/commands) o `Ctrl+R` en ese reinicio, para que aún pueda ejecutar [`claude --resume <name>`](/docs/es/sessions#name-your-sessions) para llegar a la sesión.

714 725 

715Un mensaje que escribió se guarda con [`Ctrl+S`](/docs/es/interactive-mode#general-controls) mientras está adjunto se mantiene con la sesión también. Reabra la sesión después de que su proceso fue detenido o reiniciado, y `Ctrl+S` restaura el texto guardado. El contenido pegado en el guardado no sobrevive al reinicio.726Un prompt que guardó con [`Ctrl+S`](/docs/es/interactive-mode#general-controls) mientras estaba adjunto se mantiene con la sesión también. Reabra la sesión después de que su proceso fue detenido o reiniciado, y `Ctrl+S` restaura el texto guardado. El contenido pegado en el almacenamiento no sobrevive al reinicio.

716 727 

717<h3 id="settings-plugins-and-mcp-servers">728<h3 id="settings-plugins-and-mcp-servers">

718 Configuración, plugins y servidores MCP729 Configuración, plugins y servidores MCP

719</h3>730</h3>

720 731 

721La vista de agentes acepta las mismas banderas de configuración que `claude` para cargar configuración, plugins, servidores MCP y directorios adicionales. La vista de agentes aplica `--settings` y `--plugin-dir` a sí misma y pasa cada bandera de configuración a las sesiones que distribuye desde ella, por lo que un plugin o servidor MCP que cargue de esta manera está disponible en esas sesiones.732La vista de agentes acepta las mismas banderas de configuración que `claude` para cargar configuración, plugins, servidores MCP y directorios adicionales. La vista de agentes aplica `--settings`, `--setting-sources` y `--plugin-dir` a sí misma y pasa cada bandera de configuración a las sesiones que envía desde ella, por lo que un plugin o servidor MCP que carga de esta manera está disponible en esas sesiones.

722 733 

723| Bandera | Efecto |734| Bandera | Efecto |

724| :- | :- |735| :- | :- |

725| [`--settings <file-or-json>`](/docs/es/settings) | Anule la configuración para la vista de agentes y las sesiones distribuidas |736| [`--settings <file-or-json>`](/docs/es/settings) | Anular configuración para vista de agentes y sesiones enviadas |

726| [`--add-dir <path>`](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) | Otorgue acceso a archivos a un directorio adicional |737| [`--setting-sources <sources>`](/docs/es/cli-reference#cli-flags) | Cargar solo las fuentes de configuración nombradas, en vista de agentes y sesiones enviadas |

727| [`--plugin-dir <path>`](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) | Cargue un plugin desde un directorio local |738| [`--add-dir <path>`](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) | Otorgar acceso a archivos a un directorio adicional |

728| [`--mcp-config <file-or-json>`](/docs/es/mcp) | Cargue servidores MCP desde un archivo de configuración o cadena JSON |739| [`--plugin-dir <path>`](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) | Cargar un plugin desde un directorio local |

729| `--strict-mcp-config` | Use solo los servidores MCP de `--mcp-config`, ignorando otra configuración de MCP. Consulte [Control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para ver qué hace la bandera bajo un archivo MCP administrado |740| [`--mcp-config <file-or-json>`](/docs/es/mcp) | Cargar servidores MCP desde un archivo de configuración o cadena JSON |

741| `--strict-mcp-config` | Usar solo los servidores MCP de `--mcp-config`, ignorando otra configuración de MCP. Consulte [Control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para ver qué hace la bandera bajo un archivo MCP administrado |

730 742 

731Repita `--add-dir`, `--plugin-dir` o `--mcp-config` una vez por valor. `claude agents` no admite la forma separada por espacios, como `--add-dir a b c`.743Repita `--add-dir`, `--plugin-dir`, o `--mcp-config` una vez por valor. `claude agents` no admite la forma separada por espacios, como `--add-dir a b c`.

732 744 

733Puede colocar `--settings` y `--plugin-dir` antes o después de `agents`. Mantenga `--add-dir` y `--mcp-config` después de `agents`: si coloca cualquiera de ellos antes de `agents`, [`claude agents --json`](#manage-sessions-from-the-shell) falla con un error `unknown option`.745Puede colocar `--settings`, `--setting-sources` y `--plugin-dir` antes o después de `agents`. Mantenga `--add-dir` y `--mcp-config` después de `agents`: si coloca cualquiera de ellos antes de `agents`, [`claude agents --json`](#manage-sessions-from-the-shell) falla con un error `unknown option`.

734 746 

735El siguiente ejemplo abre la vista de agentes con una anulación de configuración y un directorio adicional:747El siguiente ejemplo abre la vista de agentes con una anulación de configuración y un directorio adicional:

736 748 


1048 1060 

1049| Versión | Cambio |1061| Versión | Cambio |

1050| - | - |1062| - | - |

1063| v2.1.281 | Una restricción [`--setting-sources`](/docs/es/cli-reference#cli-flags) [se traslada](#what-carries-over-when-you-background) a una sesión que envía al segundo plano con `←` o `/bg` y a las sesiones que distribuye desde la vista de agentes. Antes de esta versión, la sesión generada cargaba cada fuente de configuración. |

1064| v2.1.281 | `claude --bg`, y los comandos que reinician una sesión, verifican la confianza del espacio de trabajo para el directorio de la sesión primero. Desde una terminal en ese directorio, [el diálogo de confianza aparece](#from-your-shell) si no lo ha aceptado; donde no puede aparecer ningún diálogo, como en un script, el comando sale con un error [`Workspace not trusted`](/docs/es/errors#workspace-not-trusted-when-dispatching-a-background-session). |

1065| v2.1.274 | Después de una auto-actualización, una vista de agentes de la que ha estado ausente durante aproximadamente una hora puede relanzarse a sí misma en la nueva compilación. Cuando lo hace, mantiene los [valores predeterminados de distribución](#dispatch-defaults) con los que la abrió: `--model`, `--effort`, `--permission-mode`, `--allow-dangerously-skip-permissions` y `--agent`. Antes de esta versión, la vista relanzada mantenía solo `--cwd` y banderas de configuración como `--settings` y `--mcp-config`, por lo que las sesiones que distribuía después comenzaban sin esos valores predeterminados. |

1066| v2.1.274 | Cuando una [eliminación se rechaza](#what-deleting-a-session-removes) porque git o su hook `WorktreeRemove` no pudieron eliminar el worktree, un submódulo verificado que Claude Code verifica que no tiene cambios sin confirmar en archivos rastreados no bloquea la oferta de eliminar nuevamente y eliminar el directorio de todas formas. El trabajo sin confirmar dentro de un submódulo verificado cuenta como cambios sin confirmar, y el mensaje nombra el submódulo. Antes de esta versión, cualquier verificación de submódulo en el worktree bloqueaba la oferta, con un mensaje diciendo que el worktree contiene un repositorio anidado. |

1051| v2.1.268 | Cuando una [eliminación se rechaza](#what-deleting-a-session-removes) porque git o su hook `WorktreeRemove` no pudieron eliminar el worktree, el mensaje nombra la causa, incluyendo cómo terminó un hook y el inicio de su stderr. Para un worktree vinculado bajo el directorio `.claude/worktrees/` del repositorio sin cambios sin confirmar en archivos rastreados, sin repositorio anidado dentro de él, y sin que el registro de otra sesión lo nombre, eliminar la sesión nuevamente elimina el directorio de todas formas, desde la vista de agentes o con `claude rm <id> --force-remove-worktree <worktree-id>`. Antes de esta versión, la fila mostraba solo `worktree could not be removed (WorktreeRemove hook failed)` o el error de git, el stderr del hook iba solo al registro de depuración, y eliminar nuevamente se rechazaba de la misma manera. |1067| v2.1.268 | Cuando una [eliminación se rechaza](#what-deleting-a-session-removes) porque git o su hook `WorktreeRemove` no pudieron eliminar el worktree, el mensaje nombra la causa, incluyendo cómo terminó un hook y el inicio de su stderr. Para un worktree vinculado bajo el directorio `.claude/worktrees/` del repositorio sin cambios sin confirmar en archivos rastreados, sin repositorio anidado dentro de él, y sin que el registro de otra sesión lo nombre, eliminar la sesión nuevamente elimina el directorio de todas formas, desde la vista de agentes o con `claude rm <id> --force-remove-worktree <worktree-id>`. Antes de esta versión, la fila mostraba solo `worktree could not be removed (WorktreeRemove hook failed)` o el error de git, el stderr del hook iba solo al registro de depuración, y eliminar nuevamente se rechazaba de la misma manera. |

1052| v2.1.268 | Después de que la primera `←` muestra `Press ← again to open agents`, o `Press ← again to go back to agents` en una sesión adjunta, [el primer presionar que llega al menos un segundo después cambia](#switch-sessions-without-leaving-the-terminal), incluso cuando los presionamientos más rápidos entre medias fueron ignorados. Antes de esta versión, cada presionar ignorado reiniciaba la espera, por lo que presionar `←` nuevamente a un ritmo constante no cambiaba hasta que pausaba durante más de un segundo. |1068| v2.1.268 | Después de que la primera `←` muestra `Press ← again to open agents`, o `Press ← again to go back to agents` en una sesión adjunta, [el primer presionar que llega al menos un segundo después cambia](#switch-sessions-without-leaving-the-terminal), incluso cuando los presionamientos más rápidos entre medias fueron ignorados. Antes de esta versión, cada presionar ignorado reiniciaba la espera, por lo que presionar `←` nuevamente a un ritmo constante no cambiaba hasta que pausaba durante más de un segundo. |

1053| v2.1.260 | Cuando [envía una sesión al segundo plano](#from-inside-a-session), el [listado de agentes](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach) de sus otras sesiones muestra la conversación una vez, como su sesión de fondo, y sus mensajes a ella ya no llegan a la terminal desde la que la movió. Antes de esta versión, esa terminal podría permanecer listada como una segunda sesión interactiva bajo el nombre de la conversación, y una sesión que había enviado un mensaje a la conversación antes del movimiento continuaba entregando a esa terminal. |1069| v2.1.260 | Cuando [envía una sesión al segundo plano](#from-inside-a-session), el [listado de agentes](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach) de sus otras sesiones muestra la conversación una vez, como su sesión de fondo, y sus mensajes a ella ya no llegan a la terminal desde la que la movió. Antes de esta versión, esa terminal podría permanecer listada como una segunda sesión interactiva bajo el nombre de la conversación, y una sesión que había enviado un mensaje a la conversación antes del movimiento continuaba entregando a esa terminal. |

agents.md +1 −1

Details

13| [Subagentes](/docs/es/sub-agents) | Trabajadores delegados dentro de una sesión que realizan una tarea secundaria en su propio contexto y devuelven un resumen | Una tarea secundaria inundaría su conversación principal con resultados de búsqueda, registros o contenidos de archivos que no volverá a consultar |13| [Subagentes](/docs/es/sub-agents) | Trabajadores delegados dentro de una sesión que realizan una tarea secundaria en su propio contexto y devuelven un resumen | Una tarea secundaria inundaría su conversación principal con resultados de búsqueda, registros o contenidos de archivos que no volverá a consultar |

14| [Vista de agentes](/docs/es/agent-view) | Una pantalla para enviar y monitorear sesiones que se ejecutan en segundo plano, abierta con `claude agents`. Vista previa de investigación | Tiene varias tareas independientes y desea delegarlas, verificar el estado de un vistazo e intervenir solo cuando una lo necesite |14| [Vista de agentes](/docs/es/agent-view) | Una pantalla para enviar y monitorear sesiones que se ejecutan en segundo plano, abierta con `claude agents`. Vista previa de investigación | Tiene varias tareas independientes y desea delegarlas, verificar el estado de un vistazo e intervenir solo cuando una lo necesite |

15| [Equipos de agentes](/docs/es/agent-teams) | Múltiples sesiones coordinadas con una lista de tareas compartida y mensajería entre agentes, administradas por un líder. Experimental y deshabilitado por defecto | Desea que Claude divida un proyecto en partes, las asigne y mantenga a los trabajadores sincronizados |15| [Equipos de agentes](/docs/es/agent-teams) | Múltiples sesiones coordinadas con una lista de tareas compartida y mensajería entre agentes, administradas por un líder. Experimental y deshabilitado por defecto | Desea que Claude divida un proyecto en partes, las asigne y mantenga a los trabajadores sincronizados |

16| [Proyectos](/docs/es/claude-projects) | Una conversación continua en claude.ai/code o en la aplicación de escritorio. Claude inicia sesiones en la nube paralelas llamadas threads, le da a cada una los repositorios, instrucciones y memoria del proyecto, y le muestra cuáles lo necesitan. Beta pública en Pro y Max | El trabajo abarca muchas tareas durante días o semanas, debe seguir ejecutándose cuando su máquina está apagada, y prefiere describirlo una vez en lugar de enviar y rastrear cada sesión |16| [Proyectos](/docs/es/claude-projects) | Una conversación continua en claude.ai/code o en la aplicación de escritorio. Claude inicia sesiones paralelas llamadas threads en la nube o, cuando lo solicita, en su computadora a través de Control Remoto, le da a cada una las instrucciones del proyecto y le muestra cuáles lo necesitan. Beta pública en Pro y Max | El trabajo abarca muchas tareas durante días o semanas, debe seguir ejecutándose cuando su máquina está apagada, y prefiere describirlo una vez en lugar de enviar y rastrear cada sesión |

17| [Flujos de trabajo dinámicos](/docs/es/workflows) | Un script que ejecuta muchos subagentes y verifica sus resultados, para un trabajo demasiado grande para coordinar en un solo turno o que necesita más de un solo paso | Una tarea crece más allá de un puñado de subagentes, o desea que los hallazgos se verifiquen entre sí: una auditoría en toda la base de código, una migración de 500 archivos, investigación verificada de forma cruzada, o un plan elaborado desde varios ángulos |17| [Flujos de trabajo dinámicos](/docs/es/workflows) | Un script que ejecuta muchos subagentes y verifica sus resultados, para un trabajo demasiado grande para coordinar en un solo turno o que necesita más de un solo paso | Una tarea crece más allá de un puñado de subagentes, o desea que los hallazgos se verifiquen entre sí: una auditoría en toda la base de código, una migración de 500 archivos, investigación verificada de forma cruzada, o un plan elaborado desde varios ángulos |

18 18 

19En cada enfoque, los trabajadores son sesiones de Claude. Para involucrar una herramienta diferente, expóngala a Claude como un [servidor MCP](/docs/es/mcp).19En cada enfoque, los trabajadores son sesiones de Claude. Para involucrar una herramienta diferente, expóngala a Claude como un [servidor MCP](/docs/es/mcp).

artifacts.md +36 −4

Details

305 305 

306Para la tipografía, Claude puede cargar una fuente tipográfica desde Google Fonts, la única fuente de fuente externa que una página de artefacto puede cargar. Claude inserta cualquier otra fuente tipográfica como un data URI `@font-face` y proporciona a cada fuente tipográfica una pila de alternativas, por lo que la página se sigue renderizando si una fuente no se carga. Para usar una fuente tipográfica específica, nómbrela en su prompt o en su sistema de diseño.306Para la tipografía, Claude puede cargar una fuente tipográfica desde Google Fonts, la única fuente de fuente externa que una página de artefacto puede cargar. Claude inserta cualquier otra fuente tipográfica como un data URI `@font-face` y proporciona a cada fuente tipográfica una pila de alternativas, por lo que la página se sigue renderizando si una fuente no se carga. Para usar una fuente tipográfica específica, nómbrela en su prompt o en su sistema de diseño.

307 307 

308<h2 id="draft-a-design-canvas">308<h2 id="start-from-a-slides-design-or-docs-template">

309 Elaborar un lienzo de diseño309 Comenzar desde una plantilla de Slides, Design o Docs

310</h2>310</h2>

311 311 

312Para crear un prototipo de una interfaz de usuario, un flujo de pantalla, una página de destino o un póster en lugar de construir una página, ejecute `/design` con un resumen. Claude elabora el diseño como artículos en un lienzo y publica el lienzo como un artefacto de diseño. El resumen nombra lo que desea que se dibuje:312En lugar de construir una página desde cero, Claude puede iniciar un artefacto desde una de las plantillas en su cuenta de claude.ai: [Claude Slides](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them#h_11d5a9a5fa) para una presentación, [Claude Design](https://support.claude.com/en/articles/14604416-get-started-with-claude-design) para un diseño visual, o [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) para un documento que otras personas leerán y editarán. Cada uno se abre en su propio editor en claude.ai, donde usted y sus compañeros de equipo lo cambian directamente o le piden a Claude que lo haga, y lo exportan a formatos como PowerPoint, PDF o Word.

313 

314Para comenzar desde una plantilla, describa lo que desea, como "convertir las notas de migración en una presentación para la revisión del jueves" o "redactar este plan como un documento para el equipo". Claude elige la plantilla coincidente, la completa a partir de su solicitud y de lo que la sesión ya tiene, y le proporciona el enlace. Para una presentación o un diseño, también puede ejecutar `/slides` o `/design` con un resumen.

315 

316<Note>

317 Las plantillas están en versión beta. Están activadas de forma predeterminada en los planes Pro, Max y Team. En los planes Enterprise, un propietario [activa cada plantilla](https://support.claude.com/en/articles/16994751-artifacts-admin-guide-for-team-and-enterprise-plans) en **Configuración de la organización > Artefactos**. Si su organización tiene la plantilla de Slides desactivada, `/slides` no aparece; si tiene la plantilla de Design desactivada, `/design` no elabora diseños. Ambos comandos requieren Claude Code v2.1.265 o posterior y una sesión donde [los artefactos estén disponibles](#availability).

318</Note>

319 

320<h3 id="make-a-slide-deck">

321 Crear una presentación de diapositivas

322</h3>

323 

324Ejecute `/slides` con un resumen que indique qué cubre la presentación y para quién es:

325 

326```text wrap theme={null}

327/slides a quarterly review of the platform team's reliability work, for the engineering all-hands

328```

329 

330Claude crea un artefacto de Claude Slides y le proporciona el enlace. Ábralo en un navegador de escritorio para editar o presentar la presentación. Si ejecuta `/slides` sin un resumen, Claude le pregunta de qué debe tratar la presentación antes de crear nada.

331 

332<h3 id="draft-a-design-canvas">

333 Elaborar un lienzo de diseño

334</h3>

335 

336Para crear un prototipo de una interfaz de usuario, un flujo de pantalla, una página de destino o un póster en lugar de construir una página, ejecute `/design` con un resumen. Claude elabora el diseño como artículos en un lienzo y publica el lienzo como un artefacto de Claude Design. El resumen nombra lo que desea que se dibuje:

313 337 

314```text wrap theme={null}338```text wrap theme={null}

315/design a settings screen for a mobile banking app339/design a settings screen for a mobile banking app


317 341 

318Abra el artefacto publicado en un navegador de escritorio para revisar los artículos. Seleccione un elemento en un artículo y cámbielo, y sus ediciones se guardan automáticamente. Puede exportar cada artículo como PNG o PDF.342Abra el artefacto publicado en un navegador de escritorio para revisar los artículos. Seleccione un elemento en un artículo y cámbielo, y sus ediciones se guardan automáticamente. Puede exportar cada artículo como PNG o PDF.

319 343 

320`/design` requiere una sesión donde [los artefactos estén disponibles](#availability) y Claude Code v2.1.265 o posterior.344<h3 id="write-a-document-with-claude-docs">

345 Escribir un documento con Claude Docs

346</h3>

347 

348Claude Docs llega a Claude Code como un [conector](/docs/es/mcp#use-mcp-servers-from-claude-ai) de claude.ai en lugar de un comando. Cuando está conectado, `/mcp` lo enumera como `claude.ai Claude Docs`. Una solicitud de un documento destinado a otras personas va a Claude Docs en lugar de una página de artefactos: una especificación, una propuesta o un resumen del plan que trabajó en la sesión. Claude le proporciona el enlace del documento cuando está redactado.

349 

350Un documento que pertenece al repositorio de código, como un README, permanece como un archivo. Para obtener un archivo para algo que Claude de otro modo pondría en Claude Docs, nombre el formato, como `.docx` o un archivo Markdown en el repositorio.

351 

352Para desactivar el conector, agregue `claude.ai Claude Docs` a `deniedMcpServers` o use el botón de alternancia `/mcp`, ambos descritos en [Desactivar conectores de claude.ai](/docs/es/mcp#disable-claude-ai-connectors).

321 353 

322<h2 id="page-constraints">354<h2 id="page-constraints">

323 Restricciones de página355 Restricciones de página

Details

32 32 

33Para cerrar sesión y volver a autenticarse, escriba `/logout` en el símbolo del sistema de Claude Code. Cerrar sesión también restablece su estado de configuración de primer lanzamiento, por lo que la próxima vez que ejecute `claude` le guiará a través del inicio de sesión y la configuración nuevamente.33Para cerrar sesión y volver a autenticarse, escriba `/logout` en el símbolo del sistema de Claude Code. Cerrar sesión también restablece su estado de configuración de primer lanzamiento, por lo que la próxima vez que ejecute `claude` le guiará a través del inicio de sesión y la configuración nuevamente.

34 34 

35Para mantenerse conectado a varias cuentas a la vez, como cuentas de trabajo y personales, asigne a cada cuenta su propio directorio de configuración. Cuando inicie `claude`, establezca la variable de entorno [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars#variables) en el directorio de la cuenta que desea usar. Cada directorio tiene su propia configuración, historial de sesiones y inicio de sesión de claude.ai o clave de API. Por ejemplo, en Bash o Zsh, agregue este alias a `~/.bashrc` o `~/.zshrc` para que `claude-work` use su cuenta de trabajo mientras que `claude` mantiene la suya personal:

36 

37```bash theme={null}

38alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

39```

40 

41Después de abrir una nueva terminal y ejecutar `claude-work` por primera vez, Claude Code le guiará a través del inicio de sesión y la configuración para el nuevo directorio. Los directorios separados no mantienen dos inicios de sesión de Claude Console [sin una clave de API](#sign-in-without-an-api-key) separados, porque Claude Code almacena ese tipo de inicio de sesión fuera del directorio de configuración.

42 

35Si tiene problemas para iniciar sesión, consulte [solución de problemas de autenticación](/docs/es/troubleshoot-install#login-and-authentication).43Si tiene problemas para iniciar sesión, consulte [solución de problemas de autenticación](/docs/es/troubleshoot-install#login-and-authentication).

36 44 

37<h2 id="set-up-team-authentication">45<h2 id="set-up-team-authentication">


160 168 

161Para requerir que los inicios de sesión de claude.ai de los desarrolladores pertenezcan a una organización específica de Anthropic, establezca [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) y [`forceLoginOrgUUID`](/docs/es/settings-reference#forceloginorguuid) en [configuración administrada](/docs/es/managed-settings). Establezca `forceLoginOrgUUID` en su ID de organización, que se muestra en [configuración de administrador de claude.ai](https://claude.ai/admin-settings/organization) para organizaciones de Claude for Teams o Enterprise. Claude Code reporta un error para un inicio de sesión de claude.ai en cualquier otra organización y sale al inicio si la credencial de claude.ai en uso pertenece a una organización que no está en la lista.169Para requerir que los inicios de sesión de claude.ai de los desarrolladores pertenezcan a una organización específica de Anthropic, establezca [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) y [`forceLoginOrgUUID`](/docs/es/settings-reference#forceloginorguuid) en [configuración administrada](/docs/es/managed-settings). Establezca `forceLoginOrgUUID` en su ID de organización, que se muestra en [configuración de administrador de claude.ai](https://claude.ai/admin-settings/organization) para organizaciones de Claude for Teams o Enterprise. Claude Code reporta un error para un inicio de sesión de claude.ai en cualquier otra organización y sale al inicio si la credencial de claude.ai en uso pertenece a una organización que no está en la lista.

162 170 

163Para inicios de sesión de Claude Console, Claude Code usa `forceLoginOrgUUID` para preseleccionar la organización en la página de inicio de sesión de Console cuando lo establece en un único ID de organización de Console, que se muestra en [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization). No verifica a qué organización pertenece la credencial de Console resultante, en el inicio de sesión o al inicio, y un desarrollador que inició sesión con una cuenta de Console antes de que implementara las claves permanece conectado.171Para inicios de sesión de Claude Console, Claude Code usa `forceLoginOrgUUID` para preseleccionar la organización en la página de inicio de sesión de Console cuando lo establece en un único ID de organización de Console, que se muestra en [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization). No verifica a qué organización pertenece la credencial de Console resultante, en el inicio de sesión o al inicio. Un desarrollador que inició sesión con una cuenta de Console antes de que implementara las claves permanece conectado, y esa clave guardada se bloquea en una máquina que también requiere el [inicio de sesión de puerta de enlace](/docs/es/claude-apps-gateway) o en una sesión que selecciona un proveedor de nube.

164 172 

165Si establece `forceLoginOrgUUID` en cualquier archivo de configuración, Claude Code deja de ofrecer el [inicio de sesión de Console sin claves](#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo y crea una clave API en su lugar. Para dirigir a los desarrolladores al inicio de sesión de claude.ai en su lugar, establezca `forceLoginMethod` en `"claudeai"`.173Si establece `forceLoginOrgUUID` en cualquier archivo de configuración, Claude Code deja de ofrecer el [inicio de sesión de Console sin claves](#sign-in-without-an-api-key) en las sesiones a las que se aplica ese archivo y crea una clave API en su lugar. Para dirigir a los desarrolladores al inicio de sesión de claude.ai en su lugar, establezca `forceLoginMethod` en `"claudeai"`.

166 174 


172 180 

173Implemente las claves a través de su herramienta de administración de dispositivos. [La configuración administrada por servidor](/docs/es/server-managed-settings) solo llega a cuentas que ya están autenticadas en su organización, por lo que no pueden redirigir el primer inicio de sesión de un desarrollador. Si su organización también distribuye configuración administrada por servidor, establezca las claves en ambos lugares: las fuentes de [configuración administrada no se fusionan](/docs/es/server-managed-settings#settings-precedence), y la configuración administrada por servidor en caché reemplaza el archivo administrado por dispositivo, aparte de algunos [excepciones por clave](/docs/es/server-managed-settings#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` y los valores `"claudeai"` y `"console"` de `forceLoginMethod` no están entre esas excepciones, así que manténgalos en ambos lugares.181Implemente las claves a través de su herramienta de administración de dispositivos. [La configuración administrada por servidor](/docs/es/server-managed-settings) solo llega a cuentas que ya están autenticadas en su organización, por lo que no pueden redirigir el primer inicio de sesión de un desarrollador. Si su organización también distribuye configuración administrada por servidor, establezca las claves en ambos lugares: las fuentes de [configuración administrada no se fusionan](/docs/es/server-managed-settings#settings-precedence), y la configuración administrada por servidor en caché reemplaza el archivo administrado por dispositivo, aparte de algunos [excepciones por clave](/docs/es/server-managed-settings#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` y los valores `"claudeai"` y `"console"` de `forceLoginMethod` no están entre esas excepciones, así que manténgalos en ambos lugares.

174 182 

183En un despliegue de [puerta de enlace](/docs/es/claude-apps-gateway), también mantenga `forceLoginMethod` y `forceLoginOrgUUID` fuera de la [configuración que sirve la puerta de enlace](/docs/es/claude-apps-gateway-config#managed).

184 

175Las claves también deciden si una sesión que no usa una credencial de inicio de sesión puede iniciarse. Consulte [`forceLoginOrgUUID`](/docs/es/settings-reference#forceloginorguuid) en la referencia de configuración para el comportamiento completo.185Las claves también deciden si una sesión que no usa una credencial de inicio de sesión puede iniciarse. Consulte [`forceLoginOrgUUID`](/docs/es/settings-reference#forceloginorguuid) en la referencia de configuración para el comportamiento completo.

176 186 

177* **`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`**: bloqueados al inicio, ya que la pertenencia a la organización no se puede verificar para una credencial de entorno187* **`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`**: bloqueados al inicio. Bajo `forceLoginOrgUUID`, la pertenencia a la organización no se puede verificar para una credencial de entorno, y bajo `forceLoginMethod` la credencial se interpone en el lugar del inicio de sesión requerido. Cuando la configuración administrada también requiere el [inicio de sesión de puerta de enlace](/docs/es/claude-apps-gateway), Claude Code bloquea una clave API guardada por un inicio de sesión anterior de Claude Console de la misma manera. Consulte [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in)

178* **Sesiones de proveedor de nube como Amazon Bedrock**: no bloqueadas, porque se autentican contra su proveedor de nube. Restrinja esas a través de sus políticas de IAM en la nube188* **Sesiones de proveedor de nube como Amazon Bedrock**: bloqueadas solo mientras una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console, aún esté presente en la máquina. Elimínela y la sesión se inicia. Estas sesiones se autentican contra su proveedor de nube, cuyas políticas de acceso las rigen

179* **[Perfil de Anthropic o credenciales de federación](#anthropic-profiles-and-federation-credentials)**: no bloqueadas, y las claves no verifican a qué organización pertenece el perfil189* **[Perfil de Anthropic o credenciales de federación](#anthropic-profiles-and-federation-credentials)**: no bloqueadas a menos que una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, o una clave API guardada por un inicio de sesión anterior de Claude Console, también esté presente en la máquina. Las claves no verifican a qué organización pertenece el perfil

180 190 

181<h2 id="credential-management">191<h2 id="credential-management">

182 Gestión de credenciales192 Gestión de credenciales


279 289 

280El comando abre el mismo flujo de autorización del navegador que `/login`, y el token se imprime en la terminal después de que apruebe el acceso en el navegador. No guarda el token en ningún lugar; cópielo y establézcalo como la variable de entorno `CLAUDE_CODE_OAUTH_TOKEN` donde desee autenticarse:290El comando abre el mismo flujo de autorización del navegador que `/login`, y el token se imprime en la terminal después de que apruebe el acceso en el navegador. No guarda el token en ningún lugar; cópielo y establézcalo como la variable de entorno `CLAUDE_CODE_OAUTH_TOKEN` donde desee autenticarse:

281 291 

282```bash theme={null}292<Tabs>

283export CLAUDE_CODE_OAUTH_TOKEN=your-token293 <Tab title="macOS, Linux, WSL">

284```294 ```bash theme={null}

295 export CLAUDE_CODE_OAUTH_TOKEN=your-token

296 ```

297 </Tab>

298 

299 <Tab title="Windows PowerShell">

300 ```powershell theme={null}

301 $env:CLAUDE_CODE_OAUTH_TOKEN = "your-token"

302 ```

303 </Tab>

304 

305 <Tab title="Windows CMD">

306 ```batch theme={null}

307 set CLAUDE_CODE_OAUTH_TOKEN=your-token

308 ```

309 </Tab>

310</Tabs>

285 311 

286Este token se autentica con su suscripción de Claude y requiere un plan Pro, Max, Team o Enterprise. Solo puede hacer solicitudes de modelo, por lo que no puede establecer sesiones de [Remote Control](/docs/es/remote-control) u obtener [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Los servidores MCP que configura localmente siguen funcionando.312Este token se autentica con su suscripción de Claude y requiere un plan Pro, Max, Team o Enterprise. Solo puede hacer solicitudes de modelo, por lo que no puede establecer sesiones de [Remote Control](/docs/es/remote-control) u obtener [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Los servidores MCP que configura localmente siguen funcionando.

287 313 

Details

9[El modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) permite que Claude Code se ejecute sin solicitudes de permiso rutinarias al enrutar las llamadas de herramientas a través de un clasificador que bloquea cualquier cosa irreversible, destructiva o dirigida fuera de su entorno. Las reglas de denegación y solicitud explícita se evalúan antes del clasificador y aún bloquean o solicitan. Utilice el bloque de configuración `autoMode` para indicar a ese clasificador qué repositorios, buckets y dominios confía su organización, de modo que deje de bloquear operaciones internas rutinarias.9[El modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) permite que Claude Code se ejecute sin solicitudes de permiso rutinarias al enrutar las llamadas de herramientas a través de un clasificador que bloquea cualquier cosa irreversible, destructiva o dirigida fuera de su entorno. Las reglas de denegación y solicitud explícita se evalúan antes del clasificador y aún bloquean o solicitan. Utilice el bloque de configuración `autoMode` para indicar a ese clasificador qué repositorios, buckets y dominios confía su organización, de modo que deje de bloquear operaciones internas rutinarias.

10 10 

11<Note>11<Note>

12 El modo automático está disponible para todos los usuarios en cada proveedor, incluida la API de Anthropic, [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, la plataforma de agentes de Google Cloud, Microsoft Foundry y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada. Si Claude Code informa que el modo automático no está disponible para su cuenta, consulte los [requisitos completos](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), que también cubren los modelos admitidos y el control a nivel de organización en planes de equipo y empresa. En v2.1.158 a v2.1.206, el modo automático en Amazon Bedrock, la plataforma de agentes de Google Cloud, Microsoft Foundry y sesiones de puerta de enlace de aplicaciones Claude requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 eliminó el requisito.12 Esta página es la referencia de configuración. Activar y desactivar el modo automático se cubre en la página Modos de permiso:

13 

14 * **Cambiar al modo automático a mitad de sesión, o salir de él**: consulte [Cambiar modos de permiso](/docs/es/permission-modes#switch-permission-modes)

15 * **Iniciar una sesión en modo automático**: consulte [Iniciar en un modo de permiso diferente](/docs/es/permission-modes#start-in-a-different-mode)

13</Note>16</Note>

14 17 

15De forma predeterminada, el clasificador confía solo en el directorio de trabajo y en los remotos configurados del repositorio actual. Las acciones como insertar en la organización de control de código fuente de su empresa o escribir en un bucket de nube de equipo se bloquean hasta que las agregue a `autoMode.environment`.18El modo automático está disponible para todos los usuarios en cada proveedor, incluida la API de Anthropic, [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, la plataforma de agentes de Google Cloud, Microsoft Foundry y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada. Si Claude Code informa que el modo automático no está disponible para su cuenta, consulte los [requisitos completos](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), que también cubren los modelos admitidos y el control a nivel de organización en planes de equipo y empresa.

16 19 

17Para saber cómo habilitar el modo automático y qué bloquea de forma predeterminada, consulte [modo automático en la página Modos de permiso](/docs/es/permission-modes#eliminate-prompts-with-auto-mode). Esta página es la referencia de configuración.20De forma predeterminada, el clasificador confía solo en el directorio de trabajo y en los remotos configurados del repositorio actual. Las acciones como insertar en la organización de control de código fuente de su empresa o escribir en un bucket de nube de equipo se bloquean hasta que las agregue a `autoMode.environment`.

18 21 

19Esta página cubre cómo:22Esta página cubre cómo:

20 23 

21* [Agregar un checkpoint manual](#add-a-human-checkpoint) para inserciones y solicitudes de extracción con `permissions.ask`24* [Agregar un checkpoint manual](#add-a-human-checkpoint) para inserciones y solicitudes de extracción con `permissions.ask`

22* [Elegir dónde establecer reglas](#where-the-classifier-reads-configuration) en CLAUDE.md, configuración de usuario y configuración administrada

23* [Definir infraestructura de confianza](#define-trusted-infrastructure) con `autoMode.environment`25* [Definir infraestructura de confianza](#define-trusted-infrastructure) con `autoMode.environment`

24* [Generar entradas de entorno](#generate-environment-entries) con `/auto-mode-setup`26* [Generar entradas de entorno](#generate-environment-entries) con `/auto-mode-setup`

25* [Anular las reglas de bloqueo y permiso](#override-the-block-and-allow-rules) cuando los valores predeterminados no se ajustan a su canalización

26* [Editar reglas desde `/permissions`](#edit-rules-from-permissions) sin abrir un archivo de configuración

27* [Enrutar todos los comandos de shell a través del clasificador](#route-all-shell-commands-through-the-classifier) con `autoMode.classifyAllShell`

28* [Inspeccionar su configuración efectiva](#inspect-the-defaults-and-your-effective-config) con los subcomandos `claude auto-mode`

29* [Revisar denegaciones](#review-denials) para saber qué agregar a continuación27* [Revisar denegaciones](#review-denials) para saber qué agregar a continuación

30 28 

31<h2 id="common-boundaries">29<h2 id="common-boundaries">


34 32 

35El modo automático permite inserciones en cualquier rama del repositorio en el que está trabajando, incluida la rama predeterminada, y creación de solicitudes de extracción de forma predeterminada. Una rama no predeterminada cuyo nombre la marca como destino de implementación o publicación, como `production`, `release` o `gh-pages`, no está cubierta por ese valor predeterminado: el clasificador juzga una inserción allí en sus propios términos, incluso como una implementación de producción. El contenido de la inserción también se sigue verificando, por lo que una inserción forzada, un secreto que entra en la confirmación o un cambio que enviaría secretos fuera del repositorio cuando CI o una canalización de implementación lo ejecuta permanece bloqueado.33El modo automático permite inserciones en cualquier rama del repositorio en el que está trabajando, incluida la rama predeterminada, y creación de solicitudes de extracción de forma predeterminada. Una rama no predeterminada cuyo nombre la marca como destino de implementación o publicación, como `production`, `release` o `gh-pages`, no está cubierta por ese valor predeterminado: el clasificador juzga una inserción allí en sus propios términos, incluso como una implementación de producción. El contenido de la inserción también se sigue verificando, por lo que una inserción forzada, un secreto que entra en la confirmación o un cambio que enviaría secretos fuera del repositorio cuando CI o una canalización de implementación lo ejecuta permanece bloqueado.

36 34 

37<Info>Antes de v2.1.211, el clasificador permitía inserciones solo en su rama de trabajo, ramas que Claude creó e inserciones rutinarias en la rama predeterminada.</Info>

38 

39Si desea un punto de control humano antes de cada inserción o solicitud de extracción de Claude, agregue reglas de permisos: las [recetas a continuación](#add-a-human-checkpoint) mantienen el modo automático activado para todo lo demás.35Si desea un punto de control humano antes de cada inserción o solicitud de extracción de Claude, agregue reglas de permisos: las [recetas a continuación](#add-a-human-checkpoint) mantienen el modo automático activado para todo lo demás.

40 36 

41<h3 id="add-a-human-checkpoint">37<h3 id="add-a-human-checkpoint">


79| En toda la organización | [Configuración administrada](/docs/es/server-managed-settings) | Infraestructura de confianza distribuida a todos los desarrolladores |75| En toda la organización | [Configuración administrada](/docs/es/server-managed-settings) | Infraestructura de confianza distribuida a todos los desarrolladores |

80| Bandera `--settings` o Agent SDK | JSON en línea | Anulaciones por invocación para automatización |76| Bandera `--settings` o Agent SDK | JSON en línea | Anulaciones por invocación para automatización |

81 77 

82El clasificador no lee `autoMode` de la configuración del proyecto en `.claude/settings.json` o `.claude/settings.local.json`. Ambos archivos residen en el directorio del repositorio, por lo que un repositorio registrado o un paso de compilación podría inyectar sus propias reglas de permiso. Antes de v2.1.207, el clasificador también leía `.claude/settings.local.json`; mueva cualquier bloque `autoMode` en ese archivo a `~/.claude/settings.json`. Excluir `.claude/settings.local.json` también cierra el caso en el que un repositorio confirma el archivo o una herramienta local o paso de compilación lo escribe.78El clasificador no lee `autoMode` de la configuración del proyecto en `.claude/settings.json` o `.claude/settings.local.json`. Ambos archivos residen en el directorio del repositorio, por lo que un repositorio registrado o un paso de compilación podría inyectar sus propias reglas de permiso. Mueva cualquier bloque `autoMode` en `.claude/settings.local.json` a `~/.claude/settings.json`.

83 79 

84Las entradas de cada ámbito se combinan. Un desarrollador puede extender `environment`, `allow`, `soft_deny` y `hard_deny` con entradas personales pero no puede eliminar las entradas que proporciona la configuración administrada. Debido a que las reglas de permiso actúan como excepciones a las reglas de bloqueo suave dentro del clasificador, una entrada `allow` agregada por un desarrollador puede anular una entrada `soft_deny` de la organización: la combinación es aditiva, no un límite de política dura.80Las entradas de cada ámbito se combinan. Un desarrollador puede extender `environment`, `allow`, `soft_deny` y `hard_deny` con entradas personales pero no puede eliminar las entradas que proporciona la configuración administrada. Debido a que las reglas de permiso actúan como excepciones a las reglas de bloqueo suave dentro del clasificador, una entrada `allow` agregada por un desarrollador puede anular una entrada `soft_deny` de la organización: la combinación es aditiva, no un límite de política dura.

85 81 


93 89 

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

95 91 

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

97 93 

98* **Espacios de contexto**: describen su organización, stack y postura de seguridad para que el clasificador lea las otras reglas en su contexto. Cada uno tiene como valor predeterminado `None configured` o la suposición conservadora nombrada junto a él:94* **Espacios de contexto**: describen su organización, stack y postura de seguridad para que el clasificador lea las otras reglas en su contexto. Cada uno tiene como valor predeterminado `None configured` o la suposición conservadora nombrada junto a él:

99 * **Organización**95 * **Organización**


101 * **Proveedor(es) de nube**97 * **Proveedor(es) de nube**

102 * **Visibilidad del repositorio**: se asume que un repositorio es privado a menos que su host remoto y nombre indiquen lo contrario, o el clasificador lea una verificación de visibilidad anterior en la conversación que muestre que es público.98 * **Visibilidad del repositorio**: se asume que un repositorio es privado a menos que su host remoto y nombre indiquen lo contrario, o el clasificador lea una verificación de visibilidad anterior en la conversación que muestre que es público.

103 99 

104 En las solicitudes del clasificador enviadas por Claude Code mismo, el clasificador lee sus mensajes y los comandos que ejecuta Claude, no su salida. La evidencia tiene que ser algo que el clasificador pueda leer, como su propio mensaje nombrando el repositorio como público; la salida de un `gh repo view` por sí sola no llega a él. La verificación de evidencia de transcripción requiere Claude Code v2.1.200 o posterior100 En las solicitudes del clasificador enviadas por Claude Code mismo, el clasificador lee sus mensajes y los comandos que ejecuta Claude, no su salida. La evidencia tiene que ser algo que el clasificador pueda leer, como su propio mensaje nombrando el repositorio como público; la salida de un `gh repo view` por sí sola no llega a él.

105 * **Intercambio interno / alojamiento de fragmentos**: los servicios públicos de paste y gist se tratan como fuera del límite de confianza hasta que nombre uno101 * **Intercambio interno / alojamiento de fragmentos**: los servicios públicos de paste y gist se tratan como fuera del límite de confianza hasta que nombre uno

106 * **CLI específicas de la organización**102 * **CLI específicas de la organización**

107 * **Gestión de secretos**103 * **Gestión de secretos**


110 * **Contención de host**: tiene como valor predeterminado una máquina de desarrollador ordinaria o ejecutor de CI con internet abierto. Si Claude Code se ejecuta en un contenedor, VM o pod con una lista de permitidos de salida o vecinos que no debe tocar, nombre los hosts permitidos, si el punto final de metadatos de nube debe ser accesible, y qué proyecto de nube, clúster o registro utiliza la tarea y bajo qué identidad. Hasta que esta entrada nombre esa identidad, el clasificador [bloquea](/docs/es/permission-modes#what-the-classifier-blocks-by-default) solicitudes de las propias credenciales del host. Requiere Claude Code v2.1.257 o posterior106 * **Contención de host**: tiene como valor predeterminado una máquina de desarrollador ordinaria o ejecutor de CI con internet abierto. Si Claude Code se ejecuta en un contenedor, VM o pod con una lista de permitidos de salida o vecinos que no debe tocar, nombre los hosts permitidos, si el punto final de metadatos de nube debe ser accesible, y qué proyecto de nube, clúster o registro utiliza la tarea y bajo qué identidad. Hasta que esta entrada nombre esa identidad, el clasificador [bloquea](/docs/es/permission-modes#what-the-classifier-blocks-by-default) solicitudes de las propias credenciales del host. Requiere Claude Code v2.1.257 o posterior

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

112 * **Retención de datos / desclasificación**108 * **Retención de datos / desclasificación**

113* **Espacios de confianza**: nombre lo que el clasificador trata como dentro de su límite. Los espacios son Repositorio de confianza, Control de fuente, Dominios internos de confianza, Buckets de nube de confianza, Servicios internos clave y Registro de paquetes interno. Las entradas de repositorio y control de fuente tienen como valor predeterminado el repositorio de trabajo y sus remotos configurados. Todos los demás espacios de confianza tienen como valor predeterminado `None configured`, por lo que nada más es de confianza hasta que lo agregue. La visibilidad de un repositorio solo abarca material confidencial: un repositorio privado es un destino aceptable para material confidencial, pero hacer un repositorio privado nunca borra secretos o datos personales o confiados en él, y el clasificador trata el contenido portado, reapuntado o leído por primera vez desde fuera del repositorio de trabajo como no siendo trabajo propio de ese repositorio. Este alcance requiere Claude Code v2.1.203 o posterior.109* **Espacios de confianza**: nombre lo que el clasificador trata como dentro de su límite. Los espacios son Repositorio de confianza, Control de fuente, Dominios internos de confianza, Buckets de nube de confianza, Servicios internos clave y Registro de paquetes interno. Las entradas de repositorio y control de fuente tienen como valor predeterminado el repositorio de trabajo y sus remotos configurados. Todos los demás espacios de confianza tienen como valor predeterminado `None configured`, por lo que nada más es de confianza hasta que lo agregue. La visibilidad de un repositorio solo abarca material confidencial: un repositorio privado es un destino aceptable para material confidencial, pero hacer un repositorio privado nunca borra secretos o datos personales o confiados en él, y el clasificador trata el contenido portado, reapuntado o leído por primera vez desde fuera del repositorio de trabajo como no siendo trabajo propio de ese repositorio.

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

115 111 

116<Info>Antes de v2.1.211, los espacios de contexto también incluían una entrada de ramas predeterminadas / protegidas que trataba `main` y `master` como protegidas hasta que nombrara otras. v2.1.211 la eliminó: [los pushes a cualquier rama del repositorio en el que está trabajando](#common-boundaries) se permiten de forma predeterminada, por lo que no hay un valor predeterminado de rama protegida para configurar.</Info>

117 

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

119 113 

120El siguiente ejemplo mantiene las entradas predeterminadas y agrega los repositorios, buckets, dominios y servicios de una organización.114El siguiente ejemplo mantiene las entradas predeterminadas y agrega los repositorios, buckets, dominios y servicios de una organización.


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

144* **Servicios internos clave**: CI, registros de artefactos, índices de paquetes internos, herramientas de incidentes138* **Servicios internos clave**: CI, registros de artefactos, índices de paquetes internos, herramientas de incidentes

145* **Registro de paquetes interno**: el registro privado de npm, PyPI u otro que las instalaciones deben enrutar, por lo que las instalaciones que lo omiten para un registro público se bloquean139* **Registro de paquetes interno**: el registro privado de npm, PyPI u otro que las instalaciones deben enrutar, por lo que las instalaciones que lo omiten para un registro público se bloquean

146* **Ubicaciones de datos sensibles y audiencias**: los buckets, bases de datos o rutas que contienen datos personales, datos comerciales confidenciales, credenciales, datos regulados o material similar sensible, y las audiencias con las que se pueden compartir los datos en cada ubicación, para que el clasificador proteja esas ubicaciones en lugar de adivinar por contenido. Claude Code v2.1.195 a v2.1.197 nombran esta entrada ubicaciones de PII / datos regulados y cubren solo ubicaciones que contienen datos personales o regulados, sin la dimensión de audiencia140* **Ubicaciones de datos sensibles y audiencias**: los buckets, bases de datos o rutas que contienen datos personales, datos comerciales confidenciales, credenciales, datos regulados o material similar sensible, y las audiencias con las que se pueden compartir los datos en cada ubicación, para que el clasificador proteja esas ubicaciones en lugar de adivinar por contenido.

147* **Objetivos remotos sensibles**: los espacios de nombres, hosts o contenedores que cuentan como producción, por lo que los shells remotos y port-forwards en ellos necesitan su aprobación explícita141* **Objetivos remotos sensibles**: los espacios de nombres, hosts o contenedores que cuentan como producción, por lo que los shells remotos y port-forwards en ellos necesitan su aprobación explícita

148* **Alcances de IaC protegidos**: los recursos de infraestructura cuya aplicación o destrucción siempre debe requerir que nombre el cambio142* **Alcances de IaC protegidos**: los recursos de infraestructura cuya aplicación o destrucción siempre debe requerir que nombre el cambio

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

150 144 

151Las entradas de Registro de paquetes interno, Ubicaciones de datos sensibles y audiencias, Objetivos remotos sensibles y Alcances de IaC protegidos requieren Claude Code v2.1.195 o posterior. Las versiones anteriores aún las leen como contexto simple pero no tienen las reglas integradas que las orientan.

152 

153Una plantilla de inicio útil: complete los campos entre corchetes y elimine cualquier línea que no se aplique.145Una plantilla de inicio útil: complete los campos entre corchetes y elimine cualquier línea que no se aplique.

154 146 

155```json theme={null}147```json theme={null}


169}161}

170```162```

171 163 

172Cuanto más contexto específico proporcione, mejor podrá el clasificador distinguir las operaciones internas rutinarias de los intentos de exfiltración.

173 

174No necesita completar todo de una vez. Un despliegue razonable: comience con los valores predeterminados y agregue su organización de control de fuente y servicios internos clave, lo que resuelve los falsos positivos más comunes como hacer push a sus propios repositorios. Agregue dominios de confianza y buckets de nube a continuación. Complete el resto a medida que surjan bloqueos.164No necesita completar todo de una vez. Un despliegue razonable: comience con los valores predeterminados y agregue su organización de control de fuente y servicios internos clave, lo que resuelve los falsos positivos más comunes como hacer push a sus propios repositorios. Agregue dominios de confianza y buckets de nube a continuación. Complete el resto a medida que surjan bloqueos.

175 165 

176<h2 id="generate-environment-entries">166<h2 id="generate-environment-entries">


307 297 

308De forma predeterminada, las reglas estrechas de Bash y PowerShell como `Bash(npm test)` permanecen en vigor en modo automático. Claude Code las resuelve antes de que se ejecute el clasificador, a menos que el comando lleve [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode). Claude Code suspende solo las reglas amplias que otorgan ejecución de código arbitrario, como `Bash(*)` o intérpretes con comodines, junto con cada regla que nombra [`Monitor`](/docs/es/tools-reference#monitor-tool), porque los comandos Monitor se ejecutan a través del shell. Esto significa que una regla estrecha aún puede dejar pasar un argumento destructivo sin que el clasificador lo vea, por ejemplo una ruta de script o bandera que el prefijo de la regla no anticipó.298De forma predeterminada, las reglas estrechas de Bash y PowerShell como `Bash(npm test)` permanecen en vigor en modo automático. Claude Code las resuelve antes de que se ejecute el clasificador, a menos que el comando lleve [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode). Claude Code suspende solo las reglas amplias que otorgan ejecución de código arbitrario, como `Bash(*)` o intérpretes con comodines, junto con cada regla que nombra [`Monitor`](/docs/es/tools-reference#monitor-tool), porque los comandos Monitor se ejecutan a través del shell. Esto significa que una regla estrecha aún puede dejar pasar un argumento destructivo sin que el clasificador lo vea, por ejemplo una ruta de script o bandera que el prefijo de la regla no anticipó.

309 299 

310Establezca `autoMode.classifyAllShell` en `true` para suspender cada regla de permiso de Bash y PowerShell mientras el modo automático está activo, de modo que el clasificador evalúe cada comando de shell independientemente de su lista de permisos.300Establezca `autoMode.classifyAllShell` en `true` para suspender cada regla de permiso de Bash y PowerShell mientras el modo automático está activo, de modo que el clasificador evalúe cada comando de shell independientemente de su lista de permisos, excepto [eliminaciones de rutas críticas](/docs/es/permission-modes#critical-paths).

311 301 

312```json theme={null}302```json theme={null}

313{303{


321 311 

322La configuración se aplica solo mientras el modo automático está activo, y sus reglas de permiso se comportan normalmente en otros modos de permisos.312La configuración se aplica solo mientras el modo automático está activo, y sus reglas de permiso se comportan normalmente en otros modos de permisos.

323 313 

324<Note>

325 `autoMode.classifyAllShell` requiere Claude Code v2.1.193 o posterior. Las versiones anteriores ignoran la clave y continúan llevando reglas de permiso de shell estrechas al modo automático.

326</Note>

327 

328<h2 id="inspect-the-defaults-and-your-effective-config">314<h2 id="inspect-the-defaults-and-your-effective-config">

329 Inspeccione los valores predeterminados y su configuración efectiva315 Inspeccione los valores predeterminados y su configuración efectiva

330</h2>316</h2>


373claude auto-mode critique359claude auto-mode critique

374```360```

375 361 

376Ejecute `claude auto-mode config` después de guardar su configuración para confirmar que las reglas efectivas son las que espera, con `"$defaults"` expandido en su lugar. Si ha escrito reglas personalizadas, `claude auto-mode critique` las revisa y marca las entradas que son ambiguas, redundantes o que probablemente causen falsos positivos.362Si ha escrito reglas personalizadas, `claude auto-mode critique` las revisa y marca las entradas que son ambiguas, redundantes o que probablemente causen falsos positivos.

377 363 

378Para descartar sus personalizaciones y volver a los valores predeterminados integrados, ejecute el subcomando reset. Requiere Claude Code v2.1.212 o posterior y elimina la sección `autoMode` de su archivo de configuración de usuario:364Para descartar sus personalizaciones y volver a los valores predeterminados integrados, ejecute el subcomando reset. Requiere Claude Code v2.1.212 o posterior y elimina la sección `autoMode` de su archivo de configuración de usuario:

379 365 


407 393 

408Puede agregar la entrada de entorno o la regla `allow` desde la pestaña [**Auto mode**](#edit-rules-from-permissions) del diálogo `/permissions`.394Puede agregar la entrada de entorno o la regla `allow` desde la pestaña [**Auto mode**](#edit-rules-from-permissions) del diálogo `/permissions`.

409 395 

410En la mayoría de las sesiones, la razón nombra la regla que el clasificador coincidió, entre corchetes, como `[Data Exfiltration]` (Exfiltración de datos) o `[Production Deploy]` (Implementación en producción), y algunas sesiones ejecutan un modelo clasificador que agrega una breve explicación. Claude Code selecciona el modelo clasificador, por lo que la forma que ve no es algo que configure.396El texto entre corchetes, como `[Data Exfiltration]`, es el nombre de la regla que el clasificador coincidió. Para leer la redacción completa de esa regla, consulte [Inspeccionar los valores predeterminados y su configuración efectiva](#inspect-the-defaults-and-your-effective-config).

411 397 

412<h3 id="fix-repeated-denials">398<h3 id="fix-repeated-denials">

413 Corregir denegaciones repetidas399 Corregir denegaciones repetidas


415 401 

416Las denegaciones repetidas para el mismo destino generalmente significan que al clasificador le falta contexto. Agregue ese destino a `autoMode.environment`, o [ejecute `/auto-mode-setup`](#generate-environment-entries) para que Claude Code redacte las entradas, luego ejecute `claude auto-mode config` para confirmar que el cambio surtió efecto.402Las denegaciones repetidas para el mismo destino generalmente significan que al clasificador le falta contexto. Agregue ese destino a `autoMode.environment`, o [ejecute `/auto-mode-setup`](#generate-environment-entries) para que Claude Code redacte las entradas, luego ejecute `claude auto-mode config` para confirmar que el cambio surtió efecto.

417 403 

418Para reaccionar a las denegaciones mediante programación, use el [hook `PermissionDenied`](/docs/es/hooks#permissiondenied).

419 

420<h2 id="see-also">404<h2 id="see-also">

421 Véase también405 Véase también

422</h2>406</h2>

Details

46 46 

47* **En un solo mensaje**: pida a Claude que ejecute la verificación e itere en el mismo mensaje, como en la tabla anterior.47* **En un solo mensaje**: pida a Claude que ejecute la verificación e itere en el mismo mensaje, como en la tabla anterior.

48* **En toda una sesión**: establezca la verificación como una [condición `/goal`](/docs/es/goal). Un evaluador separado la vuelve a verificar después de cada turno y Claude continúa trabajando hasta que se cumpla el objetivo. Si Claude se estanca, Claude Code eventualmente detiene la ejecución con el objetivo aún establecido — vea [cómo funciona la evaluación de /goal](/docs/es/goal#how-evaluation-works).48* **En toda una sesión**: establezca la verificación como una [condición `/goal`](/docs/es/goal). Un evaluador separado la vuelve a verificar después de cada turno y Claude continúa trabajando hasta que se cumpla el objetivo. Si Claude se estanca, Claude Code eventualmente detiene la ejecución con el objetivo aún establecido — vea [cómo funciona la evaluación de /goal](/docs/es/goal#how-evaluation-works).

49* **Como una puerta determinista**: un [hook Stop](/docs/es/hooks#stop) ejecuta su verificación como un script y bloquea el final del turno hasta que pase. Claude Code anula el hook y finaliza el turno después de 8 bloqueos consecutivos.49* **Como una puerta determinista**: un [hook Stop](/docs/es/hooks#stop) ejecuta su verificación como un script y bloquea el final del turno hasta que pase. [Stop input](/docs/es/hooks#stop-input) cubre el límite en bloqueos consecutivos.

50* **Por una segunda opinión**: un [subagente de verificación](/docs/es/sub-agents) o un [flujo de trabajo dinámico](/docs/es/workflows) que verifica sus propios hallazgos tiene un modelo fresco que intenta refutar el resultado, por lo que el agente que realiza el trabajo no es el que lo califica.50* **Por una segunda opinión**: un [subagente de verificación](/docs/es/sub-agents) o un [flujo de trabajo dinámico](/docs/es/workflows) que verifica sus propios hallazgos tiene un modelo fresco que intenta refutar el resultado, por lo que el agente que realiza el trabajo no es el que lo califica.

51 51 

52Cada paso intercambia configuración por atención. La versión de mensaje funciona en cualquier tarea hoy. Las versiones `/goal` y Stop hook son las que permiten que una ejecución desatendida se complete correctamente sin usted.52Cada paso intercambia configuración por atención. La versión de mensaje funciona en cualquier tarea hoy. Las versiones `/goal` y Stop hook son las que permiten que una ejecución desatendida se complete correctamente sin usted.


209 Para obtener menos solicitudes sin renunciar al control, pre-aprueba las herramientas en las que confías con `/permissions` y deja que los comandos en sandbox se ejecuten sin preguntar con `/sandbox`. Cambia a modo Manual cuando quieras aprobar ediciones y comandos tú mismo.209 Para obtener menos solicitudes sin renunciar al control, pre-aprueba las herramientas en las que confías con `/permissions` y deja que los comandos en sandbox se ejecuten sin preguntar con `/sandbox`. Cambia a modo Manual cuando quieras aprobar ediciones y comandos tú mismo.

210</Tip>210</Tip>

211 211 

212En los planes Pro, Max y Team, el modo automático es el [modo de permiso inicial integrado](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para sesiones interactivas de terminal y VS Code: un modelo clasificador separado revisa la mayoría de acciones en lugar de ti y bloquea solo lo que parece arriesgado, como escalada de alcance, infraestructura desconocida o acciones impulsadas por contenido hostil.212Con Claude Code v2.1.283 o posterior, el modo automático es el [modo de permiso inicial integrado](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para sesiones interactivas de terminal y VS Code: un modelo clasificador separado revisa la mayoría de acciones en lugar de ti y bloquea solo lo que parece arriesgado, como escalada de alcance, infraestructura desconocida o acciones impulsadas por contenido hostil. En versiones anteriores, el modo automático es el modo de permiso inicial integrado solo en planes Pro, Max y Team.

213 213 

214En modo Manual, el modo de permiso inicial integrado en otros planes, Claude Code pregunta antes de acciones que podrían modificar tu sistema: escrituras de archivos, comandos Bash, herramientas MCP. Eso es seguro pero tedioso. Después de la décima aprobación estás haciendo clic sin revisar realmente. Dos herramientas reducen esas interrupciones en modo Manual y se aplican también en modo automático:214En modo Manual, Claude Code pregunta antes de acciones que podrían modificar tu sistema: escrituras de archivos, comandos Bash, herramientas MCP. Eso es seguro pero tedioso. Después de la décima aprobación estás haciendo clic sin revisar realmente. Dos herramientas reducen esas interrupciones en modo Manual y se aplican también en modo automático:

215 215 

216* **Listas de permisos**: permiten herramientas específicas que sabes que son seguras, como `npm run lint` o `git commit`216* **Listas de permisos**: permiten herramientas específicas que sabes que son seguras, como `npm run lint` o `git commit`

217* **Sandboxing**: habilita aislamiento a nivel del SO que restringe el acceso al sistema de archivos y red, permitiendo que Claude trabaje más libremente dentro de límites definidos217* **Sandboxing**: habilita aislamiento a nivel del SO que restringe el acceso al sistema de archivos y red, permitiendo que Claude trabaje más libremente dentro de límites definidos

channels.md +1 −1

Details

361 361 

362Durante la vista previa, `--channels` solo acepta plugins de una lista de permitidos mantenida por Anthropic, o de la lista de permitidos de su organización si un administrador ha establecido [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run). Los plugins de channel en [claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) son el conjunto aprobado predeterminado. Si pasa algo que no está en la lista de permitidos efectiva, Claude Code se inicia normalmente pero el channel no se registra, y el aviso de inicio le dice por qué.362Durante la vista previa, `--channels` solo acepta plugins de una lista de permitidos mantenida por Anthropic, o de la lista de permitidos de su organización si un administrador ha establecido [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run). Los plugins de channel en [claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) son el conjunto aprobado predeterminado. Si pasa algo que no está en la lista de permitidos efectiva, Claude Code se inicia normalmente pero el channel no se registra, y el aviso de inicio le dice por qué.

363 363 

364Para probar un channel que está creando, use `--dangerously-load-development-channels`. Vea [Probar durante la vista previa de investigación](/docs/es/channels-reference#test-during-the-research-preview) para obtener información sobre cómo probar channels personalizados que cree.364Para probar un channel que está creando, páselo a `--dangerously-load-development-channels` en la forma `plugin:<name>@<marketplace>` o `server:<name>`. Vea [Probar durante la vista previa de investigación](/docs/es/channels-reference#test-during-the-research-preview) para obtener información sobre cómo probar channels personalizados que cree.

365 365 

366Informe de problemas o comentarios en el [repositorio de GitHub de Claude Code](https://github.com/anthropics/claude-code/issues).366Informe de problemas o comentarios en el [repositorio de GitHub de Claude Code](https://github.com/anthropics/claude-code/issues).

367 367 

Details

804 804 

805Para hacer tu canal instalable y compartible, envuélvelo en un [complemento](/docs/es/plugins/overview) y publícalo en un [mercado](/docs/es/plugins/overview). Los usuarios lo instalan con `/plugin install`, luego lo habilitan por sesión con `--channels plugin:<name>@<marketplace>`.805Para hacer tu canal instalable y compartible, envuélvelo en un [complemento](/docs/es/plugins/overview) y publícalo en un [mercado](/docs/es/plugins/overview). Los usuarios lo instalan con `/plugin install`, luego lo habilitan por sesión con `--channels plugin:<name>@<marketplace>`.

806 806 

807Un canal publicado en tu propio mercado aún necesita `--dangerously-load-development-channels` para ejecutarse, ya que no está en la [lista de aprobación](/docs/es/channels#supported-channels). La lista de aprobación predeterminada es los complementos de canal en `claude-plugins-official`. Los [formularios de envío en la aplicación](/docs/es/plugins/publish#submit-to-the-community-marketplace) agregan complementos al mercado comunitario, que no está en la lista de aprobación de canales.807Un canal publicado en tu propio mercado aún necesita `--dangerously-load-development-channels` para ejecutarse, ya que no está en la [lista de aprobación](/docs/es/channels#supported-channels). La lista de aprobación predeterminada es los complementos de canal en `claude-plugins-official`. El mercado comunitario no está en la lista de aprobación de canales.

808 808 

809Si estás trabajando con un contacto de socio de Anthropic, comunícate con ellos para coordinar una lista de mercado oficial. En planes de equipo y empresa, un administrador puede incluir tu complemento en la lista [`allowedChannelPlugins`](/docs/es/channels#restrict-which-channel-plugins-can-run) de la organización, que reemplaza la lista de aprobación predeterminada de Anthropic.809Si estás trabajando con un contacto de socio de Anthropic, comunícate con ellos para coordinar una lista de mercado oficial. En planes de equipo y empresa, un administrador puede incluir tu complemento en la lista [`allowedChannelPlugins`](/docs/es/channels#restrict-which-channel-plugins-can-run) de la organización, que reemplaza la lista de aprobación predeterminada de Anthropic.

810 810 

Details

114 Los mensajes enviados a mitad de turno no se someten a checkpoint114 Los mensajes enviados a mitad de turno no se someten a checkpoint

115</h3>115</h3>

116 116 

117Cuando un mensaje que [pone en cola mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works) llega a Claude dentro del turno en ejecución, se une a ese turno en lugar de iniciar uno nuevo. El mensaje aparece en la conversación, pero Claude Code no crea un checkpoint para él, y el menú de rewind no lo enumera. Un mensaje en cola que Claude Code envía como su propio turno obtiene un checkpoint como de costumbre.117Cuando un mensaje que [pone en cola mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works) llega a Claude dentro del turno en ejecución, se une a ese turno en lugar de iniciar uno nuevo. El mensaje aparece en la conversación, pero Claude Code no crea un checkpoint para él, y el menú de rewind no lo enumera. Un mensaje en cola que Claude Code envía como parte de un nuevo turno obtiene un checkpoint como de costumbre, incluyendo cuando varios mensajes en cola [comparten ese turno](/docs/es/interactive-mode#when-claude-code-sends-what-you-queued).

118 118 

119Para eliminar tal mensaje, o deshacer las ediciones que Claude realizó después de que llegara, retroceda al prompt que inició el turno. Eso retrocede todo el turno, incluido el trabajo que Claude realizó antes de que llegara su mensaje.119Para eliminar tal mensaje, o deshacer las ediciones que Claude realizó después de que llegara, retroceda al prompt que inició el turno. Eso retrocede todo el turno, incluido el trabajo que Claude realizó antes de que llegara su mensaje.

120 120 

Details

59 Inicio rápido59 Inicio rápido

60</h2>60</h2>

61 61 

62Este inicio rápido recorre la ruta mínima: registre un cliente OAuth en su IdP, escriba un `gateway.yaml`, ejecute la puerta de enlace junto con Postgres con Docker Compose, y verifique el inicio de sesión de extremo a extremo. Utiliza un ascendente de Amazon Bedrock; la Plataforma de Claude en AWS, la Plataforma de Agentes de Google Cloud, Microsoft Foundry, y la API de Anthropic son igualmente compatibles intercambiando el bloque `upstreams` como se muestra en la [referencia de configuración](/docs/es/claude-apps-gateway-config#upstreams). Al final tiene una puerta de enlace a la que un desarrollador puede `/login`.62Este inicio rápido recorre la ruta mínima: registrar un cliente OAuth en su IdP, escribir un `gateway.yaml`, ejecutar la puerta de enlace junto con Postgres usando Docker Compose y verificar el inicio de sesión de extremo a extremo. Utiliza un upstream de Amazon Bedrock; Claude Platform en AWS, Agent Platform de Google Cloud, Microsoft Foundry y la API de Anthropic son igualmente compatibles intercambiando el bloque `upstreams` como se muestra en la [referencia de configuración](/docs/es/claude-apps-gateway-config#upstreams). Al final tiene una puerta de enlace a la que un desarrollador puede `/login`.

63 63 

64<Note>64<Note>

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

66</Note>66</Note>

67 67 

68<h3 id="prerequisites">68<h3 id="prerequisites">

69 Requisitos previos69 Requisitos previos

70</h3>70</h3>

71 71 

72Tenga estos en lugar antes de comenzar:72Tenga estos elementos en su lugar antes de comenzar:

73 73 

74| Lo que necesita | Detalles |74| Lo que necesita | Detalles |

75| - | - |75| - | - |

76| Claude Code v2.1.195 o posterior | El subcomando `claude gateway` y el flujo de inicio de sesión de la puerta de enlace se envían en v2.1.195. Las compilaciones públicas anteriores no las incluyen. Tanto la máquina que ejecuta el servidor de puerta de enlace como la máquina de cada desarrollador deben estar en v2.1.195 o posterior; ejecute `claude update` para obtener la última versión. La [Plataforma de Claude en AWS ascendente](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere Claude Code v2.1.198 o posterior en el servidor de puerta de enlace. |76| Claude Code v2.1.195 o posterior | El subcomando `claude gateway` y el flujo de inicio de sesión de la puerta de enlace se envían en v2.1.195. Las compilaciones públicas anteriores no los incluyen. Tanto la máquina que ejecuta el servidor de la puerta de enlace como la máquina de cada desarrollador deben estar en v2.1.195 o posterior; ejecute `claude update` para obtener la versión más reciente. El [upstream de Claude Platform en AWS](/docs/es/claude-apps-gateway-config#claude-platform-on-aws) requiere Claude Code v2.1.198 o posterior en el servidor de la puerta de enlace. |

77| Proveedor de identidad OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, u otro IdP compatible con OIDC como PingFederate. La puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización contra ella. SAML y LDAP no son compatibles. |77| Proveedor de identidad OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o cualquier otro IdP compatible con OIDC como PingFederate. La puerta de enlace ejecuta el descubrimiento OIDC estándar y el flujo de código de autorización en su contra. SAML y LDAP no son compatibles. |

78| PostgreSQL 14 o posterior | Respalda el flujo de inicio de sesión del dispositivo, donde la devolución de llamada del navegador escribe y la CLI de sondeo lee, más contadores de límite de velocidad. Cualquier Postgres administrado funciona, incluido el nivel más pequeño. Sin límites de gasto configurados, la puerta de enlace almacena algunos KB de estado de autenticación de corta duración; con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits), también mantiene tablas de gasto, auditoría e identidad duraderas que deben respaldarse. TLS a través de `?sslmode=require` se recomienda. |78| PostgreSQL 14 o posterior | Respalda el flujo de inicio de sesión del dispositivo, donde la devolución de llamada del navegador escribe y la CLI de sondeo lee, además de contadores de límite de velocidad. Cualquier Postgres administrado funciona, incluido el nivel más pequeño. Sin límites de gasto configurados, la puerta de enlace almacena algunos KB de estado de autenticación de corta duración; con [límites de gasto](/docs/es/claude-apps-gateway-spend-limits), también contiene tablas duraderas de gasto, auditoría e identidad que deben respaldarse. Se recomienda TLS a través de `?sslmode=require`. |

79| Ascendente de modelo | Credenciales de Amazon Bedrock, credenciales de Plataforma de Claude en AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry, o una clave API de Anthropic. Se admiten múltiples ascendentes con conmutación por error. |79| Upstream de modelo | Credenciales de Amazon Bedrock, credenciales de Claude Platform en AWS, credenciales de Google Cloud, un recurso de Microsoft Foundry o una clave de API de Anthropic. Se admiten múltiples upstreams con conmutación por error. |

80| HTTPS | La puerta de enlace debe ser accesible sobre `https://` desde computadoras portátiles de desarrolladores y desde cualquier navegador utilizado para el inicio de sesión; la puerta de enlace sirve la página de verificación del dispositivo en el mismo oyente. Proporcione un certificado TLS a través de `listen.tls` o ejecute detrás de una entrada que termina TLS, y establezca `listen.public_url` en el origen externo en ambos casos. Un origen `http://` simple se acepta solo cuando el host de la puerta de enlace es loopback: `localhost`, `127.0.0.1`, o `::1`. |80| HTTPS | La puerta de enlace debe ser accesible a través de `https://` desde portátiles de desarrolladores y desde cualquier navegador utilizado para el inicio de sesión; la puerta de enlace sirve la página de verificación del dispositivo en el mismo oyente. Proporcione un certificado TLS a través de `listen.tls` o ejecute detrás de una entrada que termine TLS, y establezca `listen.public_url` en el origen externo en ambos casos. En `/login`, Claude Code acepta un origen `http://` simple solo cuando el host de la puerta de enlace es loopback: `localhost`, `127.0.0.1` o `::1`. |

81| Dirección de red privada | En `/login`, Claude Code requiere que el nombre de host o la dirección IP de la puerta de enlace se resuelvan solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, ULA IPv6 `fc00::/7`, o loopback. Para una puerta de enlace que usted aloja, cualquier dirección pública fuera de un bloque que usted declare se rechaza; consulte el [modelo de amenaza](/docs/es/claude-apps-gateway-deploy#threat-model-summary) en la guía de implementación. Si las máquinas de desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy se resuelva a direcciones privadas; si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte directamente. Si su red interna está numerada desde espacio IPv4 público que su organización posee, [declare esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte una puerta de enlace allí. |81| Dirección de red privada | En `/login`, Claude Code requiere que el nombre de host o la dirección IP de la puerta de enlace se resuelvan solo a direcciones privadas: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Para una puerta de enlace que aloja, cualquier dirección pública fuera de un bloque que declare se rechaza; consulte el [modelo de amenaza](/docs/es/claude-apps-gateway-deploy#threat-model-summary) en la guía de implementación. Si las máquinas de desarrolladores enrutan HTTPS a través de un proxy corporativo, el inicio de sesión también requiere que el host del proxy se resuelva a direcciones privadas; si no es así, agregue el host de la puerta de enlace a `NO_PROXY` para que la CLI se conecte directamente. Si su red interna está numerada desde espacio IPv4 público que su organización posee, [declare esos bloques](#allow-a-gateway-on-public-address-space-you-own) para que `/login` acepte una puerta de enlace allí. |

82| Tiempo de ejecución de Linux | El servidor de puerta de enlace solo se ejecuta en el binario nativo de Linux. macOS funciona para desarrollo local. Windows no es compatible como plataforma de servidor. |82| Runtime de Linux | El servidor de la puerta de enlace se ejecuta solo en el binario nativo de Linux. macOS funciona para desarrollo local. Windows no es compatible como plataforma de servidor. |

83 83 

84<h3 id="steps">84<h3 id="steps">

85 Pasos85 Pasos

86</h3>86</h3>

87 87 

88<Steps>88<Steps>

89 <Step title="Registre un cliente OAuth en su IdP">89 <Step title="Registrar un cliente OAuth en su IdP">

90 Decida primero el nombre de host de la puerta de enlace, porque el URI de redirección debe coincidir con él. Cree una nueva aplicación web OIDC y establezca el URI de redirección en `https://claude-gateway.<your-domain>/oauth/callback`, donde el host es el mismo valor que establece como [`listen.public_url`](/docs/es/claude-apps-gateway-config#listen) en el paso 3. Anote el `client_id` y `client_secret`. Las instrucciones por IdP están en [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup).90 Decida primero el nombre de host de la puerta de enlace, porque el URI de redirección debe coincidir con él. Cree una nueva aplicación web OIDC y establezca el URI de redirección en `https://claude-gateway.<su-dominio>/oauth/callback`, donde el host es el mismo valor que establece como [`listen.public_url`](/docs/es/claude-apps-gateway-config#listen) en el paso 3. Anote el `client_id` y `client_secret`. Las instrucciones por IdP están en [Configuración del proveedor de identidad](/docs/es/claude-apps-gateway-deploy#identity-provider-setup).

91 </Step>91 </Step>

92 92 

93 <Step title="Aprovisione una base de datos PostgreSQL">93 <Step title="Aprovisionar una base de datos PostgreSQL">

94 Cualquier Postgres 14 o posterior funciona, incluido el nivel administrado más pequeño. La puerta de enlace ejecuta sus propias migraciones de esquema al arrancar, por lo que el rol de la base de datos necesita derechos para crear y alterar tablas; consulte [`store`](/docs/es/claude-apps-gateway-config#store).94 Cualquier Postgres 14 o posterior funciona, incluido el nivel administrado más pequeño. La puerta de enlace ejecuta sus propias migraciones de esquema al arrancar, por lo que el rol de la base de datos necesita derechos para crear y alterar tablas; consulte [`store`](/docs/es/claude-apps-gateway-config#store).

95 </Step>95 </Step>

96 96 

97 <Step title="Escriba gateway.yaml">97 <Step title="Escribir gateway.yaml">

98 Los secretos se leen a través de la expansión `${ENV_VAR}` para que el archivo en sí pueda vivir en control de versiones. Use un nombre de host `public_url` que se resuelva a una IP privada en su red, porque `/login` rechaza direcciones públicas. La configuración mínima tiene cinco secciones, y todos los demás campos tienen un valor predeterminado:98 Los secretos se leen a través de la expansión `${ENV_VAR}` para que el archivo en sí pueda vivir en control de versiones. Use un nombre de host `public_url` que se resuelva a una IP privada en su red, porque `/login` rechaza direcciones públicas. La configuración mínima tiene cinco secciones, y todos los demás campos tienen un valor predeterminado:

99 99 

100 ```yaml gateway.yaml theme={null}100 ```yaml gateway.yaml theme={null}

101 listen:101 listen:

102 host: 0.0.0.0102 host: 0.0.0.0

103 port: 8080103 port: 8080

104 # Requerido a menos que el host sea una dirección loopback. Utilizado para el IdP104 # Requerido a menos que el host sea una dirección loopback. Se utiliza para el IdP

105 # redirect_uri y el documento de descubrimiento.105 # redirect_uri y el documento de descubrimiento.

106 public_url: https://claude-gateway.internal.example.com106 public_url: https://claude-gateway.internal.example.com

107 107 


114 114 

115 session:115 session:

116 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32116 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32

117 ttl_hours: 1 # también limita la latencia de revocación en desaprovisionamiento de IdP117 ttl_hours: 1 # también limita la latencia de revocación en el desaprovisionamiento de IdP

118 118 

119 store:119 store:

120 postgres_url: ${GATEWAY_POSTGRES_URL} # agregue ?sslmode=require para Postgres administrado120 postgres_url: ${GATEWAY_POSTGRES_URL} # agregue ?sslmode=require para Postgres administrado


125 auth: {} # vacío: cadena de credenciales predeterminada de AWS125 auth: {} # vacío: cadena de credenciales predeterminada de AWS

126 # (IRSA, rol de tarea EC2/ECS, variables de entorno, ~/.aws)126 # (IRSA, rol de tarea EC2/ECS, variables de entorno, ~/.aws)

127 127 

128 # Los modelos se traducen por ascendente automáticamente. El catálogo integrado128 # Los modelos se traducen por upstream automáticamente. El catálogo integrado

129 # asigna claude-opus-4-8 a us.anthropic.claude-opus-4-8 y así sucesivamente para cada129 # asigna claude-opus-4-8 a us.anthropic.claude-opus-4-8 y así sucesivamente para cada

130 # modelo Claude compatible con Bedrock. Establezca false y agregue una lista `models:` para130 # modelo Claude compatible con Bedrock. Establezca false y agregue una lista `models:` para

131 # exponer solo modelos específicos.131 # exponer solo modelos específicos.

132 auto_include_builtin_models: true132 auto_include_builtin_models: true

133 ```133 ```

134 134 

135 Esta configuración es suficiente para un bucle de inicio de sesión funcional con el catálogo de modelos predeterminado de Amazon Bedrock. Una vez que se ejecute, agregue RBAC por grupo y configuración administrada a través de [`managed.policies`](/docs/es/claude-apps-gateway-config#managed), distribución de telemetría a través de [`telemetry`](/docs/es/claude-apps-gateway-config#telemetry), y conmutación por error de múltiples ascendentes, ARNs de rendimiento aprovisionado, o regiones no estadounidenses a través de [`models`](/docs/es/claude-apps-gateway-config#models).135 Esta configuración es suficiente para un bucle de inicio de sesión funcional con el catálogo de modelos predeterminado de Amazon Bedrock. Una vez que se está ejecutando, agregue RBAC por grupo y configuraciones administradas a través de [`managed.policies`](/docs/es/claude-apps-gateway-config#managed), fan-out de telemetría a través de [`telemetry`](/docs/es/claude-apps-gateway-config#telemetry) y conmutación por error de múltiples upstreams, ARN de rendimiento aprovisionado o regiones no estadounidenses a través de [`models`](/docs/es/claude-apps-gateway-config#models).

136 136 

137 <Note>137 <Note>

138 El ascendente de Amazon Bedrock necesita un principal de AWS con `bedrock:InvokeModel` y `bedrock:InvokeModelWithResponseStream` en los ARNs `inference-profile/us.anthropic.*` y los ARNs `foundation-model/anthropic.*` subyacentes. También necesita el formulario de caso de uso único de Anthropic enviado para la cuenta desde el catálogo de modelos de la consola de Bedrock.138 El upstream de Amazon Bedrock necesita un principal de AWS con `bedrock:InvokeModel` y `bedrock:InvokeModelWithResponseStream` en los ARN `inference-profile/us.anthropic.*` y los ARN subyacentes `foundation-model/anthropic.*`. También necesita el formulario de caso de uso único de Anthropic enviado para la cuenta desde el catálogo de modelos de la consola de Bedrock.

139 139 

140 Suministre la credencial con IRSA en EKS, un rol de tarea de ECS, o un perfil de instancia de EC2 en lugar de claves estáticas. La [referencia `upstreams`](/docs/es/claude-apps-gateway-config#upstreams) tiene los detalles completos de IAM, la matriz de credenciales entre nubes, y los bloques `auth` para los otros proveedores.140 Suministre la credencial con IRSA en EKS, un rol de tarea ECS o un perfil de instancia EC2 en lugar de claves estáticas. La [referencia `upstreams`](/docs/es/claude-apps-gateway-config#upstreams) tiene los detalles completos de IAM, la matriz de credenciales entre nubes y los bloques `auth` para los otros proveedores.

141 </Note>141 </Note>

142 </Step>142 </Step>

143 143 

144 <Step title="Ejecútelo">144 <Step title="Ejecutarlo">

145 Construya una imagen de contenedor alrededor del binario `claude` que cumpla con los [requisitos de imagen](/docs/es/claude-apps-gateway-deploy#container-image), luego ejecútela junto con Postgres. El archivo Compose hace referencia a la imagen como `registry.example.com/claude-gateway:2.1.198`; sustituya su propio registro y etiqueta de imagen:145 Construya una imagen de contenedor alrededor del binario `claude` que cumpla con los [requisitos de imagen](/docs/es/claude-apps-gateway-deploy#container-image), luego ejecútela junto con Postgres. El archivo Compose hace referencia a la imagen como `registry.example.com/claude-gateway:2.1.198`; sustituya su propio registro y etiqueta de imagen:

146 146 

147 ```yaml docker-compose.yaml theme={null}147 ```yaml docker-compose.yaml theme={null}


154 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}154 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}

155 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}155 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}

156 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway156 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway

157 # Credenciales de AWS: en producción, omita estas y use un rol de instancia.157 # Credenciales de AWS: en producción, omita estas y use un rol de instancia

158 # Para pruebas locales de Compose, pase las suyas propias:158 # Para pruebas locales de Compose, pase las suyas propias:

159 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}159 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}

160 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}160 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}


172 volumes: { pgdata: }172 volumes: { pgdata: }

173 ```173 ```

174 174 

175 La puerta de enlace es un único binario de Linux que lee la configuración, se conecta a Postgres y aplica sus migraciones de esquema, ejecuta el descubrimiento OIDC contra su IdP, construye clientes ascendentes, e inicia la escucha. El arranque es de cierre fallido para la configuración, la conexión de Postgres, el descubrimiento OIDC, y la construcción del cliente ascendente. Si alguno de esos es inaccesible o está mal configurado, la puerta de enlace sale con un error en lugar de servir tráfico en un estado degradado.175 La puerta de enlace es un único binario de Linux que lee la configuración, se conecta a Postgres y aplica sus migraciones de esquema, ejecuta el descubrimiento OIDC en su IdP, construye clientes upstream e inicia la escucha.

176 176 

177 Un arranque exitoso no valida la ruta de inferencia, porque las credenciales de instancia de Amazon Bedrock y la Plataforma de Agentes de Google Cloud se resuelven en la primera solicitud, no al arrancar.177 El arranque es de cierre seguro para la configuración, la conexión de Postgres, el descubrimiento OIDC y la construcción del cliente upstream. Si alguno de esos es inaccesible o está mal configurado, la puerta de enlace sale con un error en lugar de servir tráfico en un estado degradado.

178 

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

178 180 

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

180 182 

181 ```text theme={null}183 ```text theme={null}

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

183 [gateway] 2026-06-10T17:03:21.395Z info waiting for migration lock (another replica may be migrating; check pg_locks for key 6775156 if this persists)185 [gateway] 2026-06-10T17:03:21.395Z info esperando bloqueo de migración (otra réplica puede estar migrando; verifique pg_locks para la clave 6775156 si esto persiste)

184 [gateway] 2026-06-10T17:03:21.408Z info migration 1 applied186 [gateway] 2026-06-10T17:03:21.408Z info migración 1 aplicada

185 …187 …

186 [gateway] 2026-06-10T17:03:21.431Z info migration 6 applied188 [gateway] 2026-06-10T17:03:21.431Z info migración 6 aplicada

187 [gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080189 [gateway] 2026-06-10T17:03:21.512Z info claude gateway escuchando en http://0.0.0.0:8080

188 ```190 ```

189 191 

190 La puerta de enlace también registra una advertencia de que `access_control.allow_cidrs` está vacío. Eso es lo esperado aquí, porque nada limita qué direcciones de cliente sirve la puerta de enlace hasta que establezca una lista de permitidos. La [referencia `access_control`](/docs/es/claude-apps-gateway-config#http-tuning) tiene los rangos recomendados.192 La puerta de enlace también registra una advertencia de que `access_control.allow_cidrs` está vacío. Eso es lo esperado aquí, porque nada limita qué direcciones de cliente sirve la puerta de enlace hasta que establezca una lista de permitidos. La [referencia `access_control`](/docs/es/claude-apps-gateway-config#http-tuning) tiene los rangos recomendados.


198 200 

199 Corrija y reinicie.201 Corrija y reinicie.

200 202 

201 Si ya tiene una entrada que termina TLS, omita Compose y ejecute el binario directamente con `claude gateway --config gateway.yaml`. Establezca `public_url` en el origen de la entrada y vincule `listen` a una dirección de loopback o interna del clúster.203 Si ya tiene una entrada que termina TLS, omita Compose y ejecute el binario directamente con `claude gateway --config gateway.yaml`. Establezca `public_url` en el origen de la entrada y enlace `listen` a una dirección loopback o interna del clúster.

202 </Step>204 </Step>

203 205 

204 <Step title="Verifique la superficie de autenticación">206 <Step title="Verificar la superficie de autenticación">

205 Tres verificaciones confirman que la puerta de enlace puede autenticar a un usuario real antes de entregársela a un desarrollador.207 Tres comprobaciones confirman que la puerta de enlace puede autenticar a un usuario real antes de compartirla con un desarrollador.

206 208 

207 Los ejemplos utilizan la URL pública de la puerta de enlace; para la configuración local de Compose sin una entrada, sustituya `http://localhost:8080` en las dos primeras verificaciones. La tercera verificación abre `verification_uri_complete`, que se construye a partir de `public_url`, por lo que para Compose local establezca `public_url: http://localhost:8080` en `gateway.yaml`, y agregue `http://localhost:8080/oauth/callback` como un segundo URI de redirección en el cliente OAuth del paso 1, porque la puerta de enlace construye el `redirect_uri` de IdP a partir de `public_url`. El enlace de verificación luego se abre en su navegador local.209 Los ejemplos utilizan la URL pública de la puerta de enlace; para la configuración local de Compose sin una entrada, sustituya `http://localhost:8080` en las dos primeras comprobaciones. La tercera comprobación abre `verification_uri_complete`, que se construye a partir de `public_url`, por lo que para Compose local establezca `public_url: http://localhost:8080` en `gateway.yaml` y agregue `http://localhost:8080/oauth/callback` como un segundo URI de redirección en el cliente OAuth del paso 1, porque la puerta de enlace construye el `redirect_uri` de IdP a partir de `public_url`. El enlace de verificación se abre en su navegador local.

208 210 

209 En Windows PowerShell, ejecute `curl.exe`; el `curl` simple es un alias para `Invoke-WebRequest` y rechaza estas banderas.211 En Windows PowerShell, ejecute `curl.exe`; el `curl` simple es un alias para `Invoke-WebRequest` y rechaza estas banderas.

210 212 

211 Primero, obtenga el documento de descubrimiento, que confirma que la puerta de enlace está activa, la configuración es válida, y todas las verificaciones de arranque pasaron:213 Primero, obtenga el documento de descubrimiento, que confirma que la puerta de enlace está activa, la configuración es válida y todas las comprobaciones de arranque pasaron:

212 214 

213 ```bash theme={null}215 ```bash theme={null}

214 curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq216 curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq


225 227 

226 La respuesta incluye campos adicionales, como `response_types_supported` y `scopes_supported`.228 La respuesta incluye campos adicionales, como `response_types_supported` y `scopes_supported`.

227 229 

228 Segundo, solicite una autorización de dispositivo, que confirma que el flujo de inicio de sesión del dispositivo funciona y Postgres es accesible y escribible:230 Segundo, solicite una autorización de dispositivo, que confirma que el flujo de inicio de sesión del dispositivo funciona y que Postgres es accesible y escribible:

229 231 

230 ```bash theme={null}232 ```bash theme={null}

231 curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq233 curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq


242 }244 }

243 ```245 ```

244 246 

245 Tercero, pruebe la rama del navegador abriendo `verification_uri_complete` en un navegador y confirmando el código. Debería ser redirigido a la página de inicio de sesión de su IdP, y después de iniciar sesión, aterrizar de nuevo en la puerta de enlace con una confirmación de inicio de sesión.247 Tercero, pruebe la rama del navegador abriendo `verification_uri_complete` en un navegador y confirmando el código. Debería ser redirigido a la página de inicio de sesión de su IdP y, después de iniciar sesión, volver a la puerta de enlace con una confirmación de inicio de sesión.

246 248 

247 Use la primera verificación fallida para localizar el problema:249 Use la primera comprobación fallida para localizar el problema:

248 250 

249 * **Primera verificación falla**: el arranque no se completó; verifique stderr251 * **La primera comprobación falla**: el arranque no se completó; verifique stderr

250 * **Segunda verificación falla**: Postgres no es accesible desde la puerta de enlace o el rol no puede escribir; verifique la cadena de conexión y los permisos252 * **La segunda comprobación falla**: Postgres no es accesible desde la puerta de enlace o el rol no puede escribir; verifique la cadena de conexión y los permisos

251 * **Tercera verificación no llega al IdP**: verifique que el URI de redirección de IdP coincida exactamente con `https://<gateway>/oauth/callback`253 * **La tercera comprobación no llega al IdP**: verifique que el URI de redirección de IdP coincida exactamente con `https://<gateway>/oauth/callback`

252 * **Tercera verificación llega al IdP pero rebota con un error**: lea el registro de auditoría de la puerta de enlace, que registra cada rechazo de autenticación con la razón, como `email domain not allowed`254 * **La tercera comprobación llega al IdP pero rebota con un error**: lea el registro de auditoría de la puerta de enlace, que registra cada rechazo de autenticación con el motivo, como `email domain not allowed`

253 </Step>255 </Step>

254 256 

255 <Step title="Inicie sesión de un desarrollador">257 <Step title="Iniciar sesión de un desarrollador">

256 Este último paso ocurre en una máquina de desarrollador, no en el servidor. Establezca `forceLoginMethod` en `"gateway"` y `forceLoginGatewayUrl` en la `public_url` de su puerta de enlace en el [archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) de esa máquina, luego ejecute `/login`, presione Intro en la pantalla **Cloud gateway**, y complete el inicio de sesión del navegador. [Establezca la URL de la puerta de enlace](#set-the-gateway-url) a continuación cubre la distribución de ambas claves a cada máquina de desarrollador.258 Este último paso ocurre en una máquina de desarrollador, no en el servidor. Establezca `forceLoginMethod` en `"gateway"` y `forceLoginGatewayUrl` en el `public_url` de su puerta de enlace en el [archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) de esa máquina, luego ejecute `/login`, presione Intro en la pantalla **Cloud gateway** y complete el inicio de sesión del navegador. [Establecer la URL de la puerta de enlace](#set-the-gateway-url) a continuación cubre la distribución de ambas claves a cada máquina de desarrollador.

257 </Step>259 </Step>

258</Steps>260</Steps>

259 261 


452 454 

453Seis configuraciones suministradas por el principal pasan el filtro incluso con los cinco bloqueos establecidos. Bajo la configuración de primer ganador predeterminada, el valor de administrador que bloquea el del principal es el de la fuente de administrador de mayor prioridad, excepto para `allowedMcpServers` mientras el [bloqueo de servidor MCP](#lock-behavior-across-sources) esté activado. Bajo la opción de participación de fusión `managedSourcesBehavior`, [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice qué valor de fuente se aplica en su lugar.455Seis configuraciones suministradas por el principal pasan el filtro incluso con los cinco bloqueos establecidos. Bajo la configuración de primer ganador predeterminada, el valor de administrador que bloquea el del principal es el de la fuente de administrador de mayor prioridad, excepto para `allowedMcpServers` mientras el [bloqueo de servidor MCP](#lock-behavior-across-sources) esté activado. Bajo la opción de participación de fusión `managedSourcesBehavior`, [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice qué valor de fuente se aplica en su lugar.

454 456 

455* **`forceLoginOrgUUID`**: Claude Code honra un valor suministrado por el principal cuando la fuente de administrador de mayor prioridad no establece un UUID de organización. El inicio de sesión de la puerta de enlace no verifica esta clave, por lo que importa solo para flotas que también usan inicios de sesión de Anthropic de primera parte. Un UUID de organización en la fuente de administrador de mayor prioridad bloquea el valor del principal y es el que Claude Code aplica, por lo que establezca `forceLoginOrgUUID` allí.457* **`forceLoginOrgUUID`**: Claude Code honra un valor suministrado por el principal cuando la fuente de administrador de mayor prioridad no establece un UUID de organización. El inicio de sesión de la puerta de enlace no verifica esta clave. Un UUID de organización en la fuente de administrador de mayor prioridad bloquea el valor del principal y es el que Claude Code aplica.

456* **`allowedMcpServers`**: Claude Code honra una lista de permitidos suministrada por el principal cuando ninguna lista de administrador está en vigor. `allowManagedMcpServersOnly` no la bloquea, porque el bloqueo aplica cualquier lista que gane como el valor administrado, incluida una lista suministrada por el principal cuando ninguna fuente de administrador suministra una. Una lista en la fuente de administrador de mayor prioridad bloquea la del principal y es la lista que Claude Code aplica, por lo que establezca `allowedMcpServers` allí, junto al bloqueo. Antes de v2.1.223, un valor para cualquiera de las claves en cualquier fuente de administrador bloqueaba la del principal.458* **`allowedMcpServers`**: Claude Code honra una lista de permitidos suministrada por el principal cuando ninguna lista de administrador está en vigor. `allowManagedMcpServersOnly` no la bloquea, porque el bloqueo aplica cualquier lista que gane como el valor administrado, incluida una lista suministrada por el principal cuando ninguna fuente de administrador suministra una. Una lista en la fuente de administrador de mayor prioridad bloquea la del principal y es la lista que Claude Code aplica, por lo que establezca `allowedMcpServers` allí, junto al bloqueo. Antes de v2.1.223, un valor para cualquiera de las claves en cualquier fuente de administrador bloqueaba la del principal.

457* **`availableModels`**: Claude Code honra una lista de modelos suministrada por el principal cuando la fuente administrada ganadora no establece una. Si su flota restringe modelos, establezca `availableModels` en la fuente ganadora.459* **`availableModels`**: Claude Code honra una lista de modelos suministrada por el principal cuando la fuente administrada ganadora no establece una. Si su flota restringe modelos, establezca `availableModels` en la fuente ganadora.

458* **`strictKnownMarketplaces`**: Claude Code honra una lista de permitidos de mercado de plugins suministrada por el principal cuando la fuente administrada ganadora no establece una. Si su flota restringe mercados, establezca `strictKnownMarketplaces` en la fuente ganadora. Requiere Claude Code v2.1.282 o posterior.460* **`strictKnownMarketplaces`**: Claude Code honra una lista de permitidos de mercado de plugins suministrada por el principal cuando la fuente administrada ganadora no establece una. Si su flota restringe mercados, establezca `strictKnownMarketplaces` en la fuente ganadora. Requiere Claude Code v2.1.282 o posterior.

Details

170| `password` | No | Credencial de base de datos. Establézcalo aquí en lugar de en `postgres_url` para que la credencial se mantenga fuera de la URL. Acepta cualquier carácter y tiene prioridad sobre las credenciales de URL. |170| `password` | No | Credencial de base de datos. Establézcalo aquí en lugar de en `postgres_url` para que la credencial se mantenga fuera de la URL. Acepta cualquier carácter y tiene prioridad sobre las credenciales de URL. |

171| `max_connections` | No | Tamaño del grupo de conexiones de Postgres por réplica. Predeterminado `5`, que es conservador y amigable con bases de datos compartidas. Con [límites de gasto](#admin) habilitados, la ruta activa realiza algunas operaciones por solicitud de inferencia, así que aumente para una base de datos dedicada bajo carga, y mantenga réplicas × esto por debajo de `max_connections` de la base de datos. |171| `max_connections` | No | Tamaño del grupo de conexiones de Postgres por réplica. Predeterminado `5`, que es conservador y amigable con bases de datos compartidas. Con [límites de gasto](#admin) habilitados, la ruta activa realiza algunas operaciones por solicitud de inferencia, así que aumente para una base de datos dedicada bajo carga, y mantenga réplicas × esto por debajo de `max_connections` de la base de datos. |

172| `connect_timeout_seconds` | No | Segundos que la puerta de enlace espera cuando abre una conexión de Postgres. Un número entero de `1` a `60`, predeterminado `5`. Aumente si los intentos de conexión agotan el tiempo de espera cuando comienza una nueva instancia de puerta de enlace. Requiere Claude Code v2.1.274 o posterior en el servidor de la puerta de enlace. Las versiones anteriores se niegan a iniciar cuando se establece la clave. |172| `connect_timeout_seconds` | No | Segundos que la puerta de enlace espera cuando abre una conexión de Postgres. Un número entero de `1` a `60`, predeterminado `5`. Aumente si los intentos de conexión agotan el tiempo de espera cuando comienza una nueva instancia de puerta de enlace. Requiere Claude Code v2.1.274 o posterior en el servidor de la puerta de enlace. Las versiones anteriores se niegan a iniciar cuando se establece la clave. |

173| `readiness_grace_seconds` | No | Cuántos segundos `/readyz` sigue reportando listo después de que Postgres deja de responder. Un número entero de `0` a `3600`, predeterminado `0`. Consulte [Comportamiento de interrupción](/docs/es/claude-apps-gateway-deploy#outage-behavior) para saber cómo elegir un valor. Requiere Claude Code v2.1.282 o posterior en el servidor de la puerta de enlace. Las versiones anteriores se niegan a iniciar cuando se establece la clave. |

173 174 

174Para desarrollo local, apunte `postgres_url` a un contenedor Postgres desechable, por ejemplo `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.175Para desarrollo local, apunte `postgres_url` a un contenedor Postgres desechable, por ejemplo `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.

175 176 


947* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`948* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

948* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`949* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

949 950 

951Cuando agrega [sus propias etiquetas](#add-your-own-labels), el gateway también inserta `OTEL_RESOURCE_ATTRIBUTES`.

952 

950Antes de Claude Code v2.1.265 en el servidor de gateway, el gateway insertaba los tres selectores de exportador como `otlp`, incluido para señales que ningún destino optó.953Antes de Claude Code v2.1.265 en el servidor de gateway, el gateway insertaba los tres selectores de exportador como `otlp`, incluido para señales que ningún destino optó.

951 954 

952El punto final insertado se construye a partir de la URL pública, por lo que las métricas y registros no necesitan configuración OTEL de desarrolladores o políticas.955El punto final insertado se construye a partir de la URL pública, por lo que las métricas y registros no necesitan configuración OTEL de desarrolladores o políticas.


964 967 

965Tanto las codificaciones OTLP de protobuf como JSON se retransmiten, y cualquier backend compatible con OpenTelemetry funciona como destino.968Tanto las codificaciones OTLP de protobuf como JSON se retransmiten, y cualquier backend compatible con OpenTelemetry funciona como destino.

966 969 

970<h4 id="add-your-own-labels">

971 Agregar sus propias etiquetas

972</h4>

973 

974Para poner etiquetas fijas como `service.namespace` o `deployment.environment.name` en la telemetría de sesiones conectadas a través del gateway, establezca `telemetry.resource_attributes`. Cada etiqueta es un atributo de recurso de OpenTelemetry, y cada destino recibe las mismas etiquetas.

975 

976Las sesiones obtienen las etiquetas solo cuando también establece `telemetry.forward_to` y `listen.public_url`. Este ejemplo agrega dos etiquetas:

977 

978```yaml theme={null}

979telemetry:

980 forward_to:

981 - url: https://otel-collector.internal.example.com

982 resource_attributes:

983 service.namespace: claude

984 deployment.environment.name: prod

985```

986 

987El gateway se niega a iniciar cuando una etiqueta rompe una de estas reglas, y el error de inicio nombra la etiqueta:

988 

989* Los nombres usan solo letras, dígitos, `.`, `_` y `-`

990* Los nombres no están reservados. Comparados en cualquier caso de letra, los nombres reservados son todo lo que comienza con `user.`, `enduser.` o `identity.`, más `service.name`, `service.version`, `claude.deployment_mode`, `host.arch`, `os.type`, `os.version` y `wsl.version`

991* Los valores son ASCII imprimible no vacío sin espacio y ninguno de `, ; = \ " %`

992* Los valores tienen como máximo 255 caracteres tal como los cuenta el gateway después de la codificación en porcentaje, por lo que `/`, `:` y `@` cada uno cuentan como tres

993* Los valores son texto, por lo que cite un número, `true` o `false`

994 

995Necesita Claude Code v2.1.281 o posterior en el servidor de gateway para establecer `telemetry.resource_attributes`. Un gateway anterior se niega a iniciar cuando encuentra la clave. Actualice cada réplica antes de agregar la clave y elimine la clave antes de revertir a una versión anterior.

996 

997Las sesiones de terminal conectadas a través de `/login` reciben las etiquetas como `OTEL_RESOURCE_ATTRIBUTES`, insertadas con las otras [variables de telemetría](#telemetry). Si establece `OTEL_RESOURCE_ATTRIBUTES` en el bloque `env` de una política, las sesiones de terminal que esa política coincide obtienen ese valor en lugar de las etiquetas. Claude Desktop recibe las etiquetas del gateway junto a `user.email` y los otros atributos de identidad.

998 

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

1000 

967<h4 id="export-directly-to-your-collector">1001<h4 id="export-directly-to-your-collector">

968 Exportar directamente a su recopilador1002 Exportar directamente a su recopilador

969</h4>1003</h4>


1034 1068 

1035El bloque `load_test_mode` le permite hacer pruebas de carga en un gateway sin llamar a un proveedor de modelos. Mientras está activado, el gateway construye y firma cada solicitud de proveedor como de costumbre, la descarta en lugar de enviarla, y transmite una respuesta enlatada a través de su ruta de respuesta normal. La respuesta es texto de relleno que comienza con una oración que dice que es enlatada.1069El bloque `load_test_mode` le permite hacer pruebas de carga en un gateway sin llamar a un proveedor de modelos. Mientras está activado, el gateway construye y firma cada solicitud de proveedor como de costumbre, la descarta en lugar de enviarla, y transmite una respuesta enlatada a través de su ruta de respuesta normal. La respuesta es texto de relleno que comienza con una oración que dice que es enlatada.

1036 1070 

1037Requiere v2.1.283 o posterior. Las versiones anteriores se niegan a iniciar cuando la clave está establecida, por lo que actualice cada réplica antes de agregar el bloque y elimínelo antes de revertir.1071Requiere Claude Code v2.1.282 o posterior en el servidor de gateway. Las versiones anteriores se niegan a iniciar cuando encuentran la clave. Actualice cada réplica antes de agregar el bloque y elimine el bloque antes de revertir.

1038 1072 

1039El ejemplo a continuación activa el modo con los valores predeterminados, una respuesta de aproximadamente 750 tokens de salida transmitida durante aproximadamente 10 segundos:1073El ejemplo a continuación activa el modo con los valores predeterminados, una respuesta de aproximadamente 750 tokens de texto transmitida durante aproximadamente 10 segundos:

1040 1074 

1041```yaml theme={null}1075```yaml theme={null}

1042load_test_mode:1076load_test_mode:


1053 1087 

1054Una prueba de carga en este modo cubre el gateway, su Postgres y todo lo que está frente al gateway. No cubre los límites, velocidad o ruta de red del proveedor.1088Una prueba de carga en este modo cubre el gateway, su Postgres y todo lo que está frente al gateway. No cubre los límites, velocidad o ruta de red del proveedor.

1055 1089 

1056Mientras el modo está activado, una solicitud puede llevar un encabezado `x-load-test-user` que contenga un número entero de hasta siete dígitos, y el gateway cuenta cada número como un desarrollador separado con el correo electrónico y grupos del desarrollador cuyo token vino con la solicitud. Asigne a la implementación de prueba de carga su propia base de datos vacía, porque el gateway se niega a iniciar con el modo activado contra una base de datos en la que algún desarrollador ya ha gastado algo.1090Ninguna solicitud de modelo se envía al proveedor, por lo que la CPU de una réplica por solicitud es una estimación y se lee más baja que la producción, que también cifra su tráfico al proveedor. Confirme un recuento de réplica con un pequeño piloto contra el proveedor real. Antes de v2.1.283, la estimación se lee mucho más baja.

1091 

1092Mientras el modo está activado, una solicitud puede llevar un encabezado `x-load-test-user` que contenga un número entero de hasta siete dígitos. El gateway cuenta cada número como un desarrollador separado, con el correo electrónico y grupos del desarrollador cuyo token vino con la solicitud.

1093 

1094Asigne a la implementación de prueba de carga su propia base de datos vacía, porque el gateway se niega a iniciar con el modo activado contra una base de datos en la que algún desarrollador ya ha gastado algo.

1057 1095 

1058<Warning>1096<Warning>

1059 Nunca active esto para un gateway que los desarrolladores usan. Cada solicitud obtiene la respuesta enlatada y ningún modelo se llama. El gateway registra una advertencia `load_test_mode is on` al iniciar y marca cada evento de auditoría [`inference`](/docs/es/claude-apps-gateway-deploy#logs) con `load_test: true` mientras el modo está activado.1097 Nunca active esto para un gateway que los desarrolladores usan. Cada solicitud obtiene la respuesta enlatada y ningún modelo se llama. El gateway registra una advertencia `load_test_mode is on` al iniciar y marca cada evento de auditoría [`inference`](/docs/es/claude-apps-gateway-deploy#logs) con `load_test: true` mientras el modo está activado.


1111 postgres_url: ${GATEWAY_POSTGRES_URL}1149 postgres_url: ${GATEWAY_POSTGRES_URL}

1112 # max_connections: 51150 # max_connections: 5

1113 # connect_timeout_seconds: 51151 # connect_timeout_seconds: 5

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

1114 1153 

1115# Habilita /v1/organizations/spend_limits (refleja la API de administrador de Anthropic)1154# Habilita /v1/organizations/spend_limits (refleja la API de administrador de Anthropic)

1116# y cumplimiento de gasto por desarrollador en /v1/messages. Omita para deshabilitar.1155# y cumplimiento de gasto por desarrollador en /v1/messages. Omita para deshabilitar.


1238 1277 

1239Para Claude Desktop, establezca la clave `bootstrapUrl` en la propia [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop en `<listen.public_url>/user/bootstrap`. El flujo de inicio de sesión y la política por grupo coinciden entonces con los del CLI una vez que una política se acepta del lado del servidor con una clave `desktop`; sin la aceptación, `/user/bootstrap` devuelve 404. Consulte [Superposición de Claude Desktop](#claude-desktop-overlay) para la mitad del lado del servidor.1278Para Claude Desktop, establezca la clave `bootstrapUrl` en la propia [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop en `<listen.public_url>/user/bootstrap`. El flujo de inicio de sesión y la política por grupo coinciden entonces con los del CLI una vez que una política se acepta del lado del servidor con una clave `desktop`; sin la aceptación, `/user/bootstrap` devuelve 404. Consulte [Superposición de Claude Desktop](#claude-desktop-overlay) para la mitad del lado del servidor.

1240 1279 

1241Claude Code honra [`forceLoginGatewayUrl`](/docs/es/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/es/settings-reference#gatewayinternalnetworks), y el valor `"gateway"` de [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) solo desde una fuente administrada en la máquina: `managed-settings.json`, la plist de macOS o el registro HKLM de Windows, o un asistente de política. Un desarrollador que los establezca en su propio `~/.claude/settings.json` no tiene efecto, y tampoco lo hace establecerlos en la carga útil de la puerta de enlace.1280Claude Code honra [`forceLoginGatewayUrl`](/docs/es/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/es/settings-reference#gatewayinternalnetworks), y el valor `"gateway"` de [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) solo desde una fuente administrada en la máquina: `managed-settings.json`, la plist de macOS o el registro HKLM de Windows, o un asistente de política. Establecerlos en el `~/.claude/settings.json` propio de un desarrollador no configura el inicio de sesión de la puerta de enlace, y tampoco lo hace establecerlos en la carga útil de la puerta de enlace.

1281 

1282Deje `forceLoginMethod` y `forceLoginOrgUUID` fuera de la carga útil. Claude Code aún lee ambas claves de la carga útil para su verificación de credenciales de inicio, por lo que un desarrollador que mantenga una credencial emitida por Anthropic en la máquina obtiene la salida de inicio descrita en [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) incluso después de que inicie sesión.

1242 1283 

1243<h2 id="related">1284<h2 id="related">

1244 Relacionado1285 Relacionado

Details

181 Salud181 Salud

182</h3>182</h3>

183 183 

184La puerta de enlace sirve `GET /healthz` como una sonda de vivacidad y `GET /readyz` como una sonda de preparación; `/readyz` verifica que el almacén sea alcanzable. Ambas están exentas de `access_control.allow_cidrs`, así que los sondeos siguen funcionando en un oyente bloqueado.184La puerta de enlace sirve `GET /healthz` como una sonda de vivacidad y `GET /readyz` como una sonda de preparación. `/readyz` verifica que el almacén sea alcanzable. Si establece [`store.readiness_grace_seconds`](/docs/es/claude-apps-gateway-config#store), `/readyz` sigue reportando listo durante hasta esa cantidad de segundos después de que el almacén deja de responder.

185 

186Ambos extremos están exentos de `access_control.allow_cidrs`, así que los sondeos siguen funcionando en un oyente bloqueado.

185 187 

186El documento de descubrimiento de OAuth en `/.well-known/oauth-authorization-server` también devuelve `200` solo después de que se cargue la configuración, descubrimiento OIDC, construcción de cliente ascendente y migración de Postgres tengan éxito, así que funciona como una verificación de arranque de extremo a extremo.188El documento de descubrimiento de OAuth en `/.well-known/oauth-authorization-server` también devuelve `200` solo después de que se cargue la configuración, descubrimiento OIDC, construcción de cliente ascendente y migración de Postgres tengan éxito, así que funciona como una verificación de arranque de extremo a extremo.

187 189 


217* **Sesiones existentes**: los tokens portadores se validan localmente con el secreto JWT, las actualizaciones de sesión no tocan el almacén, y el proceso de puerta de enlace aún puede servir inferencia219* **Sesiones existentes**: los tokens portadores se validan localmente con el secreto JWT, las actualizaciones de sesión no tocan el almacén, y el proceso de puerta de enlace aún puede servir inferencia

218* **Nuevos inicios de sesión**: fallan hasta que Postgres se recupere, porque el flujo de dispositivo y sus contadores de límite de velocidad viven en Postgres220* **Nuevos inicios de sesión**: fallan hasta que Postgres se recupere, porque el flujo de dispositivo y sus contadores de límite de velocidad viven en Postgres

219* **[Cumplimiento de límite de gasto](/docs/es/claude-apps-gateway-spend-limits#postgres-availability)**: falla abierto de forma predeterminada durante la interrupción, así que la inferencia aún fluye; cámbielo a falla cerrada si preferiría bloquear que ejecutar sin medidor221* **[Cumplimiento de límite de gasto](/docs/es/claude-apps-gateway-spend-limits#postgres-availability)**: falla abierto de forma predeterminada durante la interrupción, así que la inferencia aún fluye; cámbielo a falla cerrada si preferiría bloquear que ejecutar sin medidor

220* **Preparación**: `/readyz` reporta no listo durante la interrupción, así que los orquestadores que cierren tráfico en preparación eliminan cada réplica de rotación a la vez. En esa topología todo el tráfico, incluida la inferencia que la puerta de enlace podría servir, falla en el equilibrador de carga hasta que Postgres se recupere. La sonda de vivacidad en `/healthz` sigue pasando, así que las réplicas no se reinician. Apunte la sonda de preparación a `/healthz` en su lugar si preferiría que los desarrolladores con sesión iniciada sigan trabajando a través de una interrupción de almacén; el costo es que los nuevos inicios de sesión fallan contra una réplica que aún reporta lista.222* **Preparación**: por defecto `/readyz` reporta no listo tan pronto como Postgres sea inalcanzable, así que cada réplica falla su verificación de preparación a la vez. Donde el tráfico solo llega a réplicas que pasan la verificación, todo el tráfico, incluida la inferencia que la puerta de enlace podría servir, falla hasta que Postgres se recupere. La sonda de vivacidad en `/healthz` sigue pasando durante todo.

223 

224Si su IdP se cae, las sesiones existentes funcionan hasta `ttl_hours` y los nuevos inicios de sesión fallan. Una actualización de sesión obtiene una respuesta de reintentar y funciona una vez que el IdP está de vuelta. Establezca un `ttl_hours` más largo si su IdP tiene ventanas de mantenimiento frecuentes.

225 

226<h4 id="readiness-grace-period">

227 Período de gracia de preparación

228</h4>

229 

230Para mantener a los desarrolladores con sesión iniciada trabajando a través de una interrupción corta de Postgres, como una conmutación por error de base de datos, establezca [`store.readiness_grace_seconds`](/docs/es/claude-apps-gateway-config#store) a más tiempo que lo que tarda la conmutación por error, por ejemplo `300`. Con límites de gasto activados y el comportamiento de falla abierta predeterminado, las solicitudes a través de una réplica que permanece lista no tienen medidor hasta que Postgres se recupere, así que mantenga el valor tan bajo como cubre su conmutación por error. Si establece [`enforcement.fail_closed_on_error: true`](/docs/es/claude-apps-gateway-config#enforcement), la puerta de enlace rechaza la inferencia de desarrolladores con sesión iniciada con el mensaje `429` `spend limit unavailable` hasta que Postgres se recupere, incluso mientras las réplicas aún pasan su verificación de preparación.

231 

232La configuración requiere Claude Code v2.1.282 o posterior en el servidor de puerta de enlace. Una puerta de enlace anterior se niega a iniciar cuando encuentra la clave, así que actualice cada réplica antes de agregarla. [Upgrades](#upgrades) cubre la reversión.

221 233 

222Si su IdP se cae, las sesiones existentes funcionan hasta `ttl_hours`, los nuevos inicios de sesión fallan, y una actualización de sesión obtiene una respuesta de reintentar y funciona una vez que el IdP está de vuelta. Establezca un `ttl_hours` más largo si su IdP tiene ventanas de mantenimiento frecuentes.234Si apunta la sonda de preparación a `/healthz` en su lugar, las réplicas también siguen pasándola a través de una interrupción, pero `/healthz` nunca reporta no listo, así que una réplica cuya conexión de Postgres no se recupera sigue pasando también.

223 235 

224<h3 id="jwt-secret-rotation">236<h3 id="jwt-secret-rotation">

225 Rotación de secreto JWT237 Rotación de secreto JWT


357| Las solicitudes de un desarrollador fallan con `Not signed in to the Cloud gateway — run /login.` | La configuración administrada de la máquina establece `forceLoginMethod: "gateway"` o `forceLoginGatewayUrl`, y la sesión no tiene inicio de sesión de puerta de enlace. Un inicio de sesión de claude.ai sobrante no satisface el requisito. | Haga que el desarrollador ejecute `/login` y complete el inicio de sesión de la puerta de enlace. Consulte también [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |369| Las solicitudes de un desarrollador fallan con `Not signed in to the Cloud gateway — run /login.` | La configuración administrada de la máquina establece `forceLoginMethod: "gateway"` o `forceLoginGatewayUrl`, y la sesión no tiene inicio de sesión de puerta de enlace. Un inicio de sesión de claude.ai sobrante no satisface el requisito. | Haga que el desarrollador ejecute `/login` y complete el inicio de sesión de la puerta de enlace. Consulte también [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

358| Claude Desktop reporta que su configuración de arranque no se pudo obtener | `/user/bootstrap` devolvió 404: la política que coincide con el usuario no lleva una clave `desktop`, o ninguna política coincidió. El registro de auditoría de la puerta de enlace registra cada rechazo como `desktop_bootstrap.denied` con la razón. | Agregue un bloque `desktop` a la política que coincide con el usuario, o a la capa base `match: {}`; un `desktop: {}` vacío es suficiente. Consulte [superposición de Claude Desktop](/docs/es/claude-apps-gateway-config#claude-desktop-overlay). |370| Claude Desktop reporta que su configuración de arranque no se pudo obtener | `/user/bootstrap` devolvió 404: la política que coincide con el usuario no lleva una clave `desktop`, o ninguna política coincidió. El registro de auditoría de la puerta de enlace registra cada rechazo como `desktop_bootstrap.denied` con la razón. | Agregue un bloque `desktop` a la política que coincide con el usuario, o a la capa base `match: {}`; un `desktop: {}` vacío es suficiente. Consulte [superposición de Claude Desktop](/docs/es/claude-apps-gateway-config#claude-desktop-overlay). |

359| El inicio muestra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La compilación de Claude Code instalada es anterior al soporte de puerta de enlace | Haga que el desarrollador actualice Claude Code a una versión que incluya soporte de puerta de enlace en la nube |371| El inicio muestra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | La compilación de Claude Code instalada es anterior al soporte de puerta de enlace | Haga que el desarrollador actualice Claude Code a una versión que incluya soporte de puerta de enlace en la nube |

360| El inicio sale con `Administrator policy requires a Cloud gateway sign-in on this machine` | El entorno del desarrollador establece `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, sus configuraciones configuran un [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), o una clave API de un inicio de sesión anterior de Claude Console aún está guardada | Haga que el desarrollador borre cada uno que se aplique: desestablezca la variable, elimine la entrada `apiKeyHelper`, o ejecute `claude auth logout` para eliminar la clave guardada. Luego haga que inicie `claude` e inicie sesión con `/login`. Consulte también [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |372| El inicio sale con `Administrator policy requires a Cloud gateway sign-in on this machine` | El entorno del desarrollador establece `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, sus configuraciones configuran un [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper), o una clave API de un inicio de sesión anterior de Claude Console aún está guardada | Haga que el desarrollador borre cada uno que se aplique: desestablezca la variable, elimine la entrada `apiKeyHelper`, o ejecute `claude auth logout` para eliminar la clave guardada. Una sesión que selecciona un proveedor de nube con `CLAUDE_CODE_USE_*` luego comienza sin inicio de sesión; para todas las otras sesiones, haga que comiencen `claude` e inicien sesión con `/login`. Consulte también [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

361| El inicio o `/login` reporta `Claude Code may not be enabled for your organization` después de un 403 en la carga de configuraciones administradas | La puerta de enlace, o algo frente a ella, respondió la solicitud `/managed/settings` con 403. La ruta de configuraciones de la puerta de enlace nunca responde 403. El estado proviene de las verificaciones de IP de [`access_control`](/docs/es/claude-apps-gateway-config#http-tuning) o de un proxy o WAF frente a la puerta de enlace. El registro de auditoría registra una negación de verificación de IP como `access.denied` con la razón. El desarrollador permanece conectado. | Verifique el registro de auditoría para `access.denied` en el momento del fallo y corrija las listas de `access_control` o el front end, luego haga que el desarrollador inicie `claude` de nuevo |373| El inicio o `/login` reporta `Claude Code may not be enabled for your organization` después de un 403 en la carga de configuraciones administradas | La puerta de enlace, o algo frente a ella, respondió la solicitud `/managed/settings` con 403. La ruta de configuraciones de la puerta de enlace nunca responde 403. El estado proviene de las verificaciones de IP de [`access_control`](/docs/es/claude-apps-gateway-config#http-tuning) o de un proxy o WAF frente a la puerta de enlace. El registro de auditoría registra una negación de verificación de IP como `access.denied` con la razón. El desarrollador permanece conectado. | Verifique el registro de auditoría para `access.denied` en el momento del fallo y corrija las listas de `access_control` o el front end, luego haga que el desarrollador inicie `claude` de nuevo |

362| CLI `/login`: `The gateway is limiting sign-in attempts right now`, o `Request failed with status code 429` en versiones anteriores. La página `/device` puede mostrar `Too many attempts` a desarrolladores que no han intentado antes | Se alcanzó el límite de velocidad de inicio de sesión por IP. Ya sea que `listen.trusted_proxies` no cubra el equilibrador de carga, por lo que cada desarrollador comparte su dirección, o muchos desarrolladores comparten una dirección de salida NAT o VPN. Los eventos de auditoría con `result: rate_limited` muestran los mismos uno o pocos valores de `client_ip`. | Establezca `listen.trusted_proxies` a los rangos de origen del equilibrador de carga primero, luego aumente `rate_limits` si los desarrolladores aún comparten direcciones. Consulte [Despliegues a gran escala](#large-rollouts). |374| CLI `/login`: `The gateway is limiting sign-in attempts right now`, o `Request failed with status code 429` en versiones anteriores. La página `/device` puede mostrar `Too many attempts` a desarrolladores que no han intentado antes | Se alcanzó el límite de velocidad de inicio de sesión por IP. Ya sea que `listen.trusted_proxies` no cubra el equilibrador de carga, por lo que cada desarrollador comparte su dirección, o muchos desarrolladores comparten una dirección de salida NAT o VPN. Los eventos de auditoría con `result: rate_limited` muestran los mismos uno o pocos valores de `client_ip`. | Establezca `listen.trusted_proxies` a los rangos de origen del equilibrador de carga primero, luego aumente `rate_limits` si los desarrolladores aún comparten direcciones. Consulte [Despliegues a gran escala](#large-rollouts). |

363| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | El nombre de host de la puerta de enlace se resuelve a al menos una dirección IP pública. Claude Code verifica cada dirección resuelta y requiere que cada una sea privada. Una causa común es un nombre de pila dual donde una familia se resuelve a una dirección pública, incluidos los equilibradores de carga de pila dual internos de AWS, que devuelven direcciones AAAA de rango público. | Haga que el nombre de la puerta de enlace se resuelva solo a direcciones privadas en máquinas de desarrolladores. Para un nombre de pila dual, suelte el registro de rango público o sirva un nombre DNS solo interno separado. Consulte el [requisito previo de red privada](/docs/es/claude-apps-gateway#prerequisites). Si la dirección es espacio de dirección pública que su organización posee y usa internamente, [declare ese bloque](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en su lugar. |375| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | El nombre de host de la puerta de enlace se resuelve a al menos una dirección IP pública. Claude Code verifica cada dirección resuelta y requiere que cada una sea privada. Una causa común es un nombre de pila dual donde una familia se resuelve a una dirección pública, incluidos los equilibradores de carga de pila dual internos de AWS, que devuelven direcciones AAAA de rango público. | Haga que el nombre de la puerta de enlace se resuelva solo a direcciones privadas en máquinas de desarrolladores. Para un nombre de pila dual, suelte el registro de rango público o sirva un nombre DNS solo interno separado. Consulte el [requisito previo de red privada](/docs/es/claude-apps-gateway#prerequisites). Si la dirección es espacio de dirección pública que su organización posee y usa internamente, [declare ese bloque](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en su lugar. |

Details

255 255 

256 store:256 store:

257 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}257 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}

258 # readiness_grace_seconds: 300 # mantenga pasando la verificación de salud

259 # a través de una conmutación por error de RDS

258 260 

259 upstreams:261 upstreams:

260 - provider: bedrock262 - provider: bedrock


423 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"425 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

424 ```426 ```

425 427 

426 El período de gracia de 60 segundos da a una tarea fría tiempo para extraer la imagen, conectarse al almacén y responder su primera verificación de salud antes de que ECS comience a contar fallos contra la implementación. La verificación de salud del grupo de destino en `GET /readyz` verifica que el almacén sea alcanzable, por lo que una tarea que no puede alcanzar Postgres nunca entra en rotación; consulte [Comportamiento de interrupción](/docs/es/claude-apps-gateway-deploy#outage-behavior) para el compromiso y la alternativa `/healthz`.428 El período de gracia de 60 segundos da a una tarea fría tiempo para extraer la imagen, conectarse al almacén y responder su primera verificación de salud antes de que ECS comience a contar fallos contra la implementación.

429 

430 La verificación de salud del grupo de destino en `GET /readyz` verifica que el almacén sea alcanzable, por lo que una tarea que no puede alcanzar Postgres nunca entra en rotación. Para mantener las tareas pasando la verificación a través de una interrupción breve de la base de datos como una conmutación por error de RDS, establezca `store.readiness_grace_seconds` como se describe en [Comportamiento de interrupción](/docs/es/claude-apps-gateway-deploy#outage-behavior), que también cubre la alternativa `/healthz`.

427 431 

428 Las tareas se ejecutan en subredes privadas sin IP pública, por lo que todo el tráfico saliente (a Bedrock, su IdP, Secrets Manager, ECR y CloudWatch Logs) va a través de la puerta de enlace NAT. Para mantener el tráfico de Bedrock fuera de la ruta pública, cree un endpoint de VPC de interfaz `bedrock-runtime` y apunte el `base_url` del upstream a él, como se muestra en la [referencia de upstream de Bedrock](/docs/es/claude-apps-gateway-config#amazon-bedrock); el IdP aún necesita salida a internet.432 Las tareas se ejecutan en subredes privadas sin IP pública, por lo que todo el tráfico saliente (a Bedrock, su IdP, Secrets Manager, ECR y CloudWatch Logs) va a través de la puerta de enlace NAT. Para mantener el tráfico de Bedrock fuera de la ruta pública, cree un endpoint de VPC de interfaz `bedrock-runtime` y apunte el `base_url` del upstream a él, como se muestra en la [referencia de upstream de Bedrock](/docs/es/claude-apps-gateway-config#amazon-bedrock); el IdP aún necesita salida a internet.

429 433 

Details

86 86 

87La consulta previa consulta Postgres con un tiempo de espera de dos segundos. Si el almacén es inaccesible o agota el tiempo de espera, la aplicación falla abierta de forma predeterminada: la solicitud continúa, la puerta de enlace registra una advertencia y la respuesta no lleva encabezados `anthropic-ratelimit-unified-*`. Establezca [`enforcement.fail_closed_on_error: true`](/docs/es/claude-apps-gateway-config#enforcement) para fallar cerrado en su lugar, que devuelve el mismo `429 billing_error` pero con el mensaje `spend limit unavailable` y sin período, hora de reinicio o encabezado `retry-after`. Fallar abierto evita que una interrupción del almacén se convierta en una interrupción de inferencia; fallar cerrado garantiza que no haya gasto sin medidor.87La consulta previa consulta Postgres con un tiempo de espera de dos segundos. Si el almacén es inaccesible o agota el tiempo de espera, la aplicación falla abierta de forma predeterminada: la solicitud continúa, la puerta de enlace registra una advertencia y la respuesta no lleva encabezados `anthropic-ratelimit-unified-*`. Establezca [`enforcement.fail_closed_on_error: true`](/docs/es/claude-apps-gateway-config#enforcement) para fallar cerrado en su lugar, que devuelve el mismo `429 billing_error` pero con el mensaje `spend limit unavailable` y sin período, hora de reinicio o encabezado `retry-after`. Fallar abierto evita que una interrupción del almacén se convierta en una interrupción de inferencia; fallar cerrado garantiza que no haya gasto sin medidor.

88 88 

89Fallar abierto solo ayuda mientras su equilibrador de carga u orquestador siga enrutando tráfico a la puerta de enlace. Consulte [Comportamiento de interrupción](/docs/es/claude-apps-gateway-deploy#outage-behavior) para `store.readiness_grace_seconds`, que mantiene las réplicas pasando su verificación de disponibilidad a través de una breve interrupción.

90 

89<h3 id="usage-warnings-in-claude-code">91<h3 id="usage-warnings-in-claude-code">

90 Advertencias de uso en Claude Code92 Advertencias de uso en Claude Code

91</h3>93</h3>

Details

55| Método | Cómo se conecta | Repositorios que las sesiones pueden alcanzar | Mejor para |55| Método | Cómo se conecta | Repositorios que las sesiones pueden alcanzar | Mejor para |

56| :- | :- | :- | :- |56| :- | :- | :- | :- |

57| **GitHub App** | Autorice la aplicación Claude GitHub durante la [incorporación web](/docs/es/web-quickstart) | Cualquier repositorio público, y repositorios privados en los que está instalada la aplicación Claude GitHub | Incorporación en navegador; equipos que desean [Correcciones automáticas](#auto-fix-pull-requests) |57| **GitHub App** | Autorice la aplicación Claude GitHub durante la [incorporación web](/docs/es/web-quickstart) | Cualquier repositorio público, y repositorios privados en los que está instalada la aplicación Claude GitHub | Incorporación en navegador; equipos que desean [Correcciones automáticas](#auto-fix-pull-requests) |

58| **`/web-setup`** | Ejecute `/web-setup` en su terminal para enviar su token local de CLI `gh` a su cuenta Claude | Cualquier repositorio al que pueda acceder su token `gh`, independientemente de si está instalada la aplicación | Desarrolladores individuales que ya usan `gh` |58| **`/web-setup`** | Ejecute `/web-setup` en su terminal para enviar su token local de CLI `gh` a su cuenta Claude | Cualquier repositorio al que pueda acceder su token `gh`, independientemente de si está instalada la aplicación Claude GitHub | Desarrolladores individuales que ya usan `gh` |

59 59 

60Instalar la aplicación Claude GitHub en un repositorio también habilita [Correcciones automáticas](#auto-fix-pull-requests) para solicitudes de extracción en él.60Instalar la aplicación Claude GitHub en un repositorio también habilita [Correcciones automáticas](#auto-fix-pull-requests) para solicitudes de extracción en él.

61 61 

62Los hilos en un [proyecto](/docs/es/claude-projects) necesitan que la aplicación esté instalada en cada repositorio que clonan, independientemente del método con el que se conectó. Consulte [Configurar acceso a GitHub](/docs/es/claude-projects#set-up-github-access).62Los hilos en un [proyecto](/docs/es/claude-projects) necesitan que la aplicación Claude GitHub esté instalada en cada repositorio que clonan, independientemente del método con el que se conectó. Consulte [Configurar acceso a GitHub](/docs/es/claude-projects#set-up-github-access).

63 

64En entornos alojados por Anthropic, sus credenciales de GitHub permanecen cifradas en los servidores de Anthropic y nunca entran en la máquina virtual de una sesión. Las operaciones de GitHub desde la máquina virtual se realizan a través del [proxy de GitHub](/docs/es/cloud-environments#github-proxy), que adjunta la credencial en el lado del servidor.

63 65 

64Para ver cómo `/schedule` verifica el acceso al repositorio antes de crear una rutina, consulte [Repositorios y permisos de rama](/docs/es/routines#repositories-and-branch-permissions). Consulte [Conectar desde su terminal](/docs/es/web-quickstart#connect-from-your-terminal) para el tutorial de `/web-setup`, incluyendo qué almacena `/web-setup` y cómo eliminarlo.66Para ver cómo `/schedule` verifica el acceso al repositorio antes de crear una rutina, consulte [Repositorios y permisos de rama](/docs/es/routines#repositories-and-branch-permissions). Consulte [Conectar desde su terminal](/docs/es/web-quickstart#connect-from-your-terminal) para el tutorial de `/web-setup`, incluyendo qué almacena `/web-setup` y cómo eliminarlo.

65 67 


135 137 

136Cuando ejecuta `claude --cloud` desde un repositorio que no tiene un remoto de git, o desde un repositorio de github.com en el que no está instalada la aplicación Claude GitHub, Claude Code agrupa su repositorio local y lo carga directamente a la sesión en la nube. Esto se aplica incluso si conectó GitHub con `/web-setup`. El paquete incluye su historial de repositorio completo en todas las ramas, más cambios sin confirmar en archivos rastreados.138Cuando ejecuta `claude --cloud` desde un repositorio que no tiene un remoto de git, o desde un repositorio de github.com en el que no está instalada la aplicación Claude GitHub, Claude Code agrupa su repositorio local y lo carga directamente a la sesión en la nube. Esto se aplica incluso si conectó GitHub con `/web-setup`. El paquete incluye su historial de repositorio completo en todas las ramas, más cambios sin confirmar en archivos rastreados.

137 139 

138En macOS, Linux y WSL, Claude Code deja fuera de la carga cambios sin confirmar en archivos nombrados como credenciales o claves, y nombra los archivos que dejó fuera. Esto cubre archivos `.env`, archivos `*.tfvars` de Terraform y archivos de claves como `id_rsa` y `*.pem`. La sesión comienza con la versión confirmada de cada uno, o sin el archivo si ninguno está confirmado. En un worktree vinculado, submódulo o diseño similar, Claude Code carga estos cambios con el resto y nombra los archivos que carga.140En macOS, Linux y WSL, Claude Code deja fuera de la carga cambios sin confirmar en archivos nombrados como credenciales o claves, y nombra los archivos que dejó fuera. Esto cubre archivos `.env`, archivos `*.tfvars` de Terraform y archivos de claves como `id_rsa` y `*.pem`. La sesión comienza con la versión confirmada de cada uno, o sin el archivo si ninguno está confirmado.

139 141 

140Para cargar un paquete incluso cuando Claude Code de otro modo clonaría desde el remoto, establezca `CCR_FORCE_BUNDLE=1`:142Para cargar un paquete incluso cuando Claude Code de otro modo clonaría desde el remoto, establezca `CCR_FORCE_BUNDLE=1`:

141 143 


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

430 432 

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

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

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

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

434* **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, mientras que las sesiones en un [entorno autohospedado](/docs/es/self-hosted-environments) la llaman desde su propia 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 alojada por Anthropic falla con un error de autenticación. Lo mismo se aplica a [Revisión de código](/docs/es/code-review) y a [Rutinas](/docs/es/routines) que se ejecutan en entornos alojados por Anthropic; una rutina enrutada a un entorno autohospedado llama a la API desde su propia red. 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.437* **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, mientras que las sesiones en un [entorno autohospedado](/docs/es/self-hosted-environments) la llaman desde su propia 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 alojada por Anthropic falla con un error de autenticación. Lo mismo se aplica a [Revisión de código](/docs/es/code-review) y a [Rutinas](/docs/es/routines) que se ejecutan en entornos alojados por Anthropic; una rutina enrutada a un entorno autohospedado llama a la API desde su propia red. 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.

Details

1554| `projects/<project>/<session>.jsonl` | Transcripción de conversación completa: cada mensaje, llamada de herramienta y resultado de herramienta |1554| `projects/<project>/<session>.jsonl` | Transcripción de conversación completa: cada mensaje, llamada de herramienta y resultado de herramienta |

1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Una transcripción anterior para la sesión que Claude Code apartó en lugar de sobrescribir o eliminar. No aparece en el selector de sesiones |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Una transcripción anterior para la sesión que Claude Code apartó en lugar de sobrescribir o eliminar. No aparece en el selector de sesiones |

1556| `projects/<project>/<session>/subagents/` | Transcripciones de conversación de [subagente](/docs/es/sub-agents), eliminadas con la transcripción de sesión principal cuando vence |1556| `projects/<project>/<session>/subagents/` | Transcripciones de conversación de [subagente](/docs/es/sub-agents), eliminadas con la transcripción de sesión principal cuando vence |

1557| `projects/<project>/<session>/tool-results/` | Salidas de herramientas grandes derramadas en archivos separados |1557| `projects/<project>/<session>/tool-results/` | Salidas de herramientas grandes derramadas en archivos separados, y copias de tamaño completo de [imágenes que devuelven las herramientas MCP](/docs/es/mcp#images-in-tool-results) |

1558| `file-history/<session>/` | Instantáneas previas a la edición de archivos que Claude cambió, utilizadas para [restauración de checkpoint](/docs/es/checkpointing). Contiene instantáneas para los 100 checkpoints más recientes; los archivos de instantánea que ningún checkpoint retenido referencia se eliminan, excepto la primera instantánea de cada archivo |1558| `file-history/<session>/` | Instantáneas previas a la edición de archivos que Claude cambió, utilizadas para [restauración de checkpoint](/docs/es/checkpointing). Contiene instantáneas para los 100 checkpoints más recientes; los archivos de instantánea que ningún checkpoint retenido referencia se eliminan, excepto la primera instantánea de cada archivo |

1559| `plans/` | Archivos de plan escritos durante [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) |1559| `plans/` | Archivos de plan escritos durante [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) |

1560| `debug/` | Registros de depuración por sesión, escritos mientras el registro de depuración está activado, como cuando comienza con [`--debug`](/docs/es/cli-reference#cli-flags) o ejecuta `/debug` |1560| `debug/` | Registros de depuración por sesión, escritos mientras el registro de depuración está activado, como cuando comienza con [`--debug`](/docs/es/cli-reference#cli-flags) o ejecuta `/debug` |


1582* **Bare mode**: cuando ejecuta `claude -p` con [`--bare`](/docs/es/headless#start-faster-with-bare-mode), Claude Code no ejecuta el barrido en esa sesión.1582* **Bare mode**: cuando ejecuta `claude -p` con [`--bare`](/docs/es/headless#start-faster-with-bare-mode), Claude Code no ejecuta el barrido en esa sesión.

1583* **Barrido pausado**: si Claude Code no puede determinar de forma segura el período de retención, pausa el barrido de limpieza de retención; el [evento `retention_sweep`](/docs/es/monitoring-usage#retention-sweep-event) enumera cada configuración que lo pausa. Cuando la causa es un archivo de configuración que no se puede leer o analizar, o errores de configuración con `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` explícitamente establecidos, Claude Code también muestra una advertencia en `/status` hasta que corrija los errores de configuración. Cuando [configuración administrada por servidor](/docs/es/server-managed-settings) proporciona `cleanupPeriodDays`, Claude Code ejecuta el barrido en el valor administrado en cualquier caso.1583* **Barrido pausado**: si Claude Code no puede determinar de forma segura el período de retención, pausa el barrido de limpieza de retención; el [evento `retention_sweep`](/docs/es/monitoring-usage#retention-sweep-event) enumera cada configuración que lo pausa. Cuando la causa es un archivo de configuración que no se puede leer o analizar, o errores de configuración con `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` explícitamente establecidos, Claude Code también muestra una advertencia en `/status` hasta que corrija los errores de configuración. Cuando [configuración administrada por servidor](/docs/es/server-managed-settings) proporciona `cleanupPeriodDays`, Claude Code ejecuta el barrido en el valor administrado en cualquier caso.

1584 1584 

1585<h3 id="session-scratchpad-directory">

1586 Directorio de bloc de notas de sesión

1587</h3>

1588 

1589El bloc de notas es un directorio por sesión que Claude Code proporciona a Claude para archivos temporales: resultados intermedios, scripts auxiliares y borradores que no pertenecen a su proyecto. Cuando Claude dice que guardó algo "en el bloc de notas", el archivo está allí. Claude lo usa en lugar de `/tmp`, y puede crear, editar y leer archivos en él sin un mensaje de permiso.

1590 

1591El bloc de notas vive bajo el directorio temporal de Claude Code en lugar de `~/.claude`. Encuentre la ruta de la sesión actual para su plataforma:

1592 

1593* **macOS**: `/private/tmp/claude-<uid>/<project>/<session-id>/scratchpad/`

1594* **Linux**: `/tmp/claude-<uid>/<project>/<session-id>/scratchpad/`, o la misma forma bajo `$TMPDIR` cuando su sistema establece uno

1595* **Windows**: `%TEMP%\claude\<project>\<session-id>\scratchpad\`

1596 

1597`<project>` es la ruta de su directorio de trabajo con cada carácter que no sea letra o dígito reemplazado por `-`, como `-Users-you-my-project`. Si establece [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars), el árbol se mueve bajo ese directorio en su lugar. Los hooks reciben la ruta de la sesión actual como [`scratchpad_dir`](/docs/es/hooks#common-input-fields).

1598 

1599Los archivos del bloc de notas duran tanto como la transcripción de la sesión: el [barrido de retención](#cleaned-up-automatically) elimina el directorio cuando elimina la transcripción, y [`claude project purge`](#clear-local-data) no toca el directorio temporal. Debido a que el directorio se encuentra bajo la ubicación temporal del sistema, su sistema operativo también puede borrarlo, como al reiniciar. Para mantener algo que Claude escribió allí, pida a Claude que lo mueva a su proyecto.

1600 

1601Una sesión tiene un bloc de notas solo cuando se cumplen todos estos:

1602 

1603* Está conectado con una cuenta de claude.ai en lugar de una clave API

1604* La sesión usa la API de Anthropic, no Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry

1605* [`enableArtifact`](/docs/es/settings-reference#enableartifact) no está establecido en `false`

1606 

1585<h3 id="kept-until-you-delete-them">1607<h3 id="kept-until-you-delete-them">

1586 Mantenidos hasta que los elimine1608 Mantenidos hasta que los elimine

1587</h3>1609</h3>


1626* Líneas de prompt coincidentes en `history.jsonl`1648* Líneas de prompt coincidentes en `history.jsonl`

1627* La entrada del proyecto en `~/.claude.json`1649* La entrada del proyecto en `~/.claude.json`

1628 1650 

1629Las imágenes que pegó o adjuntó en las sesiones del proyecto se almacenan bajo el directorio temporal de Claude Code en lugar de `~/.claude`, por lo que la purga no las elimina. El [barrido de retención](#cleaned-up-automatically) las elimina una vez que tienen más de `cleanupPeriodDays`.1651Las imágenes que pegó o adjuntó en las sesiones del proyecto y el [bloc de notas](#session-scratchpad-directory) de cada sesión se almacenan bajo el directorio temporal de Claude Code en lugar de `~/.claude`, por lo que la purga no las elimina. El [barrido de retención](#cleaned-up-automatically) aún elimina las imágenes una vez que tienen más de `cleanupPeriodDays`; el bloc de notas de una sesión purgada permanece hasta que lo elimine o su sistema operativo borra el directorio temporal.

1630 1652 

1631El comando imprime el plan de eliminación completo y solicita confirmación antes de eliminar cualquier cosa.1653El comando imprime el plan de eliminación completo y solicita confirmación antes de eliminar cualquier cosa.

1632 1654 

Details

12 12 

13Un proyecto es una conversación en curso donde Claude coordina un flujo de trabajo relacionado para usted. Usted le dice qué necesita hacerse y comienza un hilo para cada tarea.13Un proyecto es una conversación en curso donde Claude coordina un flujo de trabajo relacionado para usted. Usted le dice qué necesita hacerse y comienza un hilo para cada tarea.

14 14 

15Cada hilo es generalmente una [sesión en la nube](/docs/es/claude-code-on-the-web): Claude Code ejecutándose en la nube en lugar de en su máquina. Cuando una tarea necesita algo que solo su computadora tiene, puede pedirle a Claude que ejecute ese hilo en su computadora en su lugar a través de [Remote Control](/docs/es/remote-control). Los hilos se ejecutan en paralelo y puede verificarlos y dirigirlos desde su teléfono. Los hilos en la nube continúan después de cerrar la computadora portátil.15Cada hilo es generalmente una [sesión en la nube](/docs/es/claude-code-on-the-web): Claude Code ejecutándose en la nube en lugar de en su máquina. Cuando una tarea necesita algo que solo su computadora tiene, puede pedirle a Claude que [ejecute ese hilo en su computadora](#run-a-thread-on-your-own-computer) en su lugar a través de [Remote Control](/docs/es/remote-control). Los hilos se ejecutan en paralelo y puede verificarlos y dirigirlos desde su teléfono. Los hilos en la nube continúan después de cerrar la computadora portátil, mientras que un hilo en su computadora se ejecuta solo mientras esa computadora esté despierta.

16 16 

17Sin un proyecto, ejecutar varias sesiones significa hacer la coordinación usted mismo: decide en qué trabaja cada una, repite el mismo contexto al inicio de cada una, y verifica cuál terminó o necesita una respuesta. Con un proyecto, en su lugar:17Sin un proyecto, ejecutar varias sesiones significa hacer la coordinación usted mismo: decide en qué trabaja cada una, repite el mismo contexto al inicio de cada una, y verifica cuál terminó o necesita una respuesta. Con un proyecto, en su lugar:

18 18 


39 Cuándo algo más se adapta mejor39 Cuándo algo más se adapta mejor

40</h3>40</h3>

41 41 

42Los hilos funcionan en repositorios de GitHub y en los archivos, carpetas y carpetas de Google Drive que cargues en el proyecto, no en archivos o herramientas que existan solo en tu máquina. Si una tarea necesita tu máquina, pídele a Claude que ejecute su hilo allí a través de [Remote Control](/docs/es/remote-control). [Limitaciones](#limitations) enumera lo que eso necesita. Algo más se adapta mejor en estos casos:42Un proyecto todavía se adapta cuando solo algunas tareas necesitan tu máquina. Los hilos en la nube funcionan en repositorios de GitHub y en los archivos, carpetas y carpetas de Google Drive que cargues en el proyecto, y para la tarea ocasional que necesita una base de datos local o una herramienta en tu computadora, puedes pedirle a Claude que [ejecute el hilo de esa tarea en tu computadora](#run-a-thread-on-your-own-computer). Algo más se adapta mejor en estos casos:

43 43 

44* **Una tarea que cabe en una sesión**: "Arreglar la prueba de inicio de sesión inestable." Comienza una [sesión en la nube](/docs/es/claude-code-on-the-web) tú mismo.44* **Una tarea que cabe en una sesión**: "Arreglar la prueba de inicio de sesión inestable." Comienza una [sesión en la nube](/docs/es/claude-code-on-the-web) tú mismo.

45* **Trabajo donde cada tarea necesita tu máquina**: una base de datos local, un emulador de dispositivo, o una API detrás de tu VPN. Usa una sesión local, o [vista de agente](/docs/es/agent-view) para ejecutar varias a la vez. Si el trabajo solo necesita archivos locales, cárgalos en el proyecto en su lugar.45* **Trabajo donde cada tarea necesita tu máquina**: una base de datos local, un emulador de dispositivo, o una API detrás de tu VPN. Usa una sesión local, o [vista de agente](/docs/es/agent-view) para ejecutar varias a la vez. Si el trabajo solo necesita archivos locales, cárgalos en el proyecto en su lugar.


277 277 

278Cada aprobación cubre ese aviso, o el resto de ese hilo si elige la opción más amplia. Para permitir que cada hilo ejecute ciertos comandos sin preguntar, o para bloquear algunos, agregue [reglas de permiso](/docs/es/permissions) al `.claude/settings.json` del repositorio. Los hilos en la nube las aplican solo en un proyecto con un repositorio; vea [Qué recogen los hilos de sus repositorios](#what-threads-pick-up-from-your-repositories).278Cada aprobación cubre ese aviso, o el resto de ese hilo si elige la opción más amplia. Para permitir que cada hilo ejecute ciertos comandos sin preguntar, o para bloquear algunos, agregue [reglas de permiso](/docs/es/permissions) al `.claude/settings.json` del repositorio. Los hilos en la nube las aplican solo en un proyecto con un repositorio; vea [Qué recogen los hilos de sus repositorios](#what-threads-pick-up-from-your-repositories).

279 279 

280<h3 id="run-a-thread-on-your-own-computer">

281 Ejecutar un hilo en su propia computadora

282</h3>

283 

284Cuando una tarea necesita algo que solo su computadora tiene, como una base de datos local, un emulador de dispositivo, o una API detrás de su VPN, pida a Claude que ejecute el hilo para esa tarea en su computadora en lugar de en la nube. Cuando lo solicita en la conversación del proyecto, el hilo es una sesión de Claude Code en una carpeta en su máquina, conectada a través de [Remote Control](/docs/es/remote-control). Los otros hilos del proyecto continúan ejecutándose en la nube. En comparación con un hilo en la nube, un hilo en su computadora:

285 

286* Funciona con los archivos, herramientas, servidores MCP, y configuración de Claude Code en esa máquina en lugar del entorno en la nube del proyecto

287* Comienza con las instrucciones del proyecto, pero sin sus archivos de memoria cargados

288* Se ejecuta solo mientras esa computadora está despierta con Remote Control activado

289 

290<Steps>

291 <Step title="Conectar la carpeta">

292 En la computadora que tiene la carpeta que la tarea necesita, póngala disponible a través de Remote Control de una de dos maneras. Ambas necesitan Claude Code v2.1.280 o posterior en esa computadora.

293 

294 * **En la aplicación de escritorio de Claude**: abra **Settings > Claude Code**, active **Use this computer from your phone and claude.ai**, y agregue la carpeta a la lista bajo ese interruptor. Los hilos pueden ejecutarse en esta computadora mientras la aplicación está abierta.

295 * **En una terminal**: ejecute `claude remote-control` en la carpeta y déjela ejecutándose.

296 </Step>

297 

298 <Step title="Solicitar la tarea con Work locally">

299 En la conversación del proyecto, elija **Work locally** del menú **+** junto al cuadro de mensaje, que etiqueta su mensaje como **Local**, y escriba qué desea que se haga. Decir en el mensaje que la tarea debe ejecutarse en su computadora también funciona.

300 </Step>

301 

302 <Step title="Permitirlo en la tarjeta">

303 Claude responde con una tarjeta **Allow Claude to work in a folder on your device**. Elija la carpeta si conectó varias. Luego haga clic en **Allow once**.

304 </Step>

305</Steps>

306 

307El hilo se ejecuta en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), por lo que Claude ejecuta comandos y edita archivos en esa carpeta sin pedirle cada vez. Si el modo automático no está disponible o está desactivado en Claude Code de esa computadora, el hilo se ejecuta sin él, y cualquier aviso de permiso que genere espera su respuesta en el hilo, como [Desbloquear un hilo esperando aprobación](#unblock-a-thread-waiting-on-approval) describe.

308 

309Mientras el hilo se ejecuta, un icono de portátil en su encabezado muestra si su computadora está conectada. Haga clic en él para ver qué carpeta está usando el hilo o para desactivar la conexión. El hilo se pausa mientras esa computadora está dormida, y se detiene si la aplicación de escritorio o `claude remote-control` se cierra. [Lost contact with your folder](#lost-contact-with-your-folder) cubre cómo hacerlo funcionar de nuevo. En la aplicación de escritorio, active **Keep this computer awake for Remote Control** bajo **Settings > Claude Code** para evitar que la computadora se duerma por sí sola.

310 

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

312 

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

281 Proporcione contexto permanente al proyecto314 Proporcione contexto permanente al proyecto

282</h2>315</h2>


441* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) es Claude en los canales de Slack de tu equipo, en planes Team y Enterprise. Cualquiera en un canal puede darle trabajo, todos en el canal lo ven y lo dirigen, y utiliza conexiones que un administrador configuró para ese canal. Un proyecto es solo tuyo: eres el único que le envía trabajo o ve sus hilos, utiliza tu propio acceso a GitHub y conectores, y está en Pro y Max. [Cómo Claude Tag difiere de Cowork y Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tiene el lado a lado.474* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) es Claude en los canales de Slack de tu equipo, en planes Team y Enterprise. Cualquiera en un canal puede darle trabajo, todos en el canal lo ven y lo dirigen, y utiliza conexiones que un administrador configuró para ese canal. Un proyecto es solo tuyo: eres el único que le envía trabajo o ve sus hilos, utiliza tu propio acceso a GitHub y conectores, y está en Pro y Max. [Cómo Claude Tag difiere de Cowork y Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) tiene el lado a lado.

442* **Cloud sessions**: cada hilo es una [sesión en la nube](/docs/es/claude-code-on-the-web) a menos que pida a Claude que la ejecute en su máquina. De cualquier forma, Claude la comienza y rastrea en lugar de usted. Una sesión en la nube que comenzó usted mismo puede convertirse en un proyecto o alimentar uno a través de [**Continue as a project** o **Move to project**](#start-from-an-existing-cloud-session).475* **Cloud sessions**: cada hilo es una [sesión en la nube](/docs/es/claude-code-on-the-web) a menos que pida a Claude que la ejecute en su máquina. De cualquier forma, Claude la comienza y rastrea en lugar de usted. Una sesión en la nube que comenzó usted mismo puede convertirse en un proyecto o alimentar uno a través de [**Continue as a project** o **Move to project**](#start-from-an-existing-cloud-session).

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

444* **Local sessions and agent view**: una sesión que comienza usted mismo en su terminal, IDE, o el entorno local de la aplicación de escritorio no puede ser agregada a un proyecto. Un proyecto llega a su máquina solo ejecutando un hilo allí a través de [Remote Control](/docs/es/remote-control). [Agent view](/docs/es/agent-view) es una pantalla para rastrear varias sesiones locales que comenzó usted mismo; no tiene coordinador.477* **Remote Control**: [Remote Control](/docs/es/remote-control) conecta claude.ai a una sesión de Claude Code que se ejecuta en su máquina. Cuando pide a Claude en un proyecto que ejecute un hilo en su computadora, el proyecto [utiliza Remote Control para hacerlo](#run-a-thread-on-your-own-computer).

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

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

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

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


454 488 

455* Los proyectos están disponibles en claude.ai/code, en la aplicación de escritorio y en la aplicación móvil de Claude, no en el CLI de terminal ni a través de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. El comando [`claude project`](/docs/es/cli-reference) del CLI, que administra el estado local de Claude Code para un directorio, no está relacionado.489* Los proyectos están disponibles en claude.ai/code, en la aplicación de escritorio y en la aplicación móvil de Claude, no en el CLI de terminal ni a través de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. El comando [`claude project`](/docs/es/cli-reference) del CLI, que administra el estado local de Claude Code para un directorio, no está relacionado.

456* Los hilos del proyecto son [sesiones en la nube](/docs/es/claude-code-on-the-web), o sesiones en su propia máquina a través de [Remote Control](/docs/es/remote-control), con Anthropic como proveedor de modelo en ambos casos. [Seguridad](/docs/es/security) y [Uso de datos](/docs/es/data-usage) cubren cómo se aíslan las sesiones en la nube y qué se retiene, y [Connection and security](/docs/es/remote-control#connection-and-security) cubre cómo un hilo en su máquina se conecta y qué se almacena.490* Los hilos del proyecto son [sesiones en la nube](/docs/es/claude-code-on-the-web), o sesiones en su propia máquina a través de [Remote Control](/docs/es/remote-control), con Anthropic como proveedor de modelo en ambos casos. [Seguridad](/docs/es/security) y [Uso de datos](/docs/es/data-usage) cubren cómo se aíslan las sesiones en la nube y qué se retiene, y [Connection and security](/docs/es/remote-control#connection-and-security) cubre cómo un hilo en su máquina se conecta y qué se almacena.

457* No puede agregar una sesión que inició usted mismo en su máquina a un proyecto. Para permitir que un proyecto ejecute un hilo en su máquina, conecte la carpeta en la que debe trabajar a través de [Remote Control](/docs/es/remote-control#requirements): active Remote Control en **Settings > Claude Code** en la aplicación de escritorio de Claude, o ejecute `claude remote-control` en la carpeta y déjela ejecutándose. Esa máquina necesita Claude Code v2.1.280 o posterior. Un proyecto tampoco puede ejecutar un hilo en su máquina mientras **Require trusted devices** esté activado en su configuración de claude.ai.491* No puede agregar una sesión que inició usted mismo en su máquina a un proyecto. Un proyecto llega a su máquina solo al [ejecutar un hilo allí a través de Remote Control](#run-a-thread-on-your-own-computer), y esa sección enumera lo que necesita.

458* La sandbox de un hilo en la nube se pausa entre turnos y se reanuda cuando el hilo continúa. Si la sandbox no se puede reanudar, el hilo continúa desde un clon fresco, así que los cambios no confirmados pueden perderse. En tareas largas, pídele a Claude que confirme e inserte trabajo en progreso.492* La sandbox de un hilo en la nube se pausa entre turnos y se reanuda cuando el hilo continúa. Si la sandbox no se puede reanudar, el hilo continúa desde un clon fresco, así que los cambios no confirmados pueden perderse. En tareas largas, pídele a Claude que confirme e inserte trabajo en progreso.

459* Un proyecto pertenece a un usuario. No puedes compartir un proyecto o sus hilos con otro usuario, y las transcripciones de hilos no tienen la opción de compartir que tienen otras sesiones en la nube. No hay controles a nivel de organización para proyectos durante la beta.493* Un proyecto pertenece a un usuario. No puedes compartir un proyecto o sus hilos con otro usuario, y las transcripciones de hilos no tienen la opción de compartir que tienen otras sesiones en la nube. No hay controles a nivel de organización para proyectos durante la beta.

460* Un hilo pertenece al único proyecto que lo comenzó. No puedes mover o copiar un hilo a otro proyecto, o sacarlo para que esté solo. [**Move to project**](#start-from-an-existing-cloud-session) va solo en la otra dirección: trae el trabajo de una sesión en la nube a un proyecto.494* Un hilo pertenece al único proyecto que lo comenzó. No puedes mover o copiar un hilo a otro proyecto, o sacarlo para que esté solo. [**Move to project**](#start-from-an-existing-cloud-session) va solo en la otra dirección: trae el trabajo de una sesión en la nube a un proyecto.


513 547 

514Un hilo o la conversación del proyecto hizo una solicitud que tu plan cubre solo con créditos de uso, como una a un modelo o tamaño de contexto que tu plan no incluye, y los créditos de uso no están activados para tu cuenta. [Agregar créditos de uso a tu suscripción](/docs/es/costs#add-usage-credits-to-your-subscription) cubre quién puede activarlos o comprarlos en cada plan. Una vez que los créditos estén disponibles, envía otro mensaje para reintentar.548Un hilo o la conversación del proyecto hizo una solicitud que tu plan cubre solo con créditos de uso, como una a un modelo o tamaño de contexto que tu plan no incluye, y los créditos de uso no están activados para tu cuenta. [Agregar créditos de uso a tu suscripción](/docs/es/costs#add-usage-credits-to-your-subscription) cubre quién puede activarlos o comprarlos en cada plan. Una vez que los créditos estén disponibles, envía otro mensaje para reintentar.

515 549 

550<h3 id="lost-contact-with-your-folder">

551 Perdiste contacto con tu carpeta

552</h3>

553 

554Un hilo que se ejecuta en tu computadora muestra esto cuando la sesión de Claude Code allí dejó de responder, generalmente porque la computadora se durmió o la aplicación de escritorio o `claude remote-control` se cerró. Despierta la computadora, y si la aplicación de escritorio o `claude remote-control` ya no se está ejecutando allí, inicia de nuevo: reabre la aplicación y confirma que **Use this computer from your phone and claude.ai** aún está activado en **Settings > Claude Code**, o ejecuta `claude remote-control` de nuevo en la misma carpeta.

555 

516<h3 id="context-limit">556<h3 id="context-limit">

517 Otros mensajes557 Otros mensajes

518</h3>558</h3>


527| "The project's environment was removed" | Elige un entorno diferente en **Project settings > Environment**; el cambio se aplica a hilos nuevos |567| "The project's environment was removed" | Elige un entorno diferente en **Project settings > Environment**; el cambio se aplica a hilos nuevos |

528| "Setup script failed" | Haz clic en **Edit setup script** en el error, arregla el script en el entorno, luego envía otro mensaje. [Setup script failed](/docs/es/web-quickstart#setup-script-failed) enumera las causas comunes |568| "Setup script failed" | Haz clic en **Edit setup script** en el error, arregla el script en el entorno, luego envía otro mensaje. [Setup script failed](/docs/es/web-quickstart#setup-script-failed) enumera las causas comunes |

529| "Claude ran out of context on this turn" | El hilo llenó su ventana de contexto. Si el mensaje dice que el hilo continúa en una sesión fresca, continúa por sí solo; de lo contrario, pídele a Claude en la conversación del proyecto que comience un hilo nuevo para el trabajo restante |569| "Claude ran out of context on this turn" | El hilo llenó su ventana de contexto. Si el mensaje dice que el hilo continúa en una sesión fresca, continúa por sí solo; de lo contrario, pídele a Claude en la conversación del proyecto que comience un hilo nuevo para el trabajo restante |

570| "Couldn't start in" seguido del nombre de tu carpeta | Permitiste que un hilo se ejecutara en tu computadora, pero la sesión no pudo iniciarse allí. Cuando una línea bajo el mensaje da la razón, arregla eso, luego pídele a Claude que ejecute la tarea de nuevo |

571| "Claude is out of date on your device" | La computadora que elegiste para ejecutar un hilo tiene una versión de Claude Code más antigua que v2.1.280. Actualiza Claude Code allí, o actualiza la aplicación de escritorio si eso es lo que conecta la carpeta, luego pídele a Claude que ejecute la tarea de nuevo |

530| "Reached the turn limit" | El hilo alcanzó el límite de pasos agenticos que [`CLAUDE_CODE_MAX_TURNS`](/docs/es/env-vars) establece. Envía otro mensaje para continuar, o aumenta o elimina esa variable donde esté establecida |572| "Reached the turn limit" | El hilo alcanzó el límite de pasos agenticos que [`CLAUDE_CODE_MAX_TURNS`](/docs/es/env-vars) establece. Envía otro mensaje para continuar, o aumenta o elimina esa variable donde esté establecida |

531 573 

532<h2 id="related-resources">574<h2 id="related-resources">

Details

26| `claude install [version]` | Instalar o reinstalar el binario nativo. Acepta una versión como `2.1.118`, o `stable` o `latest`. Consulte [Instalar una versión específica](/docs/es/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Instalar o reinstalar el binario nativo. Acepta una versión como `2.1.118`, o `stable` o `latest`. Consulte [Instalar una versión específica](/docs/es/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Inicie sesión en su cuenta de Anthropic. Use `--email` para rellenar previamente su dirección de correo electrónico, `--sso` para forzar la autenticación SSO y `--console` para iniciar sesión con Anthropic Console para facturación de uso de API en lugar de una suscripción a Claude | `claude auth login --console` |27| `claude auth login` | Inicie sesión en su cuenta de Anthropic. Use `--email` para rellenar previamente su dirección de correo electrónico, `--sso` para forzar la autenticación SSO y `--console` para iniciar sesión con Anthropic Console para facturación de uso de API en lugar de una suscripción a Claude | `claude auth login --console` |

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

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

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

31| `claude attach <id>` | Adjuntar a una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal | `claude attach 7c5dcf5d` |31| `claude attach <id>` | Adjuntar a una [sesión de fondo](/docs/es/agent-view#manage-sessions-from-the-shell) en esta terminal | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Imprimir las reglas del clasificador de [auto mode](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver su configuración efectiva con la configuración aplicada. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, coincidiendo sin distinción de mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Imprimir las reglas del clasificador de [auto mode](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) integradas como JSON. Use `claude auto-mode config` para ver su configuración efectiva con la configuración aplicada. `--label <prefix>` imprime solo las reglas cuya etiqueta comienza con ese prefijo, coincidiendo sin distinción de mayúsculas y minúsculas. Requiere Claude Code v2.1.208 o posterior | `claude auto-mode defaults --label 'Git Destructive'` |


64| `--add-dir` | Añade directorios de trabajo adicionales para que Claude lea y edite archivos. Otorga acceso a archivos; Claude Code [no descubre](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) la mayoría de la configuración de `.claude/` desde estos directorios. Valida que cada ruta exista como un directorio. No puedes añadir la mayoría de [rutas de red](/docs/es/errors#working-directory-is-a-network-path), como `\\server\share`. Para persistir estos directorios entre sesiones, establece [`permissions.additionalDirectories`](/docs/es/settings-reference#permissions-additionaldirectories) en la configuración | `claude --add-dir ../apps ../lib` |64| `--add-dir` | Añade directorios de trabajo adicionales para que Claude lea y edite archivos. Otorga acceso a archivos; Claude Code [no descubre](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) la mayoría de la configuración de `.claude/` desde estos directorios. Valida que cada ruta exista como un directorio. No puedes añadir la mayoría de [rutas de red](/docs/es/errors#working-directory-is-a-network-path), como `\\server\share`. Para persistir estos directorios entre sesiones, establece [`permissions.additionalDirectories`](/docs/es/settings-reference#permissions-additionaldirectories) en la configuración | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | Habilita la [herramienta advisor](/docs/es/advisor) del lado del servidor para esta sesión con un alias de modelo, `fable`, `opus`, u `sonnet`, o un ID de modelo completo. Tiene prioridad sobre la configuración `advisorModel` para la sesión. `fable` requiere [acceso a Fable](/docs/es/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | Habilita la [herramienta advisor](/docs/es/advisor) del lado del servidor para esta sesión con un alias de modelo, `fable`, `opus`, u `sonnet`, o un ID de modelo completo. Tiene prioridad sobre la configuración `advisorModel` para la sesión. `fable` requiere [acceso a Fable](/docs/es/advisor#choose-an-advisor-model) | `claude --advisor opus` |

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

67| `--agents` | Define subagentes personalizados dinámicamente a través de JSON. Acepta los [campos enumerados para subagentes definidos por CLI](/docs/es/sub-agents#choose-the-subagent-scope). Claude Code valida el JSON al inicio y sale si hay un valor inválido; consulta [`Invalid --agents configuration`](/docs/es/errors#invalid-agents-configuration) para el mensaje y para las banderas y variable de entorno que omiten la validación. La validación requiere Claude Code v2.1.242 o posterior | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |67| `--agents` | Define subagentes personalizados dinámicamente a través de JSON. Acepta los [campos enumerados para subagentes definidos por CLI](/docs/es/sub-agents#choose-the-subagent-scope). Con `--print`, el valor puede ser en su lugar la ruta a un archivo JSON que contiene el objeto; la forma de archivo requiere Claude Code v2.1.281 o posterior. Claude Code valida el valor al inicio y sale si hay un valor inválido; consulta [`Invalid --agents configuration`](/docs/es/errors#invalid-agents-configuration) para el mensaje y para las banderas y variable de entorno que omiten la validación. La validación requiere Claude Code v2.1.242 o posterior | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

68| `--allow-dangerously-skip-permissions` | Añade `bypassPermissions` al ciclo de modo `Shift+Tab` sin comenzar en él. Te permite comenzar en un modo diferente como `plan` y cambiar a `bypassPermissions` más tarde. Consulta [modos de permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |68| `--allow-dangerously-skip-permissions` | Añade `bypassPermissions` al ciclo de modo `Shift+Tab` sin comenzar en él. Te permite comenzar en un modo diferente como `plan` y cambiar a `bypassPermissions` más tarde. Consulta [modos de permisos](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

69| `--allowedTools`, `--allowed-tools` | Herramientas que se ejecutan sin solicitar permiso. Consulta [sintaxis de regla de permisos](/docs/es/settings-reference#permission-rule-syntax) para coincidencia de patrones. Para restringir qué herramientas están disponibles, usa `--tools` en su lugar. Si nombras una de las [herramientas de seguimiento de tareas](/docs/es/tools-reference#task-tool-availability) aquí, Claude Code también opta por la sesión | `"Bash(git log *)" "Bash(git diff *)" "Read"` |69| `--allowedTools`, `--allowed-tools` | Herramientas que se ejecutan sin solicitar permiso. Consulta [sintaxis de regla de permisos](/docs/es/settings-reference#permission-rule-syntax) para coincidencia de patrones. Para restringir qué herramientas están disponibles, usa `--tools` en su lugar. Si nombras una de las [herramientas de seguimiento de tareas](/docs/es/tools-reference#task-tool-availability) aquí, Claude Code también opta por la sesión | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

70| `--append-subagent-system-prompt` | Añade texto personalizado al final del indicador del sistema de cada [subagente](/docs/es/sub-agents), incluyendo subagentes anidados, excepto un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation), que reutiliza el indicador de la propia conversación. Solo se aplica en modo no interactivo con `-p`. Requiere Claude Code v2.1.205 o posterior | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |70| `--append-subagent-system-prompt` | Añade texto personalizado al final del indicador del sistema de cada [subagente](/docs/es/sub-agents), incluyendo subagentes anidados, excepto un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation), que reutiliza el indicador de la propia conversación. Solo se aplica en modo no interactivo con `-p`. Requiere Claude Code v2.1.205 o posterior | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |


75| `--ax-screen-reader` | Renderiza salida amigable para lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Fuerza el renderizador clásico, por lo que la configuración [`tui`](/docs/es/settings-reference#tui) no tiene efecto; las [sesiones en segundo plano](/docs/es/agent-view) adjuntas aún se renderizan a pantalla completa. Tiene prioridad sobre [`CLAUDE_AX_SCREEN_READER`](/docs/es/env-vars) y la configuración [`axScreenReader`](/docs/es/settings-reference#axscreenreader). Requiere Claude Code v2.1.181 o posterior | `claude --ax-screen-reader` |75| `--ax-screen-reader` | Renderiza salida amigable para lectores de pantalla: texto plano sin bordes decorativos ni animaciones. Fuerza el renderizador clásico, por lo que la configuración [`tui`](/docs/es/settings-reference#tui) no tiene efecto; las [sesiones en segundo plano](/docs/es/agent-view) adjuntas aún se renderizan a pantalla completa. Tiene prioridad sobre [`CLAUDE_AX_SCREEN_READER`](/docs/es/env-vars) y la configuración [`axScreenReader`](/docs/es/settings-reference#axscreenreader). Requiere Claude Code v2.1.181 o posterior | `claude --ax-screen-reader` |

76| `--bare` | Modo mínimo: omite el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins, servidores MCP, memoria automática y CLAUDE.md para que las llamadas con script se inicien más rápido. Los skills en un directorio que pases con `--add-dir` aún se cargan. Claude tiene acceso a herramientas Bash, lectura de archivos y edición de archivos. Establece [`CLAUDE_CODE_SIMPLE`](/docs/es/env-vars). Consulta [modo bare](/docs/es/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |76| `--bare` | Modo mínimo: omite el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins, servidores MCP, memoria automática y CLAUDE.md para que las llamadas con script se inicien más rápido. Los skills en un directorio que pases con `--add-dir` aún se cargan. Claude tiene acceso a herramientas Bash, lectura de archivos y edición de archivos. Establece [`CLAUDE_CODE_SIMPLE`](/docs/es/env-vars). Consulta [modo bare](/docs/es/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

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

78| `--bg`, `--background` | Inicia la sesión como un [agente en segundo plano](/docs/es/agent-view) y regresa inmediatamente. Imprime el ID de sesión y comandos de gestión. Combina con `--exec` para ejecutar un comando de shell como un trabajo en segundo plano en lugar de una sesión de Claude, o con `--agent` para ejecutar un subagente específico. No se puede combinar con `-p`/`--print`; consulta la [referencia de errores](/docs/es/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | Inicia la sesión como un [agente en segundo plano](/docs/es/agent-view) y regresa inmediatamente. Imprime el ID de sesión y comandos de gestión. Combina con `--exec` para ejecutar un comando de shell como un trabajo en segundo plano en lugar de una sesión de Claude, o con `--agent` para ejecutar un subagente específico. Verifica [confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust) para el directorio antes de que comience. No se puede combinar con `-p`/`--print`; consulta la [referencia de errores](/docs/es/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (Vista previa de investigación) Servidores MCP cuyas notificaciones de [canal](/docs/es/channels) Claude debe escuchar en esta sesión. Lista separada por espacios de entradas `plugin:<name>@<marketplace>`. Requiere autenticación de Anthropic a través de claude.ai o una clave API de Console | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Vista previa de investigación) Servidores MCP cuyas notificaciones de [canal](/docs/es/channels) Claude debe escuchar en esta sesión. Lista separada por espacios de entradas `plugin:<name>@<marketplace>`. Requiere autenticación de Anthropic a través de claude.ai o una clave API de Console | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | Habilita la [integración del navegador Chrome](/docs/es/chrome) para automatización web y pruebas | `claude --chrome` |80| `--chrome` | Habilita la [integración del navegador Chrome](/docs/es/chrome) para automatización web y pruebas | `claude --chrome` |

81| `--cloud` | Con una descripción de tarea, crea una nueva [sesión en la nube](/docs/es/claude-code-on-the-web). Con un ID de sesión (`session_...` o `cse_...`) o una URL de claude.ai/code, encola un mensaje en esa sesión existente en su lugar, con `-p`. Consulta [enviar un mensaje de seguimiento](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |81| `--cloud` | Con una descripción de tarea, crea una nueva [sesión en la nube](/docs/es/claude-code-on-the-web). Con un ID de sesión (`session_...` o `cse_...`) o una URL de claude.ai/code, encola un mensaje en esa sesión existente en su lugar, con `-p`. Consulta [enviar un mensaje de seguimiento](/docs/es/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |


89| `--effort` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para la sesión actual. Opciones: `low`, `medium`, `high`, `xhigh`, `max`, o `ultracode`. Los niveles disponibles dependen del modelo. `ultracode` solicita esfuerzo `xhigh` con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado, y requiere Claude Code v2.1.203 o posterior. Anula la configuración [`modelSettings`](/docs/es/settings-reference#modelsettings) y [`effortLevel`](/docs/es/settings-reference#effortlevel) para esta sesión y no persiste | `claude --effort high` |89| `--effort` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para la sesión actual. Opciones: `low`, `medium`, `high`, `xhigh`, `max`, o `ultracode`. Los niveles disponibles dependen del modelo. `ultracode` solicita esfuerzo `xhigh` con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado, y requiere Claude Code v2.1.203 o posterior. Anula la configuración [`modelSettings`](/docs/es/settings-reference#modelsettings) y [`effortLevel`](/docs/es/settings-reference#effortlevel) para esta sesión y no persiste | `claude --effort high` |

90| `--enable-auto-mode` | Eliminado en v2.1.111. El modo automático ahora está en el ciclo `Shift+Tab` por defecto; usa `--permission-mode auto` para comenzar en él | `claude --permission-mode auto` |90| `--enable-auto-mode` | Eliminado en v2.1.111. El modo automático ahora está en el ciclo `Shift+Tab` por defecto; usa `--permission-mode auto` para comenzar en él | `claude --permission-mode auto` |

91| `--environment <environment-id>` | Crea una nueva sesión en la nube que se ejecuta en el [entorno autohospedado](/docs/es/self-hosted-environments) con el ID dado. Los IDs de entorno comienzan con `ccpool_`. Consulta [comportamiento de envío de `--environment`](/docs/es/self-hosted-environments-testing#environment-dispatch-behavior) para el comportamiento de envío y las combinaciones de banderas que rechaza. Requiere Claude Code v2.1.224 o posterior | `claude -p "Fix the login bug" --environment ccpool_abc123` |91| `--environment <environment-id>` | Crea una nueva sesión en la nube que se ejecuta en el [entorno autohospedado](/docs/es/self-hosted-environments) con el ID dado. Los IDs de entorno comienzan con `ccpool_`. Consulta [comportamiento de envío de `--environment`](/docs/es/self-hosted-environments-testing#environment-dispatch-behavior) para el comportamiento de envío y las combinaciones de banderas que rechaza. Requiere Claude Code v2.1.224 o posterior | `claude -p "Fix the login bug" --environment ccpool_abc123` |

92| `--exclude-dynamic-system-prompt-sections` | Mueve secciones por máquina del indicador del sistema (directorio de trabajo, información del entorno, rutas de memoria, bandera de repositorio git) al primer mensaje del usuario. Mejora la reutilización de caché de indicadores entre 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`. Usa con `-p` para cargas de trabajo con script y multiusuario | `claude -p --exclude-dynamic-system-prompt-sections "query"` |92| `--exclude-dynamic-system-prompt-sections` | Mueve contexto por usuario, como la ubicación de memoria automática, fuera del indicador del sistema y hacia el primer mensaje del usuario. Mejora la reutilización de caché de indicadores entre 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`. Usa con `-p` para cargas de trabajo con script y multiusuario | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

93| `--exec` | Ejecuta un comando de shell como un trabajo en segundo plano respaldado por PTY en lugar de iniciar una sesión de Claude. Usa con `--bg` para lanzar desde el shell | `claude --bg --exec 'pytest -x'` |93| `--exec` | Ejecuta un comando de shell como un trabajo en segundo plano respaldado por PTY en lugar de iniciar una sesión de Claude. Usa con `--bg` para lanzar desde el shell | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | Habilita la alternancia automática al modelo especificado cuando el modelo principal está sobrecargado o no disponible, por ejemplo un modelo retirado. Acepta una lista separada por comas probada en orden. Consulta [Cadenas de modelo alternativo](/docs/es/model-config#fallback-model-chains). Para persistir una cadena entre sesiones, usa la configuración [`fallbackModel`](/docs/es/settings-reference#fallbackmodel), que esta bandera anula | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | Habilita la alternancia automática al modelo especificado cuando el modelo principal está sobrecargado o no disponible, por ejemplo un modelo retirado. Acepta una lista separada por comas probada en orden. Consulta [Cadenas de modelo alternativo](/docs/es/model-config#fallback-model-chains). Para persistir una cadena entre sesiones, usa la configuración [`fallbackModel`](/docs/es/settings-reference#fallbackmodel), que esta bandera anula | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | Al reanudar, crea un nuevo ID de sesión en lugar de reutilizar el original (usa con `--resume` o `--continue`) | `claude --resume abc123 --fork-session` |95| `--fork-session` | Al reanudar, crea un nuevo ID de sesión en lugar de reutilizar el original (usa con `--resume` o `--continue`) | `claude --resume abc123 --fork-session` |


127| `--resume`, `-r` | Reanuda una sesión específica por ID o nombre, o muestra un selector interactivo para elegir una sesión. En lugar de un ID, puedes pasar la ruta absoluta al archivo de [transcripción](/docs/es/sessions#where-transcripts-are-stored) `.jsonl` de una sesión. El selector y búsqueda de nombre incluyen sesiones que añadieron este directorio con `/add-dir`. Cuando pasas un ID de sesión, Claude Code busca en el directorio del proyecto actual y sus git worktrees, luego en todos los demás proyectos en esta máquina. Antes de v2.1.223, la búsqueda de ID cubría solo el directorio del proyecto actual y sus git worktrees. [Las sesiones en segundo plano](/docs/es/agent-view) aparecen en el selector marcadas con `bg` | `claude --resume auth-refactor` |127| `--resume`, `-r` | Reanuda una sesión específica por ID o nombre, o muestra un selector interactivo para elegir una sesión. En lugar de un ID, puedes pasar la ruta absoluta al archivo de [transcripción](/docs/es/sessions#where-transcripts-are-stored) `.jsonl` de una sesión. El selector y búsqueda de nombre incluyen sesiones que añadieron este directorio con `/add-dir`. Cuando pasas un ID de sesión, Claude Code busca en el directorio del proyecto actual y sus git worktrees, luego en todos los demás proyectos en esta máquina. Antes de v2.1.223, la búsqueda de ID cubría solo el directorio del proyecto actual y sus git worktrees. [Las sesiones en segundo plano](/docs/es/agent-view) aparecen en el selector marcadas con `bg` | `claude --resume auth-refactor` |

128| `--safe-mode` | Comienza con todas las personalizaciones deshabilitadas para solucionar problemas de una configuración rota: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP, y memoria automática no se cargan. La autenticación, selección de modelo, herramientas integradas y permisos funcionan normalmente, lo que difiere de [`--bare`](/docs/es/headless#start-faster-with-bare-mode). La política de configuración gestionada aún se aplica, incluyendo hooks configurados por política, línea de estado y comandos de sugerencia de archivos; plugins gestionados, skills gestionados, CLAUDE.md gestionado, y servidores MCP configurados por política no. Útil para verificar si una personalización es lo que desencadena [alternancia automática de modelo](/docs/es/model-config#automatic-model-fallback). Establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars) | `claude --safe-mode` |128| `--safe-mode` | Comienza con todas las personalizaciones deshabilitadas para solucionar problemas de una configuración rota: CLAUDE.md, skills, plugins, hooks, servidores MCP, comandos y agentes personalizados, estilos de salida, flujos de trabajo, temas personalizados, atajos de teclado personalizados, comandos de línea de estado y sugerencia de archivos, servidores LSP, y memoria automática no se cargan. La autenticación, selección de modelo, herramientas integradas y permisos funcionan normalmente, lo que difiere de [`--bare`](/docs/es/headless#start-faster-with-bare-mode). La política de configuración gestionada aún se aplica, incluyendo hooks configurados por política, línea de estado y comandos de sugerencia de archivos; plugins gestionados, skills gestionados, CLAUDE.md gestionado, y servidores MCP configurados por política no. Útil para verificar si una personalización es lo que desencadena [alternancia automática de modelo](/docs/es/model-config#automatic-model-fallback). Establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars) | `claude --safe-mode` |

129| `--session-id` | Usa 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"` |129| `--session-id` | Usa 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"` |

130| `--setting-sources` | Lista separada por comas de fuentes de configuración a cargar (`user`, `project`, `local`) | `claude --setting-sources user,project` |130| `--setting-sources` | Lista separada por comas de fuentes de configuración a cargar (`user`, `project`, `local`). Consulta [vista de agente](/docs/es/agent-view#what-carries-over-when-you-background) y [equipos de agentes](/docs/es/agent-teams#context-and-communication) para las sesiones que comienzas desde esta que heredan la lista | `claude --setting-sources user,project` |

131| `--settings` | Ruta a un archivo JSON de configuración o una cadena JSON en línea. Los valores que estableces aquí anulan las mismas claves en tus archivos `settings.json` para esta sesión. Las claves que omites mantienen sus valores basados en archivos. El archivo debe ser un archivo regular no mayor de 2 MiB. Consulta [precedencia de configuración](/docs/es/settings#settings-precedence) | `claude --settings ./settings.json` |131| `--settings` | Ruta a un archivo JSON de configuración o una cadena JSON en línea. Los valores que estableces aquí anulan las mismas claves en tus archivos `settings.json` para esta sesión. Las claves que omites mantienen sus valores basados en archivos. El archivo debe ser un archivo regular no mayor de 2 MiB. Consulta [precedencia de configuración](/docs/es/settings#settings-precedence) | `claude --settings ./settings.json` |

132| `--strict-mcp-config` | Solo usa servidores MCP de `--mcp-config`, ignorando todas las demás configuraciones de MCP. Consulta [Control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para ver qué hace la bandera bajo un archivo MCP gestionado | `claude --strict-mcp-config --mcp-config ./mcp.json` |132| `--strict-mcp-config` | Solo usa servidores MCP de `--mcp-config`, ignorando todas las demás configuraciones de MCP. Consulta [Control exclusivo con managed-mcp.json](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) para ver qué hace la bandera bajo un archivo MCP gestionado | `claude --strict-mcp-config --mcp-config ./mcp.json` |

133| `--system-prompt` | Reemplaza el indicador del sistema completo con texto personalizado | `claude --system-prompt "You are a Python expert"` |133| `--system-prompt` | Reemplaza el indicador del sistema completo con texto personalizado | `claude --system-prompt "You are a Python expert"` |

Details

281 Qué está disponible en sesiones en la nube281 Qué está disponible en sesiones en la nube

282</h2>282</h2>

283 283 

284En entornos alojados por Anthropic, cada sesión obtiene una máquina virtual (VM) nueva ejecutando Ubuntu 24.04 en x86\_64, independientemente de su propio sistema operativo y arquitectura de CPU, con su repositorio clonado y cadenas de herramientas comunes preinstaladas. Cuando una dependencia proporciona binarios precompilados, como gemas de Ruby con extensiones nativas o ruedas de Python precompiladas, use su compilación de Linux x86\_64 para coincidir con la VM. Esta sección cubre los valores predeterminados alojados por Anthropic, las herramientas integradas de GitHub, cómo [ejecutar pruebas y servicios](#run-tests-start-services-and-add-packages) y los [límites de recursos](#resource-limits) que obtiene cada VM.284En entornos alojados por Anthropic, cada sesión obtiene una máquina virtual (VM) nueva ejecutando Ubuntu 24.04 en x86\_64, independientemente de su propio sistema operativo y arquitectura de CPU, con su repositorio clonado y cadenas de herramientas comunes preinstaladas. Cuando una dependencia proporciona binarios precompilados, como gemas de Ruby con extensiones nativas o ruedas de Python precompiladas, use su compilación de Linux x86\_64 para coincidir con la VM. Esta sección cubre los valores predeterminados alojados por Anthropic, las herramientas integradas de GitHub, cómo [ejecutar pruebas y servicios](#run-tests-start-services-and-add-packages), los [límites de recursos](#resource-limits) que obtiene cada VM, y los [límites de tiempo](#time-limits) en trabajos de larga duración.

285 285 

286<Note>286<Note>

287 Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en sus propios ejecutores en su lugar, con las herramientas que proporciona su imagen de ejecutor.287 Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en sus propios ejecutores en su lugar, con las herramientas que proporciona su imagen de ejecutor.


421 421 

422La VM puede detener tareas que necesitan significativamente más memoria, como trabajos de compilación grandes o pruebas que consumen mucha memoria. Para cargas de trabajo más allá de estos límites, use [Remote Control](/docs/es/remote-control) para ejecutar Claude Code en su propio hardware, o ejecute sesiones en la nube en un [entorno autohospedado](/docs/es/self-hosted-environments) en computación que su organización opera.422La VM puede detener tareas que necesitan significativamente más memoria, como trabajos de compilación grandes o pruebas que consumen mucha memoria. Para cargas de trabajo más allá de estos límites, use [Remote Control](/docs/es/remote-control) para ejecutar Claude Code en su propio hardware, o ejecute sesiones en la nube en un [entorno autohospedado](/docs/es/self-hosted-environments) en computación que su organización opera.

423 423 

424<h3 id="time-limits">

425 Límites de tiempo

426</h3>

427 

428En entornos alojados por Anthropic, estos límites de tiempo se aplican a trabajos de larga duración en una sesión en la nube, como una compilación, una instalación o una ejecución de prueba. Cada entrada enlaza a la sección que define el límite.

429 

430* **Comandos que ejecuta Claude**: un entorno en la nube no establece su propio tiempo de espera de comando, por lo que se aplican los valores predeterminados de la herramienta Bash. Claude espera 2 minutos por un comando de forma predeterminada y puede solicitar hasta 10 minutos. Cuando un comando alcanza su [tiempo de espera](/docs/es/tools-reference#timeout-and-output-limits), Claude Code [lo mueve al fondo](/docs/es/tools-reference#background-commands) en lugar de detenerlo, a menos que el comando comience con `sleep`.

431* **Hooks SessionStart**: Claude Code cancela un hook `command` después de 600 segundos a menos que establezca [`timeout`](/docs/es/hooks#common-fields), en segundos, en la entrada del hook. Claude Code no aplica el tiempo de espera en un hook que ejecuta con [`async: true`](/docs/es/hooks#run-hooks-in-the-background).

432* **Script de configuración**: un script que tarda más de aproximadamente cinco minutos no se almacena en caché. [Requisitos de script](#script-requirements) cubre cómo mantenerse por debajo de eso.

433* **Sesiones inactivas**: una sesión se detiene después de un período de inactividad y su VM se reclama. [Entorno expirado](/docs/es/claude-code-on-the-web#environment-expired) cubre qué cuenta como inactivo y cómo reabrir la sesión.

434 

435Para aumentar los tiempos de espera de comando para las sesiones de un entorno, agregue [`BASH_DEFAULT_TIMEOUT_MS` y `BASH_MAX_TIMEOUT_MS`](/docs/es/env-vars#variables) a sus [variables de entorno](#set-environment-variables). Ambos toman milisegundos. Por ejemplo, `BASH_DEFAULT_TIMEOUT_MS=600000` hace que 10 minutos sea el valor predeterminado.

436 

424<h2 id="setup-scripts">437<h2 id="setup-scripts">

425 Scripts de configuración438 Scripts de configuración

426</h2>439</h2>


445Un script de configuración tiene tres restricciones para escribir:458Un script de configuración tiene tres restricciones para escribir:

446 459 

447* **Salir con cero**: si el script sale con un valor distinto de cero, la sesión no se inicia. Agregue `|| true` a comandos no críticos para que una falla de instalación intermitente no bloquee la sesión.460* **Salir con cero**: si el script sale con un valor distinto de cero, la sesión no se inicia. Agregue `|| true` a comandos no críticos para que una falla de instalación intermitente no bloquee la sesión.

448* **Terminar dentro de cinco minutos**: mantenga el tiempo de ejecución total del script por debajo de aproximadamente cinco minutos para que el [almacenamiento en caché del entorno](#environment-caching) pueda compilarse. Ejecute instalaciones independientes en paralelo con `&` y `wait`, y mueva cualquier descarga única que no quepa a un hook [SessionStart](#setup-scripts-vs-sessionstart-hooks) que lo inicie en segundo plano.461* **Terminar dentro de cinco minutos**: mantenga el tiempo de ejecución total del script por debajo de aproximadamente cinco minutos para que el [almacenamiento en caché del entorno](#environment-caching) pueda compilarse. Cuando la configuración tarda más que eso, el entorno no se almacena en caché. Ejecute instalaciones independientes en paralelo con `&` y `wait`, y mueva cualquier descarga única que no quepa a un hook [SessionStart](#setup-scripts-vs-sessionstart-hooks) que lo inicie en segundo plano. Si las nuevas sesiones se atascan o fallan durante la configuración, consulte [Las nuevas sesiones se cuelgan o agotan el tiempo de espera durante la configuración](/docs/es/web-quickstart#new-sessions-hang-or-time-out-during-setup).

449* **Acceso a la red para instalaciones**: las instalaciones de paquetes necesitan alcanzar registros. El nivel **Trusted** predeterminado cubre [registros de paquetes comunes](#default-allowed-domains) incluyendo npm, PyPI, RubyGems y crates.io; con acceso a la red **None**, las instalaciones fallan.462* **Acceso a la red para instalaciones**: las instalaciones de paquetes necesitan alcanzar registros. El nivel **Trusted** predeterminado cubre [registros de paquetes comunes](#default-allowed-domains) incluyendo npm, PyPI, RubyGems y crates.io; con acceso a la red **None**, las instalaciones fallan.

450 463 

451<h3 id="environment-caching">464<h3 id="environment-caching">

452 Almacenamiento en caché del entorno465 Almacenamiento en caché del entorno

453</h3>466</h3>

454 467 

455El script de configuración se ejecuta la primera vez que inicia una sesión en un entorno. Después de que se completa, Anthropic toma una instantánea del sistema de archivos y reutiliza esa instantánea como punto de partida para sesiones posteriores. Las nuevas sesiones comienzan con sus dependencias, herramientas e imágenes de Docker ya en el disco, y omiten el paso del script de configuración. Esto mantiene el inicio rápido incluso cuando el script instala cadenas de herramientas grandes o extrae imágenes de contenedor.468El script de configuración se ejecuta la primera vez que inicia una sesión en un entorno. Cuando la configuración se completa dentro de [aproximadamente cinco minutos](#script-requirements), Anthropic toma una instantánea del sistema de archivos y reutiliza esa instantánea como punto de partida para sesiones posteriores. Las nuevas sesiones comienzan con sus dependencias, herramientas e imágenes de Docker ya en el disco, y omiten el paso del script de configuración. Esto mantiene el inicio rápido incluso cuando el script instala cadenas de herramientas grandes o extrae imágenes de contenedor. Si la configuración tarda más de aproximadamente cinco minutos, el entorno no se almacena en caché.

456 469 

457El caché es una instantánea del sistema de archivos, por lo que mantiene lo que el script de configuración escribe en el disco y pierde cualquier cosa que solo estaba en ejecución. Los paquetes que instala, las imágenes de Docker que extrae y los archivos que escribe se transfieren. Una base de datos que inició el script, una pila `docker compose up` o cualquier otro proceso en segundo plano no; inicie esos por sesión pidiendo a Claude o con un hook [SessionStart](#setup-scripts-vs-sessionstart-hooks).470El caché es una instantánea del sistema de archivos, por lo que mantiene lo que el script de configuración escribe en el disco y pierde cualquier cosa que solo estaba en ejecución. Los paquetes que instala, las imágenes de Docker que extrae y los archivos que escribe se transfieren. Una base de datos que inició el script, una pila `docker compose up` o cualquier otro proceso en segundo plano no; inicie esos por sesión pidiendo a Claude o con un hook [SessionStart](#setup-scripts-vs-sessionstart-hooks).

458 471 

code-review.md +2 −2

Details

297 Solución de problemas297 Solución de problemas

298</h2>298</h2>

299 299 

300Las ejecuciones de revisión son de mejor esfuerzo. Una ejecución fallida nunca bloquea su PR, pero tampoco se reintenta por sí sola. Esta sección cubre cómo recuperarse de una ejecución fallida y dónde buscar cuando la ejecución de verificación reporta problemas que no puede encontrar.300Las ejecuciones de revisión son de mejor esfuerzo, y una ejecución fallida nunca bloquea su PR. Code Review reintenta algunas revisiones interrumpidas por su cuenta. Esta sección cubre cómo ejecutar una revisión nuevamente usted mismo y dónde buscar cuando la ejecución de verificación reporta problemas que no puede encontrar.

301 301 

302<h3 id="retrigger-a-failed-or-timed-out-review">302<h3 id="retrigger-a-failed-or-timed-out-review">

303 Reactivar una revisión fallida o agotada por tiempo303 Reactivar una revisión fallida o agotada por tiempo

304</h3>304</h3>

305 305 

306Cuando la infraestructura de revisión golpea un error interno o excede su límite de tiempo, la ejecución de verificación se completa con un título de **Code review encountered an error** o **Code review timed out**. La conclusión sigue siendo neutral, por lo que nada bloquea su fusión, pero no se publican hallazgos.306Cuando una revisión falla o excede su límite de tiempo, la ejecución de verificación se completa con un título como **Code review failed** o **Code review timed out**. La conclusión sigue siendo neutral, por lo que nada bloquea su fusión. A menos que el resumen de la ejecución de verificación indique que una nueva revisión del commit ha sido puesta en cola automáticamente, ejecute la revisión nuevamente usted mismo.

307 307 

308Para ejecutar la revisión nuevamente, comente `@claude review` en el PR. Esto inicia una revisión nueva sin suscribir el PR a push futuros. Si el PR no es [de una bifurcación](#review-pull-requests-from-forks), puede hacer clic en **Re-run** en la verificación **Claude Code Review** en la pestaña Checks de GitHub. Una reejecución también inicia una revisión nueva sin suscribir el PR.308Para ejecutar la revisión nuevamente, comente `@claude review` en el PR. Esto inicia una revisión nueva sin suscribir el PR a push futuros. Si el PR no es [de una bifurcación](#review-pull-requests-from-forks), puede hacer clic en **Re-run** en la verificación **Claude Code Review** en la pestaña Checks de GitHub. Una reejecución también inicia una revisión nueva sin suscribir el PR.

309 309 

commands.md +5 −4

Details

69| `/chrome` | Configura los ajustes de [Claude en Chrome](/docs/es/chrome) |69| `/chrome` | Configura los ajustes de [Claude en Chrome](/docs/es/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de [Claude API](https://platform.claude.com/docs/en/api/overview) y [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el idioma de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Ejecuta `migrate` para actualizar el código existente de Claude API a un modelo más nuevo. Ejecuta `upgrade` para mover la dependencia del SDK de Anthropic de tu proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x. Ejecuta `managed-agents-onboard` para un tutorial que crea un nuevo Managed Agent. Ejecuta `prompt-audit` para marcar instrucciones escritas para modelos más antiguos en tus prompts, skills y descripciones de herramientas y proponer correcciones como un diff. Ejecuta `cost-optimize` para perfilar dónde va el gasto de Claude API de tu proyecto y proponer ahorros de opciones como almacenamiento en caché de prompts, recorte de tokens de entrada y salida innecesarios, procesamiento por lotes, esfuerzo y elección de modelo, un cambio a la vez. Ejecuta `build-eval` para construir un conjunto de evaluación para tu aplicación impulsada por Claude, e `hillclimb` para mejorar iterativamente la aplicación contra una evaluación existente. El subcomando `prompt-audit` requiere Claude Code v2.1.221 o posterior, `upgrade` requiere v2.1.236 o posterior, `cost-optimize` requiere v2.1.247 o posterior, y `build-eval` e `hillclimb` requieren v2.1.259 o posterior |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de [Claude API](https://platform.claude.com/docs/en/api/overview) y [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el idioma de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Ejecuta `migrate` para actualizar el código existente de Claude API a un modelo más nuevo. Ejecuta `upgrade` para mover la dependencia del SDK de Anthropic de tu proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x. Ejecuta `managed-agents-onboard` para un tutorial que crea un nuevo Managed Agent. Ejecuta `prompt-audit` para marcar instrucciones escritas para modelos más antiguos en tus prompts, skills y descripciones de herramientas y proponer correcciones como un diff. Ejecuta `cost-optimize` para perfilar dónde va el gasto de Claude API de tu proyecto y proponer ahorros de opciones como almacenamiento en caché de prompts, recorte de tokens de entrada y salida innecesarios, procesamiento por lotes, esfuerzo y elección de modelo, un cambio a la vez. Ejecuta `build-eval` para construir un conjunto de evaluación para tu aplicación impulsada por Claude, e `hillclimb` para mejorar iterativamente la aplicación contra una evaluación existente. El subcomando `prompt-audit` requiere Claude Code v2.1.221 o posterior, `upgrade` requiere v2.1.236 o posterior, `cost-optimize` requiere v2.1.247 o posterior, y `build-eval` e `hillclimb` requieren v2.1.259 o posterior |

71| `/clear [name]` | Inicia una nueva conversación con contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector `/resume`. Para liberar contexto mientras continúas la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume`, o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rebobinado](/docs/es/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |71| `/clear [name]` | Inicia una nueva conversación con contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector `/resume`. Para liberar contexto mientras continúas la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume`, o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rebobinado](/docs/es/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, rama o ruta que pases, para detecta lo que sí llega al PR en cuanto a errores de corrección. Dependiendo de tu modelo y nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para aplicar hallazgos, `--comment` para publicarlos en el PR de GitHub o solicitud de fusión de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en una solicitud de fusión de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` en un destino de PR de `github.com`, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de lanzamiento; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para los niveles de esfuerzo, orientación y cómo se relaciona con `/simplify`. Alias: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, rama o ruta que pases, para detectar lo que sí llega al PR en cuanto a errores de corrección. Dependiendo de tu modelo y nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para aplicar hallazgos, `--comment` para publicarlos en el PR de GitHub o solicitud de fusión de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en una solicitud de fusión de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` en un destino de PR de `github.com`, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de lanzamiento; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para los niveles de esfuerzo, orientación y cómo se relaciona con `/simplify`. Alias: `/review` |

73| `/color [color\|default]` | Establece el color de la barra de prompts para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` para restablecer, o ejecuta sin argumento para elegir un color aleatorio. Cuando [Remote Control](/docs/es/remote-control) está conectado, el color se sincroniza con claude.ai/code. También disponible en modo no interactivo (`-p`); requiere Claude Code v2.1.205 o posterior |73| `/color [color\|default]` | Establece el color de la barra de prompts para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` para restablecer, o ejecuta sin argumento para elegir un color aleatorio. Cuando [Remote Control](/docs/es/remote-control) está conectado, el color se sincroniza con claude.ai/code. También disponible en modo no interactivo (`-p`); requiere Claude Code v2.1.205 o posterior |

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

75| `/config [key=value ...]` | Abre la interfaz de [Configuración](/docs/es/settings) para ajustar tema, modelo, [estilo de salida](/docs/es/output-styles) y otras preferencias. Pasa uno o más pares `key=value` para establecer una configuración directamente sin abrir la interfaz, por ejemplo `/config thinking=false`, `/config theme=dark`, o `/config model=sonnet`. El formulario `key=value` también funciona en modo no interactivo (`-p`) y desde la aplicación móvil de Claude a través de [Remote Control](/docs/es/remote-control). El formulario `key=value` no puede activar una configuración que necesite tu confirmación en el panel, como [`autoContinueAtUsageLimit`](/docs/es/interactive-mode#turn-automatic-continue-off), aunque puede desactivarla. Ejecuta `/config --help` para enumerar las claves que acepta. Alias: `/settings` |75| `/config [key=value ...]` | Abre la interfaz de [Configuración](/docs/es/settings) para ajustar tema, modelo, [estilo de salida](/docs/es/output-styles) y otras preferencias. Pasa uno o más pares `key=value` para establecer una configuración directamente sin abrir la interfaz, por ejemplo `/config thinking=false`, `/config theme=dark`, o `/config model=sonnet`. El formulario `key=value` también funciona en modo no interactivo (`-p`) y desde la aplicación móvil de Claude a través de [Remote Control](/docs/es/remote-control). El formulario `key=value` no puede activar una configuración que necesite tu confirmación en el panel, como [`autoContinueAtUsageLimit`](/docs/es/interactive-mode#turn-automatic-continue-off), aunque puede desactivarla. Ejecuta `/config --help` para enumerar las claves que acepta. Alias: `/settings` |


79| `/dataviz [request]` | **[Skill](/docs/es/skills#bundled-skills).** Orientación de diseño para gráficos, gráficos y paneles. Claude elige la forma de gráfico para los datos, asigna color por rol, valida la paleta para seguridad de daltonismo y contraste con un script agrupado, y aplica reglas de marca, interacción y accesibilidad. Usa una paleta de marcador neutral de marca que reemplazas con la tuya. Requiere Claude Code v2.1.198 o posterior |79| `/dataviz [request]` | **[Skill](/docs/es/skills#bundled-skills).** Orientación de diseño para gráficos, gráficos y paneles. Claude elige la forma de gráfico para los datos, asigna color por rol, valida la paleta para seguridad de daltonismo y contraste con un script agrupado, y aplica reglas de marca, interacción y accesibilidad. Usa una paleta de marcador neutral de marca que reemplazas con la tuya. Requiere Claude Code v2.1.198 o posterior |

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

81| `/deep-research <question>` | **[Workflow](/docs/es/workflows#bundled-workflows).** Distribuye búsquedas web en una pregunta, obtiene y verifica cruzadamente fuentes, y sintetiza un informe citado |81| `/deep-research <question>` | **[Workflow](/docs/es/workflows#bundled-workflows).** Distribuye búsquedas web en una pregunta, obtiene y verifica cruzadamente fuentes, y sintetiza un informe citado |

82| `/design [brief]` | **[Skill](/docs/es/skills#bundled-skills).** Redacta maquetas de UI, flujos de pantalla, páginas de destino o carteles como artículos en un lienzo, publicados como un [artefacto](/docs/es/artifacts#draft-a-design-canvas) de Design, por ejemplo `/design a settings screen for a mobile banking app`. Editas los artículos en un navegador de escritorio, y tus ediciones se guardan automáticamente. Puedes exportar cada artículo como PNG o PDF. Requiere una sesión donde [los artefactos estén disponibles](/docs/es/artifacts#availability) y Claude Code v2.1.265 o posterior. Disponible en la API de Anthropic. En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform en AWS, los artefactos no están disponibles, por lo que el comando no está disponible allí |82| `/design [brief]` | **[Skill](/docs/es/skills#bundled-skills).** Redacta maquetas de UI, flujos de pantalla, páginas de destino o carteles como artículos en un lienzo, publicados como un [artefacto](/docs/es/artifacts#draft-a-design-canvas) de Design, por ejemplo `/design a settings screen for a mobile banking app`. Editas los artículos en un navegador de escritorio, y tus ediciones se guardan automáticamente. Puedes exportar cada artículo como PNG o PDF. Requiere Claude Code v2.1.265 o posterior, una sesión donde [los artefactos estén disponibles](/docs/es/artifacts#availability), y una cuenta donde la [plantilla de Design esté disponible](/docs/es/artifacts#start-from-a-slides-design-or-docs-template); si tu organización ha desactivado esa plantilla, `/design` no redacta diseños. Disponible en la API de Anthropic. En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform en AWS, los artefactos no están disponibles, por lo que el comando no está disponible allí |

83| `/design-login` | Autoriza el acceso al sistema de diseño para `/design-sync` con tu cuenta de claude.ai |83| `/design-login` | Autoriza el acceso al sistema de diseño para `/design-sync` con tu cuenta de claude.ai |

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

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

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

87| `/doctor` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una verificación de configuración que diagnostica problemas y puede repararlos. Verifica la salud de la instalación, incluidas instalaciones duplicadas o sobrantes, problemas de `PATH` y archivos de configuración no analizables. Encuentra skills, servidores MCP y plugins no utilizados versus su costo de contexto, marca [hooks](/docs/es/hooks) lentos, y verifica si hay una versión más nueva en tu [canal de lanzamiento](/docs/es/setup#configure-release-channel). Deduplica archivos `CLAUDE.md` locales contra los registrados, recorta archivos [`CLAUDE.md`](/docs/es/memory#my-claude-md-is-too-large) registrados cortando contenido que Claude podría derivar de la base de código, y migra la orientación siempre cargada que permanece en [skills](/docs/es/skills) y archivos `CLAUDE.md` anidados que se cargan bajo demanda. También ofrece hacer que [auto mode](/docs/es/permissions#permission-modes) sea tu predeterminado y [pre-aprobar](/docs/es/permissions) comandos de solo lectura frecuentemente denegados. Reporta hallazgos primero y pide confirmación antes de cambiar nada. Desde la terminal, `claude doctor` imprime diagnósticos de instalación de solo lectura sin iniciar una sesión. Alias: `/checkup`. La verificación de recorte de `CLAUDE.md` requiere Claude Code v2.1.206 o posterior. Antes de v2.1.205, `/doctor` abría una pantalla de diagnósticos de solo lectura y presionar `f` enviaba el informe a Claude |87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una verificación de configuración que diagnostica problemas y puede repararlos. Verifica la salud de la instalación, incluidas instalaciones duplicadas o sobrantes, problemas de `PATH` y archivos de configuración no analizables. Encuentra skills, servidores MCP y plugins no utilizados versus su costo de contexto, marca [hooks](/docs/es/hooks) lentos, y verifica si hay una versión más nueva en tu [canal de lanzamiento](/docs/es/setup#configure-release-channel). Deduplica archivos `CLAUDE.md` locales contra los registrados, recorta archivos [`CLAUDE.md`](/docs/es/memory#my-claude-md-is-too-large) registrados cortando contenido que Claude podría derivar de la base de código, y migra la orientación siempre cargada que permanece en [skills](/docs/es/skills) y archivos `CLAUDE.md` anidados que se cargan bajo demanda. También ofrece hacer que [auto mode](/docs/es/permissions#permission-modes) sea tu predeterminado y [pre-aprobar](/docs/es/permissions) comandos de solo lectura frecuentemente denegados. Reporta hallazgos primero y pide confirmación antes de cambiar nada. Desde la terminal, `claude doctor` imprime diagnósticos de instalación de solo lectura sin iniciar una sesión. Alias: `/checkup`. Ejecuta `/doctor prompt-audit` para que Claude [audite tus archivos `CLAUDE.md`, skills y otra configuración](/docs/es/memory#write-effective-instructions) para instrucciones obsoletas o conflictivas en lugar de ejecutar la verificación. El subcomando `prompt-audit` requiere Claude Code v2.1.283 o posterior. La verificación de recorte de `CLAUDE.md` requiere Claude Code v2.1.206 o posterior. Antes de v2.1.205, `/doctor` abría una pantalla de diagnósticos de solo lectura y presionar `f` enviaba el informe a Claude |

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

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

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

91| `/fast [on\|off]` | Alterna [modo rápido](/docs/es/fast-mode) activado o desactivado. Ejecútalo mientras Claude está respondiendo y Claude Code alterna el modo rápido sin esperar a que el turno termine, aunque el turno en ejecución termina a su velocidad original. Antes de v2.1.242, Claude Code decidió desde una bandera de característica que obtuvo de Anthropic si ejecutar el comando a mitad de turno o ponerlo en cola hasta que el turno terminara, y siempre lo ponía en cola en una sesión que no [obtiene banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching). La disponibilidad en modo no interactivo con `-p` es limitada; consulta [Alternar modo rápido](/docs/es/fast-mode#toggle-fast-mode). Requiere Claude Code v2.1.205 o posterior |91| `/fast [on\|off]` | Alterna [modo rápido](/docs/es/fast-mode) activado o desactivado. Ejecútalo mientras Claude está respondiendo y Claude Code alterna el modo rápido sin esperar a que el turno termine, aunque el turno en ejecución termina a su velocidad original. Antes de v2.1.242, Claude Code decidió desde una bandera de característica que obtuvo de Anthropic si ejecutar el comando a mitad de turno o ponerlo en cola hasta que el turno terminara, y siempre lo ponía en cola en una sesión que no [obtiene banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching). La disponibilidad en modo no interactivo con `-p` es limitada; consulta [Alternar modo rápido](/docs/es/fast-mode#toggle-fast-mode). Requiere Claude Code v2.1.205 o posterior |


143| `/simplify [target]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el código cambiado para oportunidades de limpieza y aplica las correcciones. Cuatro [agentes](/docs/es/sub-agents) de revisión se ejecutan en paralelo, cubriendo reutilización de ayudantes existentes, simplificación, eficiencia y si el cambio está al nivel correcto de abstracción. La revisión no busca errores de corrección. Usa `/code-review` para encontrar errores. Pasa una ruta o referencia de PR para revisar un objetivo específico |143| `/simplify [target]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el código cambiado para oportunidades de limpieza y aplica las correcciones. Cuatro [agentes](/docs/es/sub-agents) de revisión se ejecutan en paralelo, cubriendo reutilización de ayudantes existentes, simplificación, eficiencia y si el cambio está al nivel correcto de abstracción. La revisión no busca errores de corrección. Usa `/code-review` para encontrar errores. Pasa una ruta o referencia de PR para revisar un objetivo específico |

144| `/skill-doctor` | Muestra lo que cada una de tus [skills](/docs/es/skills) cuesta en contexto y con qué frecuencia se usa, para que puedas [encontrar skills para desactivar](/docs/es/skills#find-unused-skills). Requiere Claude Code v2.1.252 o posterior y [obtención de banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching) |144| `/skill-doctor` | Muestra lo que cada una de tus [skills](/docs/es/skills) cuesta en contexto y con qué frecuencia se usa, para que puedas [encontrar skills para desactivar](/docs/es/skills#find-unused-skills). Requiere Claude Code v2.1.252 o posterior y [obtención de banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching) |

145| `/skills` | Enumera [skills](/docs/es/skills) disponibles. Escribe para filtrar la lista por nombre, descripción o fuente. Presiona `t` para ordenar por conteo de tokens, `Space` o `Enter` para [ciclar la visibilidad de una skill a Claude y el menú `/`](/docs/es/skills#override-skill-visibility-from-settings), y `Esc` para guardar y cerrar. No puedes ciclar skills de plugins, skills cuya portada establece `disable-model-invocation: true`, o skills con una entrada `skillOverrides` en configuración administrada o la bandera `--settings` |145| `/skills` | Enumera [skills](/docs/es/skills) disponibles. Escribe para filtrar la lista por nombre, descripción o fuente. Presiona `t` para ordenar por conteo de tokens, `Space` o `Enter` para [ciclar la visibilidad de una skill a Claude y el menú `/`](/docs/es/skills#override-skill-visibility-from-settings), y `Esc` para guardar y cerrar. No puedes ciclar skills de plugins, skills cuya portada establece `disable-model-invocation: true`, o skills con una entrada `skillOverrides` en configuración administrada o la bandera `--settings` |

146| `/slides [brief]` | **[Skill](/docs/es/skills#bundled-skills).** Crea una nueva presentación como un [artefacto](/docs/es/artifacts#make-a-slide-deck) de Claude Slides rellenado desde tu resumen, por ejemplo `/slides a quarterly review of the platform team`. Requiere Claude Code v2.1.265 o posterior, una sesión donde [los artefactos estén disponibles](/docs/es/artifacts#availability), y una cuenta donde la [plantilla de Slides esté disponible](/docs/es/artifacts#start-from-a-slides-design-or-docs-template); de lo contrario el comando no aparece. Disponible en la API de Anthropic. En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y Claude Platform en AWS, los artefactos no están disponibles, por lo que el comando no está disponible allí |

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

147| `/status` | Abre la interfaz de Configuración en la pestaña Estado, mostrando versión, modelo, cuenta y conectividad. Una fila `Session kind` lee `background job · attached` o `background job · unattended` en una [sesión de fondo](/docs/es/agent-view), dependiendo de si una terminal está adjunta, e `interactive` en cualquier otra sesión. Antes de v2.1.221, `/status` no mostraba esta fila. Funciona mientras Claude está respondiendo |148| `/status` | Abre la interfaz de Configuración en la pestaña Estado, mostrando versión, modelo, cuenta y conectividad. Una fila `Session kind` lee `background job · attached` o `background job · unattended` en una [sesión de fondo](/docs/es/agent-view), dependiendo de si una terminal está adjunta, e `interactive` en cualquier otra sesión. Antes de v2.1.221, `/status` no mostraba esta fila. Funciona mientras Claude está respondiendo |

148| `/statusline` | Configura la [línea de estado](/docs/es/statusline) de Claude Code. Describe lo que quieres, o ejecuta sin argumentos para auto-configurar desde tu prompt de shell |149| `/statusline` | Configura la [línea de estado](/docs/es/statusline) de Claude Code. Describe lo que quieres, o ejecuta sin argumentos para auto-configurar desde tu prompt de shell |

Details

228formato y ediciones mecánicas donde la velocidad gana. *Fable* es el modelo más228formato y ediciones mecánicas donde la velocidad gana. *Fable* es el modelo más

229capaz para sus tareas más difíciles y de mayor duración; no es el229capaz para sus tareas más difíciles y de mayor duración; no es el

230predeterminado, así que selecciónelo con `/model fable`, y tenga en cuenta que el contenido de ciberseguridad y230predeterminado, así que selecciónelo con `/model fable`, y tenga en cuenta que el contenido de ciberseguridad y

231biología se retrocede automáticamente a Opus. Opus 5.5 y Opus 5 ejecutan sus propias231biología se retrocede automáticamente a Opus. Opus 5.5, Sonnet 5.5 y

232comprobaciones también: el contenido marcado cambia a un Opus anterior, excepto232Opus 5 ejecutan sus propias comprobaciones también: el contenido marcado cambia a un modelo anterior

233que el contenido de biología marcado en Opus 5 se rechaza.233en la misma familia, excepto que el contenido de biología marcado en Opus 5 o Sonnet

2345.5 se rechaza.

234 235 

235*Pruébalo ahora:* escribe `/model` y elige Sonnet si aún no lo has hecho. Es236*Pruébalo ahora:* escribe `/model` y elige Sonnet si aún no lo has hecho. Es

236el predeterminado correcto para la mayoría de tareas.237el predeterminado correcto para la mayoría de tareas.


242| - | - |243| - | - |

243| Fable | Las tareas más difíciles y de mayor duración. Solo opción: selecciónelo con `/model fable`. El contenido de ciberseguridad o biología [se retrocede a Opus](/docs/es/model-config#automatic-model-fallback) |244| Fable | Las tareas más difíciles y de mayor duración. Solo opción: selecciónelo con `/model fable`. El contenido de ciberseguridad o biología [se retrocede a Opus](/docs/es/model-config#automatic-model-fallback) |

244| Opus | Refactores a gran escala, depuración compleja, decisiones de arquitectura, cambios de alto riesgo. En Opus 5.5 y Opus 5, el contenido de ciberseguridad o biología desencadena [retroceso automático de modelo o un rechazo](/docs/es/model-config#automatic-model-fallback) |245| Opus | Refactores a gran escala, depuración compleja, decisiones de arquitectura, cambios de alto riesgo. En Opus 5.5 y Opus 5, el contenido de ciberseguridad o biología desencadena [retroceso automático de modelo o un rechazo](/docs/es/model-config#automatic-model-fallback) |

245| Sonnet | Trabajo de características cotidianas, corrección de errores, pruebas, documentación, revisión de código. Predeterminado recomendado. |246| Sonnet | Trabajo de características cotidianas, corrección de errores, pruebas, documentación, revisión de código. Predeterminado recomendado. En Sonnet 5.5, el contenido de ciberseguridad o biología desencadena [retroceso automático de modelo o un rechazo](/docs/es/model-config#automatic-model-fallback) |

246| Haiku | Preguntas rápidas, formato, ediciones mecánicas, iteración rápida |247| Haiku | Preguntas rápidas, formato, ediciones mecánicas, iteración rápida |

247 248 

248**Victorias rápidas para probar primero**249**Victorias rápidas para probar primero**

Details

1632* **Limpiar entre tareas**: ejecute `/clear` cuando cambie a trabajo no relacionado. La conversación antigua desplaza los archivos que necesita a continuación y cuesta tokens en cada mensaje.1632* **Limpiar entre tareas**: ejecute `/clear` cuando cambie a trabajo no relacionado. La conversación antigua desplaza los archivos que necesita a continuación y cuesta tokens en cada mensaje.

1633* **Delegar lecturas grandes**: envíe investigación a un [subagent](/docs/es/sub-agents) para que el contenido del archivo permanezca en su ventana de contexto, no en la suya.1633* **Delegar lecturas grandes**: envíe investigación a un [subagent](/docs/es/sub-agents) para que el contenido del archivo permanezca en su ventana de contexto, no en la suya.

1634 1634 

1635Si necesita una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, Sonnet 5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Vea [Extended context](/docs/es/model-config#extended-context) para disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.1635Si necesita una ventana más grande en lugar de una conversación más pequeña, los modelos Fable, Sonnet 5 y posteriores, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una ventana de contexto de 1 millón de tokens. Vea [Extended context](/docs/es/model-config#extended-context) para disponibilidad por plan y cómo seleccionar una variante de modelo `[1m]`. La compactación funciona de la misma manera en el límite más grande.

1636 1636 

1637Sonnet 5 se ejecuta con la ventana de contexto de 1M y no tiene variante `[1m]` para seleccionar. Vea [Sonnet 5 context window](/docs/es/model-config#sonnet-5-context-window) para sus umbrales de compactación automática y la excepción de la puerta de enlace LLM.1637Sonnet 5.5 y Sonnet 5 se ejecutan con la ventana de contexto de 1M y no tienen variante `[1m]` para seleccionar. Vea [Sonnet 5.5 and Sonnet 5 context window](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) para sus umbrales de compactación automática y la excepción de la puerta de enlace LLM.

1638 1638 

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

1640 1640 

costs.md +4 −1

Details

359 359 

360El pensamiento extendido está habilitado por defecto porque mejora significativamente el rendimiento en tareas complejas de planificación y razonamiento. Los tokens de pensamiento se facturan como tokens de salida, y el presupuesto predeterminado puede ser decenas de miles de tokens por solicitud dependiendo del modelo.360El pensamiento extendido está habilitado por defecto porque mejora significativamente el rendimiento en tareas complejas de planificación y razonamiento. Los tokens de pensamiento se facturan como tokens de salida, y el presupuesto predeterminado puede ser decenas de miles de tokens por solicitud dependiendo del modelo.

361 361 

362Para tareas más simples donde el razonamiento profundo no es necesario, puede reducir costos bajando el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) con `/effort` o en `/model`, o deshabilitando el pensamiento en `/config`. No puede desactivar el pensamiento en Opus 5.5 o los modelos Fable, que siempre usan pensamiento extendido.362Para tareas más simples donde el razonamiento profundo no es necesario, puede reducir costos bajando el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) con `/effort` o en `/model`, o deshabilitando el pensamiento en `/config`. No puede desactivar el pensamiento en Opus 5.5, Sonnet 5.5, o los modelos Fable, que siempre usan pensamiento extendido.

363 363 

364En modelos con un [presupuesto de pensamiento fijo](/docs/es/model-config#adaptive-reasoning-and-fixed-thinking-budgets), también puede bajar el presupuesto estableciendo la [variable de entorno](/docs/es/env-vars) `MAX_THINKING_TOKENS`, por ejemplo `MAX_THINKING_TOKENS=8000`. Los modelos de razonamiento adaptativo ignoran presupuestos distintos de cero, así que use niveles de esfuerzo en su lugar.364En modelos con un [presupuesto de pensamiento fijo](/docs/es/model-config#adaptive-reasoning-and-fixed-thinking-budgets), también puede bajar el presupuesto estableciendo la [variable de entorno](/docs/es/env-vars) `MAX_THINKING_TOKENS`, por ejemplo `MAX_THINKING_TOKENS=8000`. Los modelos de razonamiento adaptativo ignoran presupuestos distintos de cero, así que use niveles de esfuerzo en su lugar.

365 365 


369 369 

370Ejecutar pruebas, obtener documentación o procesar archivos de registro puede consumir contexto significativo. Delegue estos a [subagentes](/docs/es/sub-agents#isolate-high-volume-operations) para que la salida detallada permanezca en el contexto del subagente mientras solo un resumen regresa a su conversación principal.370Ejecutar pruebas, obtener documentación o procesar archivos de registro puede consumir contexto significativo. Delegue estos a [subagentes](/docs/es/sub-agents#isolate-high-volume-operations) para que la salida detallada permanezca en el contexto del subagente mientras solo un resumen regresa a su conversación principal.

371 371 

372Las solicitudes del subagente aún se extraen de su uso. Para gastar menos en ellas, [elija un modelo más pequeño para un subagente](/docs/es/sub-agents#choose-a-model) o [ejecute cada subagente en un modelo](/docs/es/sub-agents#run-every-subagent-on-one-model).

373 

372<h3 id="manage-agent-team-costs">374<h3 id="manage-agent-team-costs">

373 Gestione los costos del equipo de agentes375 Gestione los costos del equipo de agentes

374</h3>376</h3>


416* **Tareas programadas**: una [tarea programada](/docs/es/scheduled-tasks) se ejecuta en su intervalo incluso mientras la sesión está inactiva, enviando su contexto completo cada vez418* **Tareas programadas**: una [tarea programada](/docs/es/scheduled-tasks) se ejecuta en su intervalo incluso mientras la sesión está inactiva, enviando su contexto completo cada vez

417* **Mensajes entre sesiones**: Claude Code entrega un [mensaje de otra de sus sesiones](/docs/es/cross-session-messaging) como un nuevo turno cuando esta sesión está inactiva, enviando su contexto completo cada vez. Para retener los mensajes entrantes en lugar de entregarlos, establezca [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `hold`419* **Mensajes entre sesiones**: Claude Code entrega un [mensaje de otra de sus sesiones](/docs/es/cross-session-messaging) como un nuevo turno cuando esta sesión está inactiva, enviando su contexto completo cada vez. Para retener los mensajes entrantes en lugar de entregarlos, establezca [`crossSessionInbound`](/docs/es/settings-reference#crosssessioninbound) en `hold`

418* **Verificaciones de objetivos**: mientras el trabajo en segundo plano mantiene un [objetivo](/docs/es/goal) activo en espera, Claude Code [le pide a Claude que verifique ese trabajo](/docs/es/goal#background-work-defers-evaluation) incluso cuando la sesión está inactiva, iniciando un nuevo turno que envía su contexto completo. Claude Code inicia como máximo tres verificaciones inactivas por objetivo entre sus solicitudes. Antes de v2.1.246, las verificaciones inactivas eran ilimitadas. Para desactivar las verificaciones, establezca [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/es/env-vars) en `0`. Las verificaciones inactivas requieren Claude Code v2.1.236 o posterior420* **Verificaciones de objetivos**: mientras el trabajo en segundo plano mantiene un [objetivo](/docs/es/goal) activo en espera, Claude Code [le pide a Claude que verifique ese trabajo](/docs/es/goal#background-work-defers-evaluation) incluso cuando la sesión está inactiva, iniciando un nuevo turno que envía su contexto completo. Claude Code inicia como máximo tres verificaciones inactivas por objetivo entre sus solicitudes. Antes de v2.1.246, las verificaciones inactivas eran ilimitadas. Para desactivar las verificaciones, establezca [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/es/env-vars) en `0`. Las verificaciones inactivas requieren Claude Code v2.1.236 o posterior

421* **Subagentes y flujos de trabajo**: cada subagente, y cada agente que un [flujo de trabajo dinámico](/docs/es/workflows#cost) genera, envía sus propias solicitudes además de las de la conversación principal. El [desglose de atribución](#plan-usage-breakdown) muestra la parte del subagente

419* **Compañeros agentes**: cada [compañero](/docs/es/agent-team-token-costs) activo sigue consumiendo tokens hasta que sale422* **Compañeros agentes**: cada [compañero](/docs/es/agent-team-token-costs) activo sigue consumiendo tokens hasta que sale

420* **Compactación**: `/compact` lee la conversación que resume, por lo que [compactar un contexto grande](/docs/es/prompt-caching#compacting-the-conversation) es en sí una solicitud grande. Cuando desea un nuevo comienzo en lugar de continuidad, `/clear` no cuesta nada423* **Compactación**: `/compact` lee la conversación que resume, por lo que [compactar un contexto grande](/docs/es/prompt-caching#compacting-the-conversation) es en sí una solicitud grande. Cuando desea un nuevo comienzo en lugar de continuidad, `/clear` no cuesta nada

421 424 

Details

14 14 

15Un mensaje es un fragmento de texto que un Claude escribe a otro, nunca el historial de conversación o archivos del remitente. Para mover una conversación completa o su contexto, [reanuda la sesión](/docs/es/sessions#resume-a-session) en su lugar.15Un mensaje es un fragmento de texto que un Claude escribe a otro, nunca el historial de conversación o archivos del remitente. Para mover una conversación completa o su contexto, [reanuda la sesión](/docs/es/sessions#resume-a-session) en su lugar.

16 16 

17Claude utiliza dos herramientas para esto: `ListAgents` para descubrir qué agentes puede alcanzar, y `SendMessage` para entregar un mensaje a uno de ellos por nombre. Con la misma herramienta `SendMessage`, Claude también puede enviar mensajes a [subagentes](/docs/es/sub-agents#resume-subagents) y compañeros de [equipo de agentes](/docs/es/agent-teams) dentro de una única sesión o equipo. Esta página cubre mensajes entre tus sesiones independientes.

18 

19<h2 id="when-to-use-cross-session-messaging">17<h2 id="when-to-use-cross-session-messaging">

20 Cuándo usar mensajería entre sesiones18 Cuándo usar mensajería entre sesiones

21</h2>19</h2>


27* **Obtener estado del trabajo de larga duración**: haz que una migración o ejecución de prueba informe a la sesión que estás observando, o pregúntale desde allí. Si esa sesión está en esta máquina, Claude también puede [pedirle un aviso cuando la sesión se quede inactiva o salga](#get-a-notice-when-another-session-goes-idle).25* **Obtener estado del trabajo de larga duración**: haz que una migración o ejecución de prueba informe a la sesión que estás observando, o pregúntale desde allí. Si esa sesión está en esta máquina, Claude también puede [pedirle un aviso cuando la sesión se quede inactiva o salga](#get-a-notice-when-another-session-goes-idle).

28* **Enviar mensajes entre máquinas**: alcanza una de tus sesiones en otra máquina o en la web.26* **Enviar mensajes entre máquinas**: alcanza una de tus sesiones en otra máquina o en la web.

29 27 

30Usa mensajería entre sesiones independientes que inicias y diriges tú mismo. Claude Code tiene una característica dedicada para cada una de las otras formas de ejecutar o alcanzar múltiples sesiones, así que usa la construida para lo que estás haciendo en su lugar:

31 

32* Para continuar una conversación en otra terminal, o compartir su contexto con una nueva sesión, [reanuda la sesión](/docs/es/sessions#resume-a-session)

33* Para un equipo coordinado de sesiones que Claude genera y supervisa, usa [equipos de agentes](/docs/es/agent-teams)

34* Para observar y dirigir muchas sesiones desde un lugar, usa [vista de agentes](/docs/es/agent-view)

35* Para dirigir una sesión tú mismo desde tu teléfono u otro dispositivo, en lugar de que las sesiones se envíen mensajes entre sí, usa [Control Remoto](/docs/es/remote-control)

36* Para insertar eventos externos, como resultados de CI o mensajes de chat, en una sesión, usa [canales](/docs/es/channels)

37 

38<h2 id="message-another-session">28<h2 id="message-another-session">

39 Enviar un mensaje a otra sesión29 Enviar un mensaje a otra sesión

40</h2>30</h2>

41 31 

42Cuando una de tus sesiones aprende algo que otra sesión necesita, como un hallazgo, un estado o una decisión, Claude lo pasa en lugar de que copies y pegues entre terminales. Claude descubre el destino con `ListAgents` y envía con `SendMessage`, así que nunca llamas a ninguna herramienta tú mismo. Claude puede decidir enviar un mensaje sin ser preguntado, y también puedes solicitar uno.32Cuando una de tus sesiones aprende algo que otra sesión necesita, como un hallazgo, un estado o una decisión, Claude lo transmite en lugar de que copies y pegues entre terminales. Claude descubre el destino con `ListAgents` y envía con `SendMessage`, por lo que nunca llamas a ninguna de estas herramientas tú mismo. Claude puede decidir enviar un mensaje sin que se lo pidas, y también puedes solicitarle que lo haga.

43 33 

44Para solicitar uno tú mismo, dile a Claude qué quieres que la otra sesión sepa o haga. Este ejemplo es un mensaje que escribes, no un mensaje que Claude envía:34Para solicitarlo tú mismo, dile a Claude qué quieres que la otra sesión sepa o haga. Este ejemplo es un mensaje que escribes, no un mensaje que Claude envía:

45 35 

46```text wrap theme={null}36```text wrap theme={null}

47Pregunta a la sesión que se ejecuta en mi otra terminal si la migración terminó37Pregunta a la sesión que se ejecuta en mi otra terminal si la migración terminó

48```38```

49 39 

50Claude escribe el mensaje real en sí, así que tu mensaje puede dejar el contenido a Claude. Este mensaje solicita un resumen sin dictar su redacción, y lo que Claude envía varía:40Claude escribe el mensaje real en sí, por lo que tu solicitud puede dejar el contenido a Claude. Esta solicitud pide un resumen sin dictar su redacción, y lo que Claude envía varía:

51 41 

52```text wrap theme={null}42```text wrap theme={null}

53Explica lo que acabamos de hacer a la sesión que trabaja en la API de pagos43Explica lo que acabamos de hacer a la sesión que trabaja en la API de pagos

54```44```

55 45 

56Para nombrar el destino tú mismo, menciona la sesión en tu mensaje: escribe `@` seguido de las primeras letras del nombre de la sesión y elige la sesión del typeahead, de la misma manera que [@-mencionas un subagente](/docs/es/sub-agents#invoke-subagents-explicitly). Requiere Claude Code v2.1.232 o posterior. Claude Code inserta la mención, como `@api-worker`, y le dice a Claude qué sesión nombra, para que Claude pueda enviar un mensaje a esa sesión sin listar primero tus sesiones. Este mensaje nombra el destino con una mención:46Para nombrar el destino tú mismo, menciona la sesión en tu solicitud: escribe `@` seguido de las primeras letras del nombre de la sesión y elige la sesión del autocompletado, de la misma manera que [@-mencionas un subagente](/docs/es/sub-agents#invoke-subagents-explicitly). Requiere Claude Code v2.1.232 o posterior. Claude Code inserta la mención, como `@api-worker`, y le dice a Claude qué sesión nombra, para que Claude pueda enviar un mensaje a esa sesión sin listar primero tus sesiones. Esta solicitud nombra el destino con una mención:

57 47 

58```text wrap theme={null}48```text wrap theme={null}

59Hazle saber a @api-worker que la migración de esquema terminó49Hazle saber a @api-worker que la migración del esquema terminó

60```50```

61 51 

62El typeahead lista tus otras sesiones activas en esta máquina. Dos casos necesitan más que las primeras letras de un nombre:52El autocompletado lista tus otras sesiones activas en esta máquina. Dos casos necesitan más que las primeras letras de un nombre:

63 53 

64* **Una sesión más allá de esta máquina**: una sesión en la nube o Control Remoto aparece en el typeahead solo después de que Claude haya listado o enviado mensajes a tus sesiones más allá de esta máquina, así que pídele a Claude que las liste primero.54* **Una sesión más allá de esta máquina**: una sesión en la nube o de Control Remoto aparece en el autocompletado solo después de que Claude haya listado o enviado un mensaje a tus sesiones más allá de esta máquina, así que pídele a Claude que las liste primero.

65* **Un nombre con un espacio u otros caracteres fuera de letras, dígitos, guiones e guiones bajos**: escríbelo entre comillas dobles, como `@"release notes"`. Cuando eliges la sesión del typeahead, Claude Code inserta las comillas por ti.55* **Un nombre con un espacio u otros caracteres fuera de letras, dígitos, guiones e guiones bajos**: escríbelo entre comillas dobles, como `@"release notes"`. Cuando eliges la sesión del autocompletado, Claude Code inserta las comillas por ti.

66 56 

67También puedes escribir la mención sin el selector. Cuando más de una sesión activa responde al nombre mencionado, Claude te pregunta cuál quieres decir antes de enviar.57También puedes escribir la mención sin el selector. Cuando más de una sesión activa responde al nombre mencionado, Claude te pregunta cuál quieres decir antes de enviar.

68 58 

69Para ver cómo se ve el mensaje que Claude escribe cuando llega, incluido un ejemplo de uno, consulta [cómo se ve un mensaje](#what-a-message-looks-like).59Para ver cómo se ve el mensaje que Claude escribe cuando llega, incluyendo un ejemplo del mismo, consulta [cómo se ve un mensaje](#what-a-message-looks-like).

70 60 

71<h3 id="message-delivery">61<h3 id="message-delivery">

72 Entrega de mensajes62 Entrega de mensajes

73</h3>63</h3>

74 64 

75El Claude receptor lee el mensaje entre llamadas de herramientas durante un turno activo, así que una herramienta en ejecución nunca se interrumpe. Cuando la sesión receptora está inactiva, Claude Code inicia un nuevo turno con el mensaje.65Claude que recibe lee el mensaje entre llamadas de herramientas durante un turno activo, por lo que una herramienta en ejecución nunca se interrumpe. Cuando la sesión receptora está inactiva, Claude Code inicia un nuevo turno con el mensaje.

76 66 

77Un mensaje de otra sesión llega como texto plano. Si menciona un archivo o un [recurso MCP](/docs/es/mcp#use-mcp-resources) con `@`, Claude ve la mención tal como está escrita y Claude Code no adjunta nada, ya sea que el mensaje inicie un nuevo turno o llegue durante uno. Claude aún puede abrir una ruta mencionada en la máquina receptora con sus propias herramientas, sujeto a los permisos de esa sesión. Antes de v2.1.251, una mención `@` en un mensaje que inició un nuevo turno adjuntaba el archivo o recurso MCP en el lado receptor.67Un mensaje de otra sesión llega como texto sin formato. Si menciona un archivo o un [recurso MCP](/docs/es/mcp#use-mcp-resources) con `@`, Claude ve la mención tal como está escrita y Claude Code no adjunta nada, ya sea que el mensaje inicie un nuevo turno o llegue durante uno. Claude aún puede abrir una ruta mencionada en la máquina receptora con sus propias herramientas, sujeto a los permisos de esa sesión.

78 68 

79Claude Code rechaza un mensaje en los siguientes casos:69Claude Code rechaza un mensaje en los siguientes casos:

80 70 

81* El mensaje está [por encima del límite de tamaño](#limitations). Claude Code lo rechaza en la sesión de envío, antes de que se vaya.71* El mensaje está [por encima del límite de tamaño](#limitations). Claude Code lo rechaza en la sesión de envío, antes de que se vaya.

82* Una ráfaga rápida a una sesión en esta máquina ha alcanzado [lo que esa bandeja de entrada de sesión acepta](#limitations). Claude Code rechaza más mensajes a esa sesión.72* Una ráfaga rápida a una sesión en esta máquina ha alcanzado [lo que la bandeja de entrada de esa sesión acepta](#limitations). Claude Code rechaza más mensajes a esa sesión.

83* El destino de respuesta en esta máquina falla una verificación de seguridad, como un destino con enlace simbólico o un punto final que no es el proceso esperado. [Rechazar enviar un mensaje entre sesiones](/docs/es/errors#refusing-to-send-a-cross-session-message) lista estas verificaciones.73* El destino de respuesta en esta máquina falla una verificación de seguridad, como un destino con enlace simbólico o un punto final que no es el proceso esperado. [Rechazar enviar un mensaje entre sesiones](/docs/es/errors#refusing-to-send-a-cross-session-message) lista estas verificaciones.

84* Claude dirige el mensaje al nombre de esta propia sesión, como se describe en [Ver qué sesiones Claude puede alcanzar](#see-which-sessions-claude-can-reach).

85 74 

86La sesión receptora verifica cada mensaje que llega contra sus propios [controles de entrada](#control-inbound-messages), y la verificación termina en uno de tres resultados:75La sesión receptora verifica cada mensaje que llega contra sus propios [controles de entrada](#control-inbound-messages), y la verificación termina en uno de tres resultados:

87 76 

88* **Entregado**: Claude Code pasa el mensaje al Claude receptor.77* **Entregado**: Claude Code pasa el mensaje a Claude que recibe.

89* **Retenido**: Claude Code deja el mensaje de lado sin entregar. Un mensaje retenido llega a Claude solo cuando lo apruebas o un modo o cambio de configuración posterior lo permite.78* **Retenido**: Claude Code deja el mensaje de lado sin entregar. Un mensaje retenido llega a Claude solo cuando lo apruebas o un modo posterior o cambio de configuración lo permite.

90* **Rechazado**: Claude Code descarta el mensaje sin entregarlo.79* **Rechazado**: Claude Code descarta el mensaje sin entregarlo.

91 80 

92Una vez entregado, el mensaje cuenta hacia [uso](/docs/es/costs) como un mensaje que escribes, y el Claude receptor puede responder al remitente de la misma manera, excepto en el [caso de una sola dirección entre máquinas](#message-sessions-on-other-machines).81Una vez entregado, el mensaje cuenta hacia [uso](/docs/es/costs) como un mensaje que escribes, y Claude que recibe puede responder al remitente de la misma manera, excepto en el [caso de una sola dirección entre máquinas](#message-sessions-on-other-machines).

93 82 

94Los límites de permisos permanecen por sesión. Claude recibe instrucciones de nunca pedir a otra sesión una acción que fue denegada o bloqueada en su propia sesión, o que sus propias configuraciones de permisos bloquearían, y de enrutar ese trabajo de vuelta a ti. En el lado receptor, los [propios mensajes de permiso y reglas de la sesión receptora aún se aplican](#how-a-session-treats-an-incoming-message) a cualquier cosa que el mensaje solicite.83Los límites de permisos permanecen por sesión. Claude tiene instrucciones de nunca pedir a otra sesión una acción que fue denegada o bloqueada en su propia sesión, o que sus propias configuraciones de permisos bloquearían, y de enrutar ese trabajo de vuelta a ti. En el lado receptor, los [propios mensajes de permiso de la sesión receptora y las reglas aún se aplican](#how-a-session-treats-an-incoming-message) a cualquier cosa que el mensaje solicite.

95 84 

96<h3 id="get-a-notice-when-another-session-goes-idle">85<h3 id="get-a-notice-when-another-session-goes-idle">

97 Obtener un aviso cuando otra sesión se queda inactiva86 Obtener un aviso cuando otra sesión se vuelve inactiva

98</h3>87</h3>

99 88 

100Claude puede pedirle a una de tus sesiones en esta máquina que envíe un aviso cuando esa sesión se quede inactiva o salga. Inactivo aquí significa que la sesión terminó un turno sin nada en cola. Úsalo cuando estés esperando una tarea larga en otra sesión y quieras saber cuándo termina en lugar de verificar. Requiere Claude Code v2.1.236 o posterior en ambas sesiones.89Claude puede pedir a una de tus sesiones en esta máquina que devuelva un aviso cuando esa sesión se vuelva inactiva o salga. Inactivo aquí significa que la sesión terminó un turno sin nada en cola. Úsalo cuando estés esperando una tarea larga en otra sesión y quieras saber cuándo termina en lugar de verificar. Requiere Claude Code v2.1.236 o posterior en ambas sesiones.

101 90 

102<h4 id="ask-for-a-notice">91<h4 id="ask-for-a-notice">

103 Solicitar un aviso92 Solicitar un aviso

104</h4>93</h4>

105 94 

106Dile a Claude qué estás esperando. Este mensaje solicita un aviso de la sesión de migración:95Dile a Claude qué estás esperando. Esta solicitud pide un aviso de la sesión de migración:

107 96 

108```text wrap theme={null}97```text wrap theme={null}

109Dime cuándo la sesión de migración termina lo que está haciendo98Dime cuándo la sesión de migración termina lo que está haciendo


115 Lo que cada sesión muestra104 Lo que cada sesión muestra

116</h4>105</h4>

117 106 

118La sesión observada muestra una línea diciendo que otro proceso pidió ser notificado cuando la sesión esté inactiva. La sesión que pregunta muestra el aviso como una línea que nombra la sesión observada. La línea puede incluir la hora en que terminó el turno de esa sesión y un estado de una línea de ese turno. Si la sesión que pregunta está inactiva, Claude Code inicia un nuevo turno con el aviso.107La sesión observada muestra una línea diciendo que otro proceso pidió ser informado cuando la sesión esté inactiva. La sesión que pregunta muestra el aviso como una línea que nombra la sesión observada. La línea puede incluir la hora en que terminó el turno de esa sesión y un estado de una línea de ese turno. Si la sesión que pregunta está inactiva, Claude Code inicia un nuevo turno con el aviso.

119 108 

120<h4 id="limits">109<h4 id="limits">

121 Límites110 Límites

122</h4>111</h4>

123 112 

124El aviso es de una sola vez: Claude Code lo envía una vez desde la sesión observada, y ninguna sesión sondea la otra. Si no llega ningún aviso dentro de 12 horas, Claude Code descarta la suscripción y le dice a Claude, para que no siga esperando.113Si no llega ningún aviso dentro de 12 horas, Claude Code descarta la suscripción y se lo dice a Claude, para que no siga esperando.

125 114 

126Los [controles de entrada](#control-inbound-messages) de cada lado se aplican a un aviso como un mensaje:115Los [controles de entrada](#control-inbound-messages) de cada lado se aplican a un aviso como un mensaje:

127 116 

128* **`refuse` en cualquier lado**: nada llega. La sesión observada descarta la solicitud sin registrar o responder, así que la suscripción expira sin respuesta después de 12 horas, y una sesión que pregunta con `refuse` nunca se suscribe.117* **`refuse` en cualquier lado**: nada llega. La sesión observada descarta la solicitud sin registrarla ni responderla, por lo que la suscripción expira sin respuesta después de 12 horas, y una sesión que pregunta con `refuse` nunca se suscribe.

129* **`hold` en cualquier lado**: el aviso llega con menos. La sesión observada deja fuera el estado de una línea, y la sesión que pregunta muestra el aviso en tu transcripción sin entregarlo a Claude.118* **`hold` en cualquier lado**: el aviso llega con menos. La sesión observada deja fuera el estado de una línea, y la sesión que pregunta muestra el aviso en tu transcripción sin entregarlo a Claude.

130 119 

131Solo el Claude en tu conversación principal puede suscribirse, y solo a tus sesiones en esta máquina. Cuando un subagente o un compañero de equipo de agentes establece `notify_when_idle`, Claude Code no hace suscripción y le dice así. Cuando Claude pide un aviso de cualquier otro agente, como un compañero, un subagente o una sesión más allá de esta máquina, Claude Code rechaza toda la llamada, incluido cualquier mensaje adjunto, e informa el rechazo a Claude para que pueda reenviar el mensaje sin la solicitud.120Solo Claude en tu conversación principal puede suscribirse, y solo a tus sesiones en esta máquina. Cuando Claude pide un aviso de cualquier otro destino, como un compañero de equipo, un subagente o una sesión más allá de esta máquina, Claude Code rechaza toda la llamada, incluyendo cualquier mensaje adjunto a ella.

132 121 

133<h3 id="see-which-sessions-claude-can-reach">122<h3 id="see-which-sessions-claude-can-reach">

134 Ver qué sesiones Claude puede alcanzar123 Ver qué sesiones puede alcanzar Claude

135</h3>124</h3>

136 125 

137Claude encuentra el destino de un mensaje por su cuenta, así que no necesitas ejecutar nada antes de pedirle que envíe. Para ver por ti mismo qué sesiones Claude puede alcanzar, ejecuta el comando `/list-agents`. La primera línea, cuando está presente, es el nombre de esta propia sesión, el que tus otras sesiones usan para enviarle mensajes. Las filas debajo son las sesiones que Claude puede alcanzar:126Claude encuentra el destino de un mensaje por su cuenta, por lo que no necesitas ejecutar nada antes de pedirle que lo envíe. Para ver por ti mismo qué sesiones puede alcanzar Claude, ejecuta el comando `/list-agents`. La primera línea, cuando está presente, es el nombre de esta sesión, el que tus otras sesiones usan para enviarle un mensaje. Las filas debajo son las sesiones que Claude puede alcanzar:

138 127 

139* **Subagentes**: agentes que se ejecutan dentro de la sesión actual.128* **Subagentes**: agentes que se ejecutan dentro de la sesión actual.

140* **Compañeros**: los propios compañeros de [equipo de agentes](/docs/es/agent-teams) de esta sesión. Antes de v2.1.239, los compañeros no aparecían en el listado, aunque Claude ya podía enviarles mensajes por nombre.129* **Compañeros de equipo**: los compañeros de [equipo de agentes](/docs/es/agent-teams) de esta sesión.

141* **Tus otras sesiones locales**: sesiones de Claude Code que se ejecutan en la misma máquina, incluidas [sesiones en segundo plano](/docs/es/agent-view). Una sesión aparece solo cuando vincula un [socket de bandeja de entrada](#the-sessions-inbox-socket).130* **Tus otras sesiones locales**: sesiones de Claude Code que se ejecutan en la misma máquina, incluyendo [sesiones en segundo plano](/docs/es/agent-view). Una sesión aparece solo cuando vincula un [socket de bandeja de entrada](#the-sessions-inbox-socket).

142* **Tus sesiones en la nube**: tus sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web), mostradas mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control). Claude Code las etiqueta como `cloud` en el listado.131* **Tus [sesiones en la nube](/docs/es/claude-code-on-the-web)**: mostradas mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control).

143* **Tus sesiones de Control Remoto en otras máquinas**: mostradas mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control), y etiquetadas como `Remote Control`. Claude Code muestra `offline` como el estado de una sesión cuya conexión de Control Remoto se ha caído.132* **Tus sesiones de Control Remoto en otras máquinas**: mostradas mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control), y etiquetadas como `Remote Control`. Claude Code muestra `offline` como el estado de una sesión cuya conexión de Control Remoto se ha caído.

144 133 

145Esta sesión no es una de las filas. Si Claude dirige un mensaje al nombre de esta propia sesión, Claude Code lo rechaza y le dice a Claude que el destino es la sesión actual. Antes de v2.1.239, el listado no mostraba el nombre de esta sesión, y Claude Code reportaba un mensaje enviado a él como un agente que no podía encontrar.

146 

147Mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control), Claude Code retiene algunos detalles de tus sesiones locales de la salida `/list-agents`, sin cambiar lo que Claude mismo ve cuando busca una sesión para enviar un mensaje:134Mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control), Claude Code retiene algunos detalles de tus sesiones locales de la salida `/list-agents`, sin cambiar lo que Claude mismo ve cuando busca una sesión para enviar un mensaje:

148 135 

149* **Directorios de trabajo**: deja fuera el directorio de trabajo de cada sesión local.136* **Directorios de trabajo**: deja fuera el directorio de trabajo de cada sesión local.

150* **Nombres de sesión**: deja fuera cualquier nombre de sesión que no pueda atribuir a una persona, así que una fila dejada sin nombre lee `(unnamed session)`.137* **Nombres de sesión**: deja fuera cualquier nombre de sesión que no pueda atribuir a una persona, por lo que una fila que queda sin nombre lee `(unnamed session)`.

151* **La primera línea**: deja fuera la línea con el nombre de esta propia sesión a menos que escribas ese nombre en esta terminal, con `--name` o con `/rename` y el nombre, desde que lanzaste o reanudaste la sesión por última vez.138* **La primera línea**: deja fuera la línea con el nombre de esta sesión a menos que escribas ese nombre en esta terminal, con `--name` o con `/rename` y el nombre, desde que lanzaste o reanudaste la sesión por última vez.

152 139 

153Cuando la salida lista algo, termina con una nota diciendo que los detalles fueron retenidos. Ejecutar `/rename` seguido de un nombre no utilizado en el teclado de una sesión propia le da a esa sesión un nombre que aparece en la salida.140Cuando la salida lista algo, termina con una nota diciendo que los detalles fueron retenidos. Ejecutar `/rename` seguido de un nombre no utilizado en el teclado de una sesión le da a esa sesión un nombre que aparece en la salida.

154 

155Claude Code lee tus listas de sesiones en la nube y Control Remoto más nuevas primero y se detiene después de un número acotado de páginas para cada una. Si tu cuenta tiene más de esas sesiones de las que caben, Claude Code no lista las más antiguas, y Claude no puede enviarles mensajes por nombre. Cuando esto sucede, Claude Code lo dice en el listado, y Claude ve la misma nota cuando envía un mensaje.

156 

157Claude dirige una sesión más allá de esta máquina por nombre, igual que una sesión local. Consulta [Enviar mensajes a sesiones en otras máquinas](#message-sessions-on-other-machines) para ver cómo viajan esos mensajes.

158 141 

159Una sesión responde al nombre que estableces con el comando [`/rename`](/docs/es/commands) o la bandera [`--name`](/docs/es/cli-reference#cli-flags). Cuando no estableces uno, Claude Code nombra la sesión en sí. Para una sesión interactiva, ese es el nombre mostrado en [listados de sesiones en ejecución](/docs/es/sessions#name-your-sessions).142Una sesión responde al nombre que estableces con el comando [`/rename`](/docs/es/commands) o la bandera [`--name`](/docs/es/cli-reference#cli-flags). Cuando no estableces uno, Claude Code nombra la sesión en sí. Para una sesión interactiva, ese es el nombre mostrado en [listados de sesiones en ejecución](/docs/es/sessions#name-your-sessions).

160 143 

161Cuando renombras una sesión, Claude Code también actualiza el registro compartido que tus otras sesiones usan para buscar el nombre de la sesión. Si no puede actualizar ese registro, te advierte en la salida `/rename` que otras sesiones aún pueden mostrar el nombre antiguo. Ejecuta la sesión con [`--debug`](/docs/es/cli-reference#cli-flags), y Claude Code registra la causa de la actualización fallida.144Cuando renombras una sesión, o inicias o reanudas una interactiva, con un nombre que otra sesión activa en esta máquina ya usa, Claude Code deja el nombre con la sesión que ya lo tiene y [renombra el tuyo a una variante](/docs/es/sessions#name-your-sessions). Las sesiones aún pueden compartir un nombre, por ejemplo cuando una de ellas ejecuta una versión anterior de Claude Code o el nombre compartido es uno que Claude Code generó. A menos que esta sesión esté conectada a Control Remoto, Claude Code muestra el directorio de trabajo de cada sesión local en la salida `/list-agents`, para que puedas distinguir sesiones con el mismo nombre cuando se ejecutan en directorios diferentes. Claude dirige el mensaje de una de dos maneras, dependiendo de cuántas sesiones activas respondan al nombre:

162 

163Cuando renombras una sesión, o inicias o reanudas una interactiva, con un nombre que otra sesión activa en esta máquina ya usa, Claude Code deja el nombre con la sesión que ya lo tiene y [renombra el tuyo a una variante](/docs/es/sessions#name-your-sessions). Las sesiones aún pueden compartir un nombre, por ejemplo cuando una de ellas ejecuta una versión anterior de Claude Code o el nombre compartido es uno que Claude Code generó. A menos que esta sesión esté conectada a Control Remoto, Claude Code muestra el directorio de trabajo de cada sesión local en la salida `/list-agents`, así que puedes distinguir sesiones con el mismo nombre cuando se ejecutan en directorios diferentes. Claude dirige el mensaje de una de dos maneras, dependiendo de cuántas sesiones activas respondan al nombre:

164 145 

165* **Una sesión responde al nombre**: Claude Code entrega el mensaje solo en el nombre.146* **Una sesión responde al nombre**: Claude Code entrega el mensaje solo en el nombre.

166* **Varias sesiones comparten el nombre, o Claude Code no pudo verificar en todas partes donde se ejecutan tus sesiones**: Claude agrega un identificador corto a cada fila de su listado y usa el identificador en la dirección.147* **Varias sesiones comparten el nombre, o Claude Code no pudo verificar en todas partes donde se ejecutan tus sesiones**: Claude agrega un identificador corto a cada fila de su listado y usa el identificador en la dirección.


169 Enviar mensajes a sesiones en otras máquinas150 Enviar mensajes a sesiones en otras máquinas

170</h3>151</h3>

171 152 

172Cómo viaja un mensaje, y si pasa por servidores de Anthropic, depende de dónde se ejecuta la sesión de destino:153Cómo viaja un mensaje, y si pasa a través de servidores de Anthropic, depende de dónde se ejecute la sesión de destino:

173 154 

174| Dónde se ejecuta la otra sesión | Cómo viaja el mensaje |155| Dónde se ejecuta la otra sesión | Cómo viaja el mensaje |

175| :- | :- |156| :- | :- |

176| En esta máquina | Sobre un socket por sesión en macOS y Linux, o una tubería con nombre por sesión en Windows nativo, nunca a través de servidores de Anthropic |157| En esta máquina | Sobre un socket por sesión en macOS y Linux, o una tubería con nombre por sesión en Windows nativo, nunca a través de servidores de Anthropic |

177| En otra de tus máquinas | A través de servidores de Anthropic, llegando sobre la conexión [Control Remoto](/docs/es/remote-control) de esa máquina |158| En otra de tus máquinas | A través de servidores de Anthropic, llegando sobre la conexión [Control Remoto](/docs/es/remote-control) de esa máquina |

178| En [Claude Code en la web](/docs/es/claude-code-on-the-web) | A través de servidores de Anthropic, directamente a la sesión en la nube |159| En la [nube](/docs/es/claude-code-on-the-web) | A través de servidores de Anthropic, directamente a la sesión en la nube |

179 

180Iniciar una conversación con una sesión en otra de tus máquinas requiere Claude Code v2.1.225 o posterior y un destino que [aparezca en el listado](#see-which-sessions-claude-can-reach). Antes de v2.1.225, Claude solo podía responder a un mensaje que llegaba de uno.

181 160 

182Puedes enviar un mensaje a una sesión mostrada como `offline` en [el listado](#see-which-sessions-claude-can-reach), una cuya conexión de Control Remoto se ha caído. El envío se realiza, pero el mensaje llega solo después de que la máquina de esa sesión se reconecte. Claude es informado de esto cuando envía.161Iniciar una conversación con una sesión en otra de tus máquinas requiere Claude Code v2.1.225 o posterior y un destino que [aparezca en el listado](#see-which-sessions-claude-can-reach).

183 162 

184La entrega en la misma máquina funciona dondequiera que la característica esté habilitada. Cada sesión se registra en archivos en el disco. Cuando Claude lista o envía mensajes a tus sesiones locales, Claude Code lee esos archivos para encontrar las sesiones, así que dos sesiones pueden alcanzarse mutuamente solo cuando pueden ver los mismos archivos.163Puedes enviar un mensaje a una sesión mostrada como `offline` en [el listado](#see-which-sessions-claude-can-reach), una cuya conexión de Control Remoto se ha caído. El envío se realiza, pero el mensaje llega solo después de que la máquina de esa sesión se reconecte.

185 164 

186Un contenedor tiene su propio sistema de archivos, así que una sesión dentro de él y una sesión en el host no pueden alcanzarse mutuamente. Dos sesiones dentro del mismo contenedor aún pueden enviar mensajes entre sí, incluido en un [ejecutor auto-hospedado](/docs/es/self-hosted-environments). Una sesión dentro de WSL 2 y una sesión nativa de Windows en la misma computadora tampoco pueden alcanzarse mutuamente, porque se registran bajo directorios de inicio diferentes y escuchan en tipos de socket diferentes.165Una sesión dentro de un contenedor y una sesión en el host no pueden alcanzarse mutuamente. Dos sesiones dentro del mismo contenedor aún pueden enviarse mensajes entre sí, incluyendo en un [ejecutor autohospedado](/docs/es/self-hosted-environments). Una sesión dentro de WSL 2 y una sesión nativa de Windows en la misma computadora tampoco pueden alcanzarse mutuamente.

187 166 

188Mientras esta sesión está conectada a Control Remoto, cuando envías un mensaje a una sesión en otra de tus máquinas, Claude Code muestra el mensaje en la conversación de esa sesión bajo el nombre de Control Remoto de esta sesión. El Claude en esa máquina puede responder a ese nombre. Por ejemplo, cuando esta sesión está conectada a Control Remoto como `laptop-graceful-unicorn` y envías un mensaje a tu escritorio, ves el mensaje en la sesión de escritorio bajo `laptop-graceful-unicorn`.167Si esta sesión no está conectada a Control Remoto cuando Claude envía a una sesión más allá de esta máquina, el mensaje aún se realiza, pero sin una [dirección de respuesta](#what-a-message-looks-like), por lo que Claude que recibe no puede responderlo.

189 

190Si esta sesión no está conectada a Control Remoto cuando Claude envía a una sesión más allá de esta máquina, el mensaje aún se va, pero sin una [dirección de respuesta](#what-a-message-looks-like), así que el Claude receptor no puede responder. Claude es informado de esto cuando envía.

191 168 

192Para requerir tu aprobación antes de que cualquier mensaje vaya más allá de esta máquina, establece [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).169Para requerir tu aprobación antes de que cualquier mensaje vaya más allá de esta máquina, establece [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).

193 170 


206 Cómo se ve un mensaje183 Cómo se ve un mensaje

207</h3>184</h3>

208 185 

209Cuando llega un mensaje, Claude Code lo muestra en la conversación como una vista previa de una línea atenuada, y la línea de vista previa permanece en la conversación después. La vista previa lleva el nombre del remitente y la primera línea del mensaje, cortada con `…` cuando es larga, como `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`. Antes de v2.1.247, Claude Code mostraba el mensaje que llegaba en su totalidad en lugar de una vista previa.186Cuando llega un mensaje, Claude Code lo muestra en la conversación como una vista previa de una línea atenuada, y la línea de vista previa permanece en la conversación después. La vista previa lleva el nombre del remitente y la primera línea del mensaje, cortada con `…` cuando es larga, como `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`.

210 187 

211Cualquiera de estos muestra el texto completo:188Cualquiera de estos muestra el texto completo:

212 189 


215 192 

216La vista previa acorta solo lo que ves. Ya sea que la expandas o no, Claude lee el mensaje completo.193La vista previa acorta solo lo que ves. Ya sea que la expandas o no, Claude lee el mensaje completo.

217 194 

218Claude recibe el mensaje con el nombre del remitente y una dirección de respuesta, excepto para un [mensaje de una sola dirección entre máquinas](#message-sessions-on-other-machines), que no lleva dirección de respuesta. Más allá del nombre y la dirección de respuesta, el Claude receptor obtiene el texto del mensaje, nunca el historial de conversación o archivos del remitente. [Entrega de mensajes](#message-delivery) cubre menciones `@` en el texto.195Claude recibe el mensaje con el nombre del remitente y una dirección de respuesta, excepto para un [mensaje de una sola dirección entre máquinas](#message-sessions-on-other-machines), que no lleva dirección de respuesta.

219 

220Un mensaje que un [subagente](/docs/es/sub-agents) escribió llega bajo el nombre de la sesión de envío, con el subagente identificado en el texto del mensaje. Una respuesta a él llega a la conversación principal de esa sesión, no al subagente.

221 196 

222Este ejemplo es un mensaje que un Claude escribió a otro, tal como su texto completo se lee cuando lo expandes:197Este ejemplo es un mensaje que un Claude escribió a otro, tal como su texto completo se lee cuando lo expandes:

223 198 


254* Cuando el diálogo permanece sin respuesta pasado el plazo [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), Claude Code lo cierra y descarta el mensaje. El plazo predeterminado es cinco minutos.229* Cuando el diálogo permanece sin respuesta pasado el plazo [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), Claude Code lo cierra y descarta el mensaje. El plazo predeterminado es cinco minutos.

255* Mientras ninguna terminal está adjunta a una [sesión en segundo plano](/docs/es/agent-view), Claude Code deja el diálogo abierto pasado el plazo. Después de que adjuntes, si el diálogo permanece sin respuesta durante un período de plazo completo, Claude Code lo cierra y descarta el mensaje.230* Mientras ninguna terminal está adjunta a una [sesión en segundo plano](/docs/es/agent-view), Claude Code deja el diálogo abierto pasado el plazo. Después de que adjuntes, si el diálogo permanece sin respuesta durante un período de plazo completo, Claude Code lo cierra y descarta el mensaje.

256* Si la clase de modo de permiso de esta sesión cambia mientras los mensajes están retenidos, Claude Code re-aplica las reglas de entrada, entrega los mensajes que ahora acepta, y muestra un aviso.231* Si la clase de modo de permiso de esta sesión cambia mientras los mensajes están retenidos, Claude Code re-aplica las reglas de entrada, entrega los mensajes que ahora acepta, y muestra un aviso.

257* Si un cambio de configuración hace que `refuse` se aplique mientras los mensajes están retenidos, Claude Code descarta cada mensaje retenido e informa un rechazo a cada remitente que puede alcanzar.

258 

259Cuando el remitente es una sesión en la misma máquina, Claude Code envía un aviso de vuelta a ella cuando el receptor retiene el mensaje, y un seguimiento cuando el receptor después lo entrega, lo deniega, o expira. El aviso llega al Claude de envío, así que sabe que no debe seguir esperando un mensaje que la otra sesión no ha leído.

260 

261En una sesión de envío interactiva, el aviso aparece en la transcripción. Un remitente [`claude -p`](/docs/es/headless) lo recibe en [salida transmitida](/docs/es/headless#stream-responses) como un [mensaje `system` informativo](/docs/es/agent-sdk/typescript#sdkinformationalmessage). Los avisos a remitentes `claude -p` requieren Claude Code v2.1.271 o posterior.

262 232 

263Si el receptor rechaza el mensaje, el aviso del remitente dice que el receptor no está aceptando mensajes entre sesiones y le dice al Claude del remitente que no espere o reenvíe.233Claude Code retiene como máximo 100 mensajes, y pasado eso descarta los más antiguos.

264 

265Claude Code retiene como máximo 100 mensajes, separados de la cola de entrega, y pasado eso descarta los más antiguos.

266 234 

267<h3 id="non-interactive-sessions">235<h3 id="non-interactive-sessions">

268 Sesiones no interactivas236 Sesiones no interactivas


277 245 

278Establece `dialogExpiry` a `"never"` para mantener los mensajes retenidos por defecto hasta que la sesión termine. Un mensaje retenido por una configuración explícita `hold` no expira; Claude Code lo entrega solo cuando un `accept` se aplica después.246Establece `dialogExpiry` a `"never"` para mantener los mensajes retenidos por defecto hasta que la sesión termine. Un mensaje retenido por una configuración explícita `hold` no expira; Claude Code lo entrega solo cuando un `accept` se aplica después.

279 247 

280Cuando la sesión termina con mensajes aún retenidos, Claude Code los informa como expirados a cada remitente que puede alcanzar. Antes de v2.1.225, no se aplicaba plazo en una sesión `-p`: un mensaje retenido permanecía retenido a menos que un cambio de modo de permiso durante la ejecución lo entregara, y una sesión que terminaba con mensajes retenidos no reportaba nada a sus remitentes.

281 

282Para permitir que un trabajador `-p` tome mensajes desatendido, inicia con `crossSessionInbound` establecido a `accept` en su valor `--settings`. Un `accept` en tu configuración de usuario también funciona pero se aplica a cada sesión que ejecutas.248Para permitir que un trabajador `-p` tome mensajes desatendido, inicia con `crossSessionInbound` establecido a `accept` en su valor `--settings`. Un `accept` en tu configuración de usuario también funciona pero se aplica a cada sesión que ejecutas.

283 249 

284<h3 id="the-sessions-inbox-socket">250<h3 id="the-sessions-inbox-socket">


294* `/status` la muestra en la fila `Peer address`. La ruta tiene el prefijo `uds:`.260* `/status` la muestra en la fila `Peer address`. La ruta tiene el prefijo `uds:`.

295* Claude Code la exporta a [hooks](/docs/es/hooks) y comandos Bash como la variable de entorno [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/es/env-vars#variables):261* Claude Code la exporta a [hooks](/docs/es/hooks) y comandos Bash como la variable de entorno [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/es/env-vars#variables):

296 * En una sesión que inicia con mensajería activada, Claude Code exporta la variable antes de que cualquier hook se ejecute, incluido `SessionStart`.262 * En una sesión que inicia con mensajería activada, Claude Code exporta la variable antes de que cualquier hook se ejecute, incluido `SessionStart`.

297 * Cada sesión exporta su propio socket, nunca uno heredado de una sesión padre.

298 263 

299En macOS y Linux, Claude Code restringe el socket a tu usuario del sistema operativo. En Windows nativo, en su lugar requiere que cada conexión se autentique primero con una clave que solo tu usuario del sistema operativo puede leer. De cualquier manera, en una máquina compartida las sesiones de otro usuario no pueden entregar a él.264En macOS y Linux, Claude Code restringe el socket a tu usuario del sistema operativo. En Windows nativo, en su lugar requiere que cada conexión se autentique primero con una clave que solo tu usuario del sistema operativo puede leer. De cualquier manera, en una máquina compartida las sesiones de otro usuario no pueden entregar a él.

300 265 


307 272 

308Abre la conexión solo cuando el mensaje que estás publicando esté listo. Claude Code cierra una conexión que no ha enviado una línea completa dentro de 30 segundos, así que captura la salida de un comando lento primero y luego abre la conexión para enviarlo.273Abre la conexión solo cuando el mensaje que estás publicando esté listo. Claude Code cierra una conexión que no ha enviado una línea completa dentro de 30 segundos, así que captura la salida de un comando lento primero y luego abre la conexión para enviarlo.

309 274 

310Las [reglas de propio-hijo](#own-child-messages) abajo dicen cuándo Claude Code consulta el token y cómo trata un mensaje que no puede verificar.

311 

312<span id="own-child-messages" />Claude Code ejecuta mensajes que llegan en el socket a través de los mismos [controles de entrada](#control-inbound-messages) que cualquier otro mensaje de par, con una excepción y un requisito previo:275<span id="own-child-messages" />Claude Code ejecuta mensajes que llegan en el socket a través de los mismos [controles de entrada](#control-inbound-messages) que cualquier otro mensaje de par, con una excepción y un requisito previo:

313 276 

314* **Mensajes de propio-hijo**: cuando no se aplica ningún valor `crossSessionInbound`, Claude Code entrega un mensaje que verifica vino de los procesos hijo de la sesión, como un hook o comando Bash que publica de vuelta al socket de su propia sesión.277* **Mensajes de propio-hijo**: cuando no se aplica ningún valor `crossSessionInbound`, Claude Code entrega un mensaje que verifica vino de los procesos hijo de la sesión, como un hook o comando Bash que publica de vuelta al socket de su propia sesión.


382 * **Sesión en la nube faltante**: una sesión en la nube aparece solo mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control).345 * **Sesión en la nube faltante**: una sesión en la nube aparece solo mientras esta sesión está conectada a [Control Remoto](/docs/es/remote-control).

383 * **Sesión en otra máquina faltante**: una sesión en otra de sus máquinas aparece solo cuando se ejecuta con [Control Remoto](/docs/es/remote-control) y esta sesión también está conectada.346 * **Sesión en otra máquina faltante**: una sesión en otra de sus máquinas aparece solo cuando se ejecuta con [Control Remoto](/docs/es/remote-control) y esta sesión también está conectada.

384 * **Sesión en otra máquina `offline`**: un mensaje a una sesión listada como `offline` se envía, pero [llega solo después de que la máquina de esa sesión se reconecte](#message-sessions-on-other-machines).347 * **Sesión en otra máquina `offline`**: un mensaje a una sesión listada como `offline` se envía, pero [llega solo después de que la máquina de esa sesión se reconecte](#message-sessions-on-other-machines).

385 * **Sesión en la nube o en otra máquina más antigua faltante**: Claude Code [lee esas listas de sesiones más nuevas primero y se detiene después de un número acotado de páginas](#see-which-sessions-claude-can-reach), así que Claude no puede enviar un mensaje a una sesión que cayó pasado ellas por nombre.348 * **Sesión en la nube o en otra máquina más antigua faltante**: Claude Code lee esas listas de sesiones más nuevas primero y se detiene después de un número acotado de páginas, así que Claude no puede enviar un mensaje a una sesión que cayó pasado ellas por nombre.

386 * **Iniciando una conversación**: [Enviar mensajes a sesiones en otras máquinas](#message-sessions-on-other-machines) cubre iniciar una conversación con una sesión más allá de esta máquina.

387 349 

388En una sesión con mensajería, `/status` también muestra una fila `Peer address` con la dirección de bandeja de entrada propia de la sesión, o `unavailable` y la razón cuando Claude Code [no pudo configurar una bandeja de entrada](#the-sessions-inbox-socket).350En una sesión con mensajería, `/status` también muestra una fila `Peer address` con la dirección de bandeja de entrada propia de la sesión, o `unavailable` y la razón cuando Claude Code [no pudo configurar una bandeja de entrada](#the-sessions-inbox-socket).

389 351 


395 357 

396* **Solo texto plano**: Claude envía solo texto plano entre sesiones. Los mensajes de protocolo de [equipo de agentes](/docs/es/agent-teams) estructurados permanecen dentro de un equipo.358* **Solo texto plano**: Claude envía solo texto plano entre sesiones. Los mensajes de protocolo de [equipo de agentes](/docs/es/agent-teams) estructurados permanecen dentro de un equipo.

397* **El tamaño del mensaje en la misma máquina está limitado**: Claude Code rechaza un mensaje a una sesión en esta máquina una vez que su forma serializada pasa aproximadamente un millón de caracteres. El rechazo [nombra los tamaños exactos](/docs/es/errors#message-too-large-for-cross-session-delivery). Nada llega a la sesión receptora.359* **El tamaño del mensaje en la misma máquina está limitado**: Claude Code rechaza un mensaje a una sesión en esta máquina una vez que su forma serializada pasa aproximadamente un millón de caracteres. El rechazo [nombra los tamaños exactos](/docs/es/errors#message-too-large-for-cross-session-delivery). Nada llega a la sesión receptora.

398* **Las ráfagas rápidas a una sesión se rechazan en el remitente**: una vez que una ráfaga rápida de mensajes a una sesión en esta máquina alcanza lo que esa bandeja de entrada acepta, Claude Code rechaza más envíos en la sesión de envío. El [rechazo nombra la ráfaga](/docs/es/errors#too-many-messages-to-this-session-just-now) y le dice a Claude que agrupe el resto en un mensaje o espere. Antes de v2.1.236, Claude Code reportaba esos envíos como enviados mientras la sesión receptora los descartaba.360* **Las ráfagas rápidas a una sesión se rechazan en el remitente**: una vez que una ráfaga rápida de mensajes a una sesión en esta máquina alcanza lo que esa bandeja de entrada acepta, Claude Code rechaza más envíos en la sesión de envío. El [rechazo nombra la ráfaga](/docs/es/errors#too-many-messages-to-this-session-just-now) y le dice a Claude que agrupe el resto en un mensaje o espere.

399* **Los bucles de mensajes se limitan**: en la sesión receptora, Claude Code limita la velocidad de mensajes repetidos por remitente, descarta repeticiones idénticas que llegan dentro de una ventana corta, y pone en cola como máximo 50 mensajes aceptados para que Claude lea. Un bucle de mensajes entre dos sesiones por lo tanto se detiene por sí solo. Cuando el límite de velocidad, verificación de repetición o límite de cola descarta un mensaje de una sesión interactiva en esta máquina, Claude Code le dice a esa sesión cuál lo descartó y le dice a su Claude que no reenvíe de inmediato.361* **Los bucles de mensajes se limitan**: en la sesión receptora, Claude Code limita la velocidad de mensajes repetidos por remitente, descarta repeticiones idénticas que llegan dentro de una ventana corta, y pone en cola como máximo 50 mensajes aceptados para que Claude lea. Un bucle de mensajes entre dos sesiones por lo tanto se detiene por sí solo.

400 362 

401<h2 id="related-resources">363<h2 id="related-resources">

402 Recursos relacionados364 Recursos relacionados


405* [Subagentes](/docs/es/sub-agents#resume-subagents) y [equipos de agentes](/docs/es/agent-teams#messages-between-agents): mensajería dentro de una única sesión o equipo367* [Subagentes](/docs/es/sub-agents#resume-subagents) y [equipos de agentes](/docs/es/agent-teams#messages-between-agents): mensajería dentro de una única sesión o equipo

406* [Agentes en segundo plano](/docs/es/agent-view): despacha y monitorea las sesiones paralelas que podrías enviar mensajes368* [Agentes en segundo plano](/docs/es/agent-view): despacha y monitorea las sesiones paralelas que podrías enviar mensajes

407* [Control Remoto](/docs/es/remote-control): conecta esta sesión para alcanzar tus sesiones en otras máquinas369* [Control Remoto](/docs/es/remote-control): conecta esta sesión para alcanzar tus sesiones en otras máquinas

370* [Canales](/docs/es/channels): envía eventos externos, como resultados de CI o mensajes de chat, a una sesión

408* [Configuración](/docs/es/settings-reference#all-settings): `crossSessionInbound`, `isolatePeerMachines` y `dialogExpiry`371* [Configuración](/docs/es/settings-reference#all-settings): `crossSessionInbound`, `isolatePeerMachines` y `dialogExpiry`

409* [Modos de permiso](/docs/es/permission-modes): los modos detrás de las dos clases del valor predeterminado de entrada372* [Modos de permiso](/docs/es/permission-modes): los modos detrás de las dos clases del valor predeterminado de entrada

410* [Referencia de herramientas](/docs/es/tools-reference): las filas `ListAgents` y `SendMessage` en la tabla de herramientas373* [Referencia de herramientas](/docs/es/tools-reference): las filas `ListAgents` y `SendMessage` en la tabla de herramientas

data-usage.md +5 −5

Details

110 110 

111Las sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web) se ejecutan en máquinas virtuales administradas por Anthropic de forma predeterminada en lugar de localmente. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en infraestructura que usted controla; para saber qué permanece en sus máquinas y qué aún va a Anthropic, consulte [Lo que permanece en su infraestructura](/docs/es/self-hosted-environments#what-stays-on-your-infrastructure). En sesiones en la nube alojadas por Anthropic:111Las sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web) se ejecutan en máquinas virtuales administradas por Anthropic de forma predeterminada en lugar de localmente. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en infraestructura que usted controla; para saber qué permanece en sus máquinas y qué aún va a Anthropic, consulte [Lo que permanece en su infraestructura](/docs/es/self-hosted-environments#what-stays-on-your-infrastructure). En sesiones en la nube alojadas por Anthropic:

112 112 

113* **Almacenamiento de código y datos:** Su repositorio se clona en una VM aislada. El código y los datos de sesión están sujetos a las políticas de retención y uso para su tipo de cuenta (consulte la sección Retención de datos anterior)113* **Almacenamiento de código y datos:** Su repositorio se clona en una VM aislada. Anthropic almacena la transcripción de la sesión para que pueda volver a la sesión más tarde. El código y los datos de sesión están sujetos a las [políticas de retención y uso](#data-retention) para su tipo de cuenta

114* **Credenciales:** La autenticación de GitHub se maneja a través de un proxy seguro; sus credenciales de GitHub nunca ingresan al sandbox114* **Credenciales:** Las credenciales de GitHub se almacenan cifradas en los servidores de Anthropic y nunca ingresan a la VM. El tráfico de GitHub desde la VM pasa a través de un proxy de Anthropic que las adjunta en el lado del servidor

115* **Tráfico de red:** Todo el tráfico saliente pasa a través de un proxy de seguridad para registro de auditoría y prevención de abuso115* **Tráfico de red:** Todo el tráfico saliente pasa a través de un proxy de seguridad para registro de auditoría y prevención de abuso

116* **Datos de sesión:** Los indicadores, cambios de código y salidas siguen las mismas políticas de datos que el uso local de Claude Code116* **Datos de sesión:** Los indicadores, cambios de código y salidas siguen las mismas políticas de datos que el uso local de Claude Code

117 117 


121 Servicios de telemetría121 Servicios de telemetría

122</h2>122</h2>

123 123 

124Claude Code envía dos tipos de telemetría operativa: métricas de uso e informes de errores. Puede desactivar cada una individualmente con las variables de entorno que se indican a continuación, o desactivar todo el tráfico no esencial de una vez configurando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Configurar `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` también desactiva la evaluación de banderas de características de la que depende [Remote Control](/docs/es/remote-control#requirements); `DISABLE_ERROR_REPORTING` no lo hace.124Claude Code envía dos tipos de telemetría operacional: métricas de uso e informes de errores. Puede desactivar cada una individualmente con las variables de entorno que se indican a continuación, o desactivar todo el tráfico no esencial de una vez configurando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Configurar `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` también desactiva la evaluación de banderas de características, lo que puede hacer que [Remote Control](/docs/es/remote-control#requirements) no esté disponible; `DISABLE_ERROR_REPORTING` no lo hace.

125 125 

126**Métricas**: latencia, confiabilidad y patrones de uso, enviados a Anthropic y a infraestructura de registro de terceros a través de TLS. Las métricas nunca incluyen su código, indicaciones o rutas de archivo. Configure `DISABLE_TELEMETRY=1` para optar por no participar.126**Métricas**: latencia, confiabilidad y patrones de uso, enviados a Anthropic y a infraestructura de registro de terceros a través de TLS. Las métricas nunca incluyen su código, indicaciones o rutas de archivo. Configure `DISABLE_TELEMETRY=1` para optar por no participar.

127 127 


134* se está conectando directamente a la API de Claude134* se está conectando directamente a la API de Claude

135* su organización no tiene un acuerdo de retención cero de datos o HIPAA135* su organización no tiene un acuerdo de retención cero de datos o HIPAA

136 136 

137Cuando usted ejecuta el comando `/feedback`, se envía una copia de su historial de conversación completo incluyendo código a Anthropic. Los comandos `/bug` y `/share` se envían a través de la misma ruta. Antes de enviar un informe desde el diálogo de comentarios, usted elige cuánto historial incluir: solo la sesión actual, que es la predeterminada, u también otras sesiones del mismo proyecto durante los últimos 24 horas o 7 días. Claude Code envía [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) a través de la misma ruta, incluyendo la transcripción cuando usted eligió incluirla en la pantalla de revisión del borrador. Los datos se cifran en tránsito mediante TLS y se almacenan en Google Cloud Storage, que cifra los datos almacenados en reposo de forma predeterminada. Opcionalmente, se crea un problema de GitHub en el repositorio público. Para optar por no participar, establezca la variable de entorno `DISABLE_FEEDBACK_COMMAND` a `1`.137Cuando ejecuta el comando `/feedback`, se envía una copia de su historial de conversación incluyendo código a Anthropic. Los comandos `/bug` y `/share` se envían a través de la misma ruta. Antes de enviar un informe desde el diálogo de comentarios, elige cuánto historial incluir: solo la sesión actual, que es la predeterminada, u también otras sesiones del mismo proyecto durante los últimos 24 horas o 7 días. Claude Code envía [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) a través de la misma ruta, incluyendo la transcripción cuando eligió incluirla en la pantalla de revisión del borrador. Los datos se cifran en tránsito a través de TLS y se almacenan en Google Cloud Storage, que cifra los datos almacenados en reposo de forma predeterminada. Opcionalmente, se crea un problema de GitHub en el repositorio público. Para optar por no participar, configure la variable de entorno `DISABLE_FEEDBACK_COMMAND` a `1`.

138 138 

139Cuando usted utiliza un proveedor de terceros como Amazon Bedrock o Google Cloud's Agent Platform, o no tiene credenciales de Anthropic configuradas, `/feedback` escribe el informe en un archivo local bajo `~/.claude/feedback-bundles/` en lugar de enviarlo a Anthropic. Los patrones conocidos de clave API y token se redactan antes de que se escriba el archivo. Nada sale de su máquina hasta que usted envíe ese archivo a su representante de cuenta de Anthropic o lo adjunte a una solicitud de soporte.139Cuando utiliza un proveedor de terceros como Amazon Bedrock o la Plataforma de Agentes de Google Cloud, o no tiene credenciales de Anthropic configuradas, `/feedback` escribe el informe en un archivo local bajo `~/.claude/feedback-bundles/` en lugar de enviarlo a Anthropic. Los patrones de clave de API y token conocidos se redactan antes de que se escriba el archivo. Nada sale de su máquina hasta que envíe ese archivo a su representante de cuenta de Anthropic o lo adjunte a una solicitud de soporte.

140 140 

141<h2 id="default-behaviors-by-api-provider">141<h2 id="default-behaviors-by-api-provider">

142 Comportamientos predeterminados por proveedor de API142 Comportamientos predeterminados por proveedor de API

desktop.md +2 −2

Details

735 735 

736Para establecer variables de entorno para sesiones locales y servidores de desarrollo en cualquier plataforma, abra el menú desplegable de entorno en el cuadro de solicitud, pase el cursor sobre **Local** y haga clic en el icono de engranaje para abrir el editor de entorno local. Las variables que guarda aquí se almacenan cifradas en su máquina y se aplican a cada sesión local y servidor de vista previa que inicia. También puede agregar variables a la clave `env` en su archivo `~/.claude/settings.json`, aunque estas llegan solo a sesiones de Claude y no a servidores de desarrollo. Consulte [variables de entorno](/docs/es/env-vars) para la lista completa de variables compatibles.736Para establecer variables de entorno para sesiones locales y servidores de desarrollo en cualquier plataforma, abra el menú desplegable de entorno en el cuadro de solicitud, pase el cursor sobre **Local** y haga clic en el icono de engranaje para abrir el editor de entorno local. Las variables que guarda aquí se almacenan cifradas en su máquina y se aplican a cada sesión local y servidor de vista previa que inicia. También puede agregar variables a la clave `env` en su archivo `~/.claude/settings.json`, aunque estas llegan solo a sesiones de Claude y no a servidores de desarrollo. Consulte [variables de entorno](/docs/es/env-vars) para la lista completa de variables compatibles.

737 737 

738[Extended thinking](/docs/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. En la API de Anthropic, establezca `MAX_THINKING_TOKENS` en `0` en el editor de entorno local para desactivar el pensamiento; esto no tiene efecto en Opus 5.5 o en los modelos Fable, que siempre usan extended thinking. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.738[Extended thinking](/docs/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. En la API de Anthropic, establezca `MAX_THINKING_TOKENS` en `0` en el editor de entorno local para desactivar el pensamiento; esto no tiene efecto en Opus 5.5, Sonnet 5.5 o los modelos Fable, que siempre usan extended thinking. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

739 739 

740En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), los valores de `MAX_THINKING_TOKENS` distintos de `0` se ignoran porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establezca `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.740En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), los valores de `MAX_THINKING_TOKENS` distintos de `0` se ignoran porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establezca `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y posteriores, y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.

741 741 

742<h4 id="local-sessions-on-managed-devices">742<h4 id="local-sessions-on-managed-devices">

743 Sesiones locales en dispositivos administrados743 Sesiones locales en dispositivos administrados

Details

4 4 

5# Comenzar con la aplicación de escritorio5# Comenzar con la aplicación de escritorio

6 6 

7> Instale Claude Code en el escritorio e inicie su primera sesión de codificación7> Instale la aplicación de escritorio de Claude, abra la pestaña Code e inicie su primera sesión de Claude Code en una carpeta de proyecto en su computadora.

8 8 

9La aplicación de escritorio le proporciona Claude Code con una interfaz gráfica diseñada para ejecutar múltiples sesiones lado a lado: una barra lateral para gestionar trabajo paralelo, un diseño de arrastrar y soltar con terminal integrada y editor de archivos, revisión visual de diferencias, vista previa de aplicaciones en vivo, monitoreo de PR de GitHub con fusión automática, y tareas programadas. No se requiere terminal.9La aplicación de escritorio le proporciona Claude Code con una interfaz gráfica, para que pueda pedirle a Claude que trabaje en el código de una carpeta en su computadora y revise sus cambios sin usar una terminal. Esta página lo guía a través de la instalación de la aplicación e iniciando su primera sesión en la pestaña **Code**. Claude Code requiere una [suscripción Pro, Max, Team o Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).

10 10 

11<CardGroup cols={3}>11<CardGroup cols={3}>

12 <Card title="Descargar para macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Descargar para macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">


25Para Windows ARM64, descargue el [instalador ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). En Linux, instale con apt; consulte [Claude Desktop en Linux](/docs/es/desktop-linux).25Para Windows ARM64, descargue el [instalador ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). En Linux, instale con apt; consulte [Claude Desktop en Linux](/docs/es/desktop-linux).

26 26 

27<Note>27<Note>

28 Claude Code requiere una [suscripción Pro, Max, Team o Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).28 Estos casos se tratan en otras páginas:

29</Note>

30 29 

31Esta página lo guía a través de la instalación de la aplicación e iniciando su primera sesión. Si ya está configurado, consulte [Usar Claude Code Desktop](/docs/es/desktop) para la referencia completa.30 * **Ya está configurado**: consulte [Usar Claude Code Desktop](/docs/es/desktop) para todo lo que la pestaña Code puede hacer

31 * **Desea `claude` en su terminal**: [instale la CLI](/docs/es/quickstart) por separado

32</Note>

32 33 

33La aplicación de escritorio tiene tres pestañas:34La aplicación de escritorio tiene tres pestañas:

34 35 

35* **Chat**: Conversación general sin acceso a archivos, similar a claude.ai.36* **Chat**: Conversación general sin acceso a archivos, similar a claude.ai.

36* **Cowork**: Un agente autónomo de fondo que trabaja en tareas en una máquina virtual en sandbox con su propio entorno, ejecutándose de forma independiente mientras realiza otro trabajo. Las sesiones de Cowork en el dispositivo ejecutan la VM en su computadora; las sesiones de Cowork remotas se ejecutan en una VM administrada por Anthropic en su lugar.37* **Cowork**: Un agente autónomo de fondo que trabaja en tareas de forma independiente mientras realiza otro trabajo.

37* **Code**: Un asistente de codificación interactivo con acceso directo a sus archivos locales. Dependiendo del modo de permisos, usted aprueba cada cambio conforme Claude lo propone o revisa los cambios después de que Claude los realiza.38* **Code**: Un asistente de codificación interactivo con acceso directo a sus archivos locales. Dependiendo del modo de permisos, usted aprueba cada cambio conforme Claude lo propone o revisa los cambios después de que Claude los realiza.

38 39 

39Chat y Cowork se tratan en el [Centro de Ayuda de Claude](https://support.claude.com/); la instalación e implementación de la aplicación de escritorio se tratan en los [artículos de soporte de Claude Desktop](https://support.claude.com/en/collections/16163169-claude-desktop). Esta página se enfoca en la pestaña **Code**.40Chat y Cowork se tratan en el [Centro de Ayuda de Claude](https://support.claude.com/); la instalación e implementación de la aplicación de escritorio se tratan en los [artículos de soporte de Claude Desktop](https://support.claude.com/en/collections/16163169-claude-desktop). Esta página se enfoca en la pestaña **Code**.


52 </Step>53 </Step>

53</Steps>54</Steps>

54 55 

55La aplicación de escritorio incluye Claude Code. No necesita instalar Node.js o la CLI por separado. Para usar `claude` desde la terminal, instale la CLI por separado. Consulte [Comenzar con la CLI](/docs/es/quickstart).56La aplicación de escritorio incluye Claude Code, por lo que no necesita instalar Node.js o la CLI para usar la pestaña Code.

56 57 

57<h2 id="start-your-first-session">58<h2 id="start-your-first-session">

58 Inicie su primera sesión59 Inicie su primera sesión

Details

61 61 

62* **Manual**: sin programación, solo se ejecuta cuando hace clic en **Run now**. Útil para guardar un prompt que activa bajo demanda62* **Manual**: sin programación, solo se ejecuta cuando hace clic en **Run now**. Útil para guardar un prompt que activa bajo demanda

63* **Hourly**: se ejecuta cada hora63* **Hourly**: se ejecuta cada hora

64* **Daily**: muestra un selector de hora, por defecto a las 9:00 AM hora local64* **Daily**: se ejecuta todos los días a la hora local que seleccione

65* **Weekdays**: igual que Daily pero omite sábado y domingo65* **Weekdays**: igual que Daily pero omite sábado y domingo

66* **Weekly**: muestra un selector de hora y un selector de día66* **Weekly**: muestra un selector de hora y un selector de día

67 67 

env-vars.md +287 −283

Details

114 114 

115En un archivo de configuración puede establecer una variable pero no puede eliminar una. Para anular una variable que no puede desestablecer, como una `CLAUDE_CODE_USE_VERTEX` obsoleta exportada por un perfil de shell que no controla, establézcala en una cadena vacía en el bloque `env`: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code trata el valor vacío como no establecido para la selección de proveedor. Los subprocesos aún heredan el valor vacío.115En un archivo de configuración puede establecer una variable pero no puede eliminar una. Para anular una variable que no puede desestablecer, como una `CLAUDE_CODE_USE_VERTEX` obsoleta exportada por un perfil de shell que no controla, establézcala en una cadena vacía en el bloque `env`: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code trata el valor vacío como no establecido para la selección de proveedor. Los subprocesos aún heredan el valor vacío.

116 116 

117Entre archivos de configuración, los valores `env` siguen la [precedencia de configuración](/docs/es/settings#settings-precedence), por lo que una entrada de configuración administrada anula la misma variable en la configuración de usuario o proyecto.117Entre archivos de configuración, los valores `env` siguen la [precedencia de configuración](/docs/es/settings#settings-precedence), por lo que una entrada de configuración administrada anula la misma variable en la configuración de usuario o proyecto. La configuración de proyecto y local no puede establecer algunas variables, como `CLAUDE_CONFIG_DIR` y las variables del exportador de OpenTelemetry. [Variables que Claude Code ignora en `env`](/docs/es/settings-reference#variables-claude-code-ignores-in-env) las enumera, junto con los valores de desactivación de OpenTelemetry que aún se aplican.

118 118 

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

120 120 


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

149| `ANTHROPIC_AWS_BASE_URL` | Anule la URL del punto de conexión de [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Use para regiones personalizadas o cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway). El valor predeterminado es `https://aws-external-anthropic.{region}.api.aws`. Claude Code resuelve la región con la [misma precedencia que en Amazon Bedrock](/docs/es/amazon-bedrock#3-configure-claude-code) |149| `ANTHROPIC_AWS_BASE_URL` | Anule la URL del punto de conexión de [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Use para regiones personalizadas o cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway). El valor predeterminado es `https://aws-external-anthropic.{region}.api.aws`. Claude Code resuelve la región con la [misma precedencia que en Amazon Bedrock](/docs/es/amazon-bedrock#3-configure-claude-code) |

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

151| `ANTHROPIC_BASE_URL` | Anule el punto de conexión de la API para enrutar solicitudes a través de un proxy o puerta de enlace. Cuando se establece en un host que no es de primera parte, [la búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search) está deshabilitada de forma predeterminada. Establezca `ENABLE_TOOL_SEARCH=true` si su proxy reenvía bloques `tool_reference`. A partir de v2.1.196, [Remote Control](/docs/es/remote-control#requirements) está deshabilitado cuando esto apunta a un host que no sea `api.anthropic.com`, coincidiendo con su comportamiento en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry |151| `ANTHROPIC_BASE_URL` | Anule el punto de conexión de la API para enrutar solicitudes a través de un proxy o puerta de enlace. Cuando se establece en un host que no es de primera parte, [la búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search) se desactiva de forma predeterminada. Establezca `ENABLE_TOOL_SEARCH=true` si su proxy reenvía bloques `tool_reference`. A partir de v2.1.196, [Remote Control](/docs/es/remote-control#requirements) se desactiva cuando esto apunta a un host que no sea `api.anthropic.com`, coincidiendo con su comportamiento en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry |

152| `ANTHROPIC_BEDROCK_BASE_URL` | Anule la URL del punto de conexión de Amazon Bedrock. Use para puntos de conexión personalizados de Amazon Bedrock o cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway). Vea [Amazon Bedrock](/docs/es/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Anule la URL del punto de conexión de Amazon Bedrock. Use para puntos de conexión personalizados de Amazon Bedrock o cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway). Consulte [Amazon Bedrock](/docs/es/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Anule la URL del punto de conexión de Amazon Bedrock Mantle. Vea [Punto de conexión Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Anule la URL del punto de conexión de Amazon Bedrock Mantle. Consulte [Punto de conexión Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) |

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

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

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

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

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modelo para agregar como entrada personalizada en el selector `/model`. Use esto para hacer que un modelo no estándar o específico de puerta de enlace sea seleccionable sin reemplazar alias integrados. Vea [Configuración de modelo](/docs/es/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID de modelo para agregar como entrada personalizada en el selector `/model`. Use esto para hacer que un modelo no estándar o específico de puerta de enlace sea seleccionable sin reemplazar alias integrados. Consulte [Configuración de modelo](/docs/es/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción de visualización para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es `Custom model (<model-id>)` cuando no se establece |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Descripción de visualización para la entrada de modelo personalizado en el selector `/model`. El valor predeterminado es `Custom model (<model-id>)` cuando no se establece |

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

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

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modelo al que se resuelve el alias `fable`, e ID que Claude Code reconoce como modelo Fable para [alternancia automática de modelo](/docs/es/model-config#automatic-model-fallback) en proveedores de terceros. Vea [Configuración de modelo](/docs/es/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID de modelo al que se resuelve el alias `fable`, y el ID que Claude Code reconoce como modelo Fable para [alternancia automática de modelo](/docs/es/model-config#automatic-model-fallback) en proveedores de terceros. Consulte [Configuración de modelo](/docs/es/model-config#environment-variables) |

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

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

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

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modelo al que se resuelve el alias `haiku`, también usado para [funcionalidad de fondo](/docs/es/costs#background-token-usage). Vea [Configuración de modelo](/docs/es/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID de modelo al que se resuelve el alias `haiku`, también usado para [funcionalidad de fondo](/docs/es/costs#background-token-usage). Consulte [Configuración de modelo](/docs/es/model-config#environment-variables) |

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

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

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

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

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modelo al que se resuelve el alias `opus`, y que `opusplan` usa mientras Plan Mode está activo. Vea [Configuración de modelo](/docs/es/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID de modelo al que se resuelve el alias `opus`, y que `opusplan` usa mientras Plan Mode está activo. Consulte [Configuración de modelo](/docs/es/model-config#environment-variables) |

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

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

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

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modelo al que se resuelve el alias `sonnet`, y que `opusplan` usa cuando Plan Mode no está activo. Vea [Configuración de modelo](/docs/es/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID de modelo al que se resuelve el alias `sonnet`, y que `opusplan` usa cuando Plan Mode no está activo. Consulte [Configuración de modelo](/docs/es/model-config#environment-variables) |

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

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

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

179| `ANTHROPIC_FEDERATION_RULE_ID` | ID de regla de federación para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Cuando lo establece junto con `ANTHROPIC_ORGANIZATION_ID`, Claude Code selecciona credenciales de federación, que tienen rango superior a su credencial `/login`. Vea [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | ID de regla de federación para [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Cuando lo establece junto con `ANTHROPIC_ORGANIZATION_ID`, Claude Code selecciona credenciales de federación, que tienen rango superior a su credencial `/login`. Consulte [precedencia de autenticación](/docs/es/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para autenticación de Microsoft Foundry (vea [Microsoft Foundry](/docs/es/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | Clave de API para autenticación de Microsoft Foundry (consulte [Microsoft Foundry](/docs/es/microsoft-foundry)) |

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

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

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nombre del recurso de Microsoft Foundry (por ejemplo, `my-resource`). Requerido si `ANTHROPIC_FOUNDRY_BASE_URL` no se establece (vea [Microsoft Foundry](/docs/es/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Nombre del recurso de Microsoft Foundry (por ejemplo, `my-resource`). Requerido si `ANTHROPIC_FOUNDRY_BASE_URL` no se establece (consulte [Microsoft Foundry](/docs/es/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | Nombre de la configuración de modelo a usar (vea [Configuración de modelo](/docs/es/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | Nombre de la configuración del modelo a usar (consulte [Configuración de modelo](/docs/es/model-config#environment-variables)) |

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

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

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nombre de [modelo de clase Haiku para tareas de fondo](/docs/es/costs) |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nombre de [modelo de clase Haiku para tareas de fondo](/docs/es/costs) |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Anule la región de AWS para el modelo de clase Haiku cuando use Amazon Bedrock o Amazon Bedrock Mantle. En Amazon Bedrock, esto solo tiene efecto cuando `ANTHROPIC_DEFAULT_HAIKU_MODEL` o el deprecated `ANTHROPIC_SMALL_FAST_MODEL` también se establece, ya que Amazon Bedrock de otra manera ejecuta tareas de fondo en el [modelo Sonnet predeterminado o el modelo principal](/docs/es/amazon-bedrock#4-pin-model-versions) en la región de sesión |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Anule la región de AWS para el modelo de clase Haiku cuando use Amazon Bedrock o Amazon Bedrock Mantle. En Amazon Bedrock, esto solo tiene efecto cuando `ANTHROPIC_DEFAULT_HAIKU_MODEL` o el `ANTHROPIC_SMALL_FAST_MODEL` deprecado también se establece, ya que Amazon Bedrock de otra manera ejecuta tareas de fondo en el [modelo Sonnet predeterminado o el modelo principal](/docs/es/amazon-bedrock#4-pin-model-versions) en la región de sesión |

189| `ANTHROPIC_VERTEX_BASE_URL` | Anule la URL del punto de conexión de Google Cloud's Agent Platform. Use para puntos de conexión personalizados de Google Cloud's Agent Platform o cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway). Vea [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | Anule la URL del punto de conexión de Google Cloud's Agent Platform. Use para puntos de conexión personalizados de Google Cloud's Agent Platform o cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway). Consulte [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Vea [Configurar credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de proyecto de GCP al que se dirigen las solicitudes de Google Cloud's Agent Platform. Consulte [Configurar credenciales de GCP](/docs/es/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | ID de espacio de trabajo para [federación de identidad de carga de trabajo](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establézcalo cuando su regla de federación tenga un alcance de más de un espacio de trabajo para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |191| `ANTHROPIC_WORKSPACE_ID` | ID de espacio de trabajo para [federación de identidad de carga de trabajo](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Establézcalo cuando su regla de federación tenga un alcance de más de un espacio de trabajo para que el intercambio de tokens sepa a qué espacio de trabajo dirigirse |

192| `API_FORCE_IDLE_TIMEOUT` | Anule el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo de transmisión cuando no llegan bytes. Establezca en `0` para desactivar el tiempo de espera, por ejemplo cuando una [puerta de enlace](/docs/es/llm-gateway) lenta o un modelo local hace una pausa más larga que 5 minutos entre fragmentos, o `1` para mantenerlo activado para cada proveedor. Cuando no se establece, el tiempo de espera está activo en proveedores que no sean la API directa de Anthropic y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los [perros guardianes de transmisión](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan independientemente de él y abortan una pausa larga silenciosa incluso cuando establece `0` aquí |192| `API_FORCE_IDLE_TIMEOUT` | Anule el tiempo de espera de inactividad del cuerpo de 5 minutos que aborta una respuesta del modelo de transmisión cuando no llegan bytes. Establezca en `0` para desactivar el tiempo de espera, por ejemplo cuando una [puerta de enlace](/docs/es/llm-gateway) lenta o un modelo local hace una pausa más larga que 5 minutos entre fragmentos, o `1` para mantenerlo activado para cada proveedor. Cuando no se establece, el tiempo de espera está activo en proveedores que no sean la API directa de Anthropic y [Claude Platform on AWS](/docs/es/claude-platform-on-aws). Los [perros guardianes de transmisión](/docs/es/network-config#streaming-idle-watchdogs) se ejecutan independientemente de él y abortan una pausa larga silenciosa incluso cuando establece `0` aquí |

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

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

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

196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de salida de bash que Claude Code lee en el resultado de un comando (predeterminado: 30000; máximo: 150000). Si establece la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Vea [Límites de salida](/docs/es/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Número máximo de caracteres de salida de bash que Claude Code lee en el resultado de un comando (predeterminado: 30000; máximo: 150000). Si establece la configuración [`bashOutputMaxChars`](/docs/es/settings-reference#bashoutputmaxchars), Claude Code ignora esta variable. Consulte [Límites de salida](/docs/es/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para comandos bash de larga duración (predeterminado: 600000, o 10 minutos). El techo efectivo es el mayor de este y `BASH_DEFAULT_TIMEOUT_MS` |197| `BASH_MAX_TIMEOUT_MS` | Tiempo de espera máximo que el modelo puede establecer para comandos bash de larga duración (predeterminado: 600000, o 10 minutos). El techo efectivo es el mayor de este y `BASH_DEFAULT_TIMEOUT_MS` |

198| `BETA_TRACING_ENDPOINT` | Punto de conexión OTLP para [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y rastreos van allí en lugar de a los exportadores configurados. Establézcalo en su shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |198| `BETA_TRACING_ENDPOINT` | Punto de conexión OTLP para [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta): con `ENABLE_BETA_TRACING_DETAILED=1`, los registros y rastreos van allí en lugar de a los exportadores configurados. Establézcalo en su shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

199| `CCR_FORCE_BUNDLE` | Establezca en `1` para forzar [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) a agrupar y cargar su repositorio local en lugar de clonar desde su remoto |199| `CCR_FORCE_BUNDLE` | Establezca en `1` para forzar [`claude --cloud`](/docs/es/claude-code-on-the-web#send-local-repositories-without-github) a agrupar y cargar su repositorio local en lugar de clonarlo desde su remoto |

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

201| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de auto-continuar aparece la cuenta regresiva en pantalla en un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin respuesta. Predeterminado `20000` (20 segundos), limitado al tiempo de espera de auto-continuación. No tiene efecto a menos que la auto-continuación esté activada; vea la configuración [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |201| `CLAUDE_AFK_COUNTDOWN_MS` | Cuántos milisegundos antes de auto-continuar aparece la cuenta regresiva en pantalla en un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin respuesta. Predeterminado `20000` (20 segundos), limitado al tiempo de espera de auto-continuar. No tiene efecto a menos que auto-continuar esté activado; consulte la configuración [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout) y `CLAUDE_AFK_TIMEOUT_MS`. Requiere Claude Code v2.1.198 o posterior |

202| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de tiempo inactivo antes de que un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin respuesta se auto-continúe sin usted. La auto-continuación está desactivada de forma predeterminada; opte por ella con la configuración [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout). Esta variable es una anulación para demostraciones y pruebas automatizadas: cuando se establece, tiene precedencia sobre esa configuración y activa la auto-continuación incluso cuando la configuración no se establece o es `never`. Establecer `0` no desactiva el tiempo de espera; cierra el diálogo inmediatamente. En v2.1.198 y v2.1.199, la auto-continuación estaba activada de forma predeterminada con un tiempo de espera de `60000` (60 segundos). Requiere Claude Code v2.1.198 o posterior |202| `CLAUDE_AFK_TIMEOUT_MS` | Cuántos milisegundos de tiempo inactivo antes de que un diálogo [`AskUserQuestion`](/docs/es/tools-reference) sin respuesta continúe automáticamente sin usted. Auto-continuar está desactivado de forma predeterminada; opte por la configuración [`askUserQuestionTimeout`](/docs/es/settings-reference#askuserquestiontimeout). Esta variable es una anulación para demostraciones y pruebas automatizadas: cuando se establece, tiene precedencia sobre esa configuración y activa auto-continuar incluso cuando la configuración no se establece o es `never`. Establecer `0` no desactiva el tiempo de espera; cierra el diálogo inmediatamente. En v2.1.198 y v2.1.199, auto-continuar estaba activado de forma predeterminada con un tiempo de espera de `60000` (60 segundos). Requiere Claude Code v2.1.198 o posterior |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establezca en `1` para desabilitar todos los tipos de [subagente](/docs/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. Esto también elimina `general-purpose`, el subagente que Claude Code ejecuta cuando una llamada de herramienta de Agent omite `subagent_type`. Tal llamada entonces falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Establezca en `1` para desactivar todos los tipos de [subagente](/docs/es/sub-agents) integrados como Explore y Plan. Solo se aplica en modo no interactivo (la bandera `-p`). Útil para usuarios de SDK que desean una pizarra en blanco. Esto también elimina `general-purpose`, el subagente que Claude Code ejecuta cuando una llamada de herramienta de Agent omite `subagent_type`. Tal llamada entonces falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) |

204| `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 usan sus nombres originales. Solo uso de SDK |204| `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 usan sus nombres originales. Solo uso de SDK |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera de estancamiento en milisegundos para subagentes. Predeterminado `600000` (10 minutos); si aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el perro guardián de transmisión está activado, el predeterminado aumenta con él, como [Manejar respuestas de API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses) describe. El temporizador se reinicia en cada evento de progreso de transmisión; si no llega progreso dentro de la ventana, Claude Code aborta el subagente e informa el estancamiento al padre |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Tiempo de espera de estancamiento en milisegundos para subagentes. Predeterminado `600000` (10 minutos); si aumenta `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mientras el perro guardián de transmisión está activado, el predeterminado aumenta con él, como [Manejar respuestas de API lentas o estancadas](/docs/es/agent-sdk/typescript#handle-slow-or-stalled-api-responses) describe. El temporizador se reinicia en cada evento de progreso de transmisión; si no llega progreso dentro de la ventana, Claude Code aborta el subagente e informa el estancamiento al padre |

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

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establezca en `1` para forzar la habilitación del envío automático a segundo plano de tareas de agente de larga duración. Cuando está habilitado, los subagentes se mueven al fondo después de ejecutarse durante aproximadamente dos minutos. También habilita [envío automático a segundo plano de llamadas de herramientas MCP largas](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | Establezca en `1` para forzar la activación de la puesta en segundo plano automática de tareas de agente de larga duración. Cuando está habilitado, los subagentes se mueven al fondo después de ejecutarse durante aproximadamente dos minutos. También habilita [puesta en segundo plano automática de llamadas de herramientas MCP largas](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) en modo no interactivo en Claude Code v2.1.212 o posterior |

208| `CLAUDE_AX_PREPARK_MS` | En [modo de lector de pantalla](/docs/es/accessibility#what-your-screen-reader-hears), cuántos milisegundos Claude Code espera, con el cursor al inicio de la línea, antes de escribir una línea nueva o cambiada. Predeterminado `50`. Establezca `0` para escribir inmediatamente. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |208| `CLAUDE_AX_PREPARK_MS` | En [modo de lector de pantalla](/docs/es/accessibility#what-your-screen-reader-hears), cuántos milisegundos Claude Code espera, con el cursor al inicio de la línea, antes de escribir una línea nueva o cambiada. Predeterminado `50`. Establezca `0` para escribir inmediatamente. Claude Code limita la espera a `5000`. Requiere Claude Code v2.1.233 o posterior |

209| `CLAUDE_AX_SCREEN_READER` | Establezca en `1` para renderizar salida amigable con lector de pantalla: texto plano sin bordes decorativos o animaciones. Establezca en `0` para forzar el modo de lector de pantalla desactivado incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. La bandera [`--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene precedencia. Requiere Claude Code v2.1.181 o posterior |209| `CLAUDE_AX_SCREEN_READER` | Establezca en `1` para renderizar salida amigable con lector de pantalla: texto plano sin bordes decorativos o animaciones. Establezca en `0` para forzar el modo de lector de pantalla desactivado incluso cuando [`axScreenReader`](/docs/es/settings-reference#axscreenreader) es `true`. La [bandera `--ax-screen-reader`](/docs/es/cli-reference#cli-flags) tiene precedencia. Requiere Claude Code v2.1.181 o posterior |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos Claude Code mantiene el primer renderizado de interfaz después de la línea de confirmación de inicio, para que su lector de pantalla pueda hablar la línea en su totalidad antes de que la nueva salida la interrumpa. Predeterminado `3000`. Establezca `0` para renderizar inmediatamente. Claude Code limita la retención a `600000` (10 minutos). Su primer pulsación de tecla termina la retención temprano. Requiere Claude Code v2.1.217 o posterior |210| `CLAUDE_AX_STARTUP_QUIET_MS` | En [modo de lector de pantalla](/docs/es/accessibility), cuántos milisegundos Claude Code mantiene el primer renderizado de interfaz después de la línea de confirmación de inicio, para que su lector de pantalla pueda hablar la línea en su totalidad antes de que la nueva salida la interrumpa. Predeterminado `3000`. Establezca `0` para renderizar inmediatamente. Claude Code limita la retención a `600000` (10 minutos). Su primer pulsación de tecla termina la retención temprano. Requiere Claude Code v2.1.217 o posterior |

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

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el perro guardián de inactividad de transmisión a nivel de byte; cuando se establece, tiene precedencia sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese perro guardián y deja el perro guardián a nivel de evento sin cambios. Claude Code fija esta variable entre 10 segundos y 30 minutos. Requiere Claude Code v2.1.210 o posterior |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos para el perro guardián de inactividad de transmisión a nivel de byte; cuando se establece, tiene precedencia sobre `CLAUDE_STREAM_IDLE_TIMEOUT_MS` para ese perro guardián y deja el perro guardián a nivel de evento sin cambios. Claude Code fija esta variable entre 10 segundos y 30 minutos. Requiere Claude Code v2.1.210 o posterior |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | Ruta a un archivo que una herramienta externa, como un oyente de bloqueo de pantalla, crea cuando desbloquea su pantalla y elimina cuando la bloquea. Mientras el archivo existe, Claude Code omite [notificaciones push móviles de Remote Control](/docs/es/remote-control#mobile-push-notifications), por lo que deja de recibir notificaciones mientras usa activamente la computadora. Cuando el archivo está ausente o no se puede leer, las notificaciones se envían normalmente. Claude Code verifica el archivo una vez por evento de activación de notificación en lugar de sondear. Requiere Claude Code v2.1.181 o posterior |213| `CLAUDE_CLIENT_PRESENCE_FILE` | Ruta a un archivo que una herramienta externa, como un oyente de bloqueo de pantalla, crea cuando desbloquea su pantalla y elimina cuando la bloquea. Mientras el archivo existe, Claude Code omite [notificaciones push móviles de Remote Control](/docs/es/remote-control#mobile-push-notifications), por lo que deja de recibir notificaciones mientras usa activamente la computadora. Cuando el archivo está ausente o no se puede leer, las notificaciones se envían normalmente. Claude Code verifica el archivo una vez por evento de activación de notificación en lugar de sondear. Requiere Claude Code v2.1.181 o posterior |

214| `CLAUDE_CODE_ACCESSIBILITY` | Establezca en `1` para mantener visible el cursor de terminal nativo y desabilitar el indicador de cursor de texto invertido. Permite que ampliadores de pantalla como macOS Zoom rastreen la posición del cursor |214| `CLAUDE_CODE_ACCESSIBILITY` | Establezca en `1` para mantener visible el cursor de terminal nativo y desactivar el indicador de cursor de texto invertido. Permite que ampliadores de pantalla como macOS Zoom rastreen la posición del cursor |

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

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establezca en `1` para repintar la pantalla completa en cada fotograma en [renderizado de pantalla completa](/docs/es/fullscreen) en lugar de enviar actualizaciones incrementales. Use esto si el modo de pantalla completa muestra fragmentos de texto obsoletos o mal colocados. Claude Code habilita esto automáticamente para sesiones de fondo y [vista de agente](/docs/es/agent-view) en Windows |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Establezca en `1` para repintar la pantalla completa en cada fotograma en [renderizado de pantalla completa](/docs/es/fullscreen) en lugar de enviar actualizaciones incrementales. Use esto si el modo de pantalla completa muestra fragmentos de texto obsoletos o mal colocados. Claude Code habilita esto automáticamente para sesiones de fondo y [vista de agente](/docs/es/agent-view) en Windows |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establezca en `1` para enviar el parámetro [effort](/docs/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID del modelo como capaz de esfuerzo. Use esto cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway) o proveedor de terceros que sirve modelos bajo identificadores personalizados. Los modelos que rechazan el parámetro de esfuerzo en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1, y Haiku 4.5, aún se excluyen para que las solicitudes no fallen |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Establezca en `1` para enviar el parámetro [effort](/docs/es/model-config#adjust-effort-level) con cada solicitud, incluso cuando Claude Code no reconoce el ID del modelo como capaz de esfuerzo. Use esto cuando enrute a través de una [puerta de enlace LLM](/docs/es/llm-gateway) o proveedor de terceros que sirve modelos bajo identificadores personalizados. Los modelos que rechazan el parámetro de esfuerzo en la API, incluidos los modelos Claude 3, Sonnet 4.0 y 4.5, Opus 4.0 y 4.1, y Haiku 4.5, aún se excluyen para que las solicitudes no fallen |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (cuando se usa [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper)) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Intervalo en milisegundos en el que se deben actualizar las credenciales (cuando se usa [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper)) |

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

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establezca en `0` para evitar que Claude lea y responda a [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establezca en `0` para evitar que Claude lea y responda a [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establezca en `0` para evitar que Claude [responda por su cuenta a comentarios enviados a él](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establezca en `0` para evitar que Claude [responda por su cuenta a comentarios enviados a él](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establezca en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que lleva la versión del cliente y una huella digital del prompt, desde el inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado de ninguna manera. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en solicitudes de clasificador [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso cuando establece `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), verifique qué conexiones y credenciales cubre esto. Antes de v2.1.181, el bloque incluía un token por solicitud en URLs base personalizadas y conexiones de Microsoft Foundry, por lo que en esas versiones establézcalo en `0` cuando su puerta de enlace LLM almacena en caché el cuerpo de la solicitud o reenvía solicitudes a un proveedor de terceros, o cuando se conecta a Microsoft Foundry directamente |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establezca en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que lleva la versión del cliente y una huella digital del prompt, desde el inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado de ninguna manera. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en solicitudes del clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso cuando establece `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), verifique qué conexiones y credenciales cubre esto. Antes de v2.1.181, el bloque incluía un token por solicitud en URLs base personalizadas y conexiones de Microsoft Foundry, por lo que en esas versiones establézcalo en `0` cuando su puerta de enlace LLM almacena en caché el cuerpo de la solicitud o reenvía solicitudes a un proveedor de terceros, o cuando se conecta a Microsoft Foundry directamente |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está habilitado, segundos entre recordatorios a Claude para verificar [subagentes de fondo](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que aún se están ejecutando. Solo acepta un entero simple de `1` a `86400`; cualquier otro valor o deletreo se lee como no establecido. Cuando no se establece, no hay recordatorios de verificación. Requiere Claude Code v2.1.248 o posterior |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Cuando `CLAUDE_AUTO_BACKGROUND_TASKS` está habilitado, segundos entre recordatorios a Claude para verificar [subagentes de fondo](/docs/es/sub-agents#run-subagents-in-foreground-or-background) que aún se están ejecutando. Solo acepta un entero simple de `1` a `86400`; cualquier otro valor o deletreo se lee como no establecido. Cuando no se establece, no hay recordatorios de verificación. Requiere Claude Code v2.1.248 o posterior |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establezca la [ventana de auto-compactación](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se fija al mínimo de 100K. La ventana efectiva también se limita a la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, la bandera `--autocompact` y la configuración `autoCompactWindow`. La `used_percentage` de la línea de estado siempre mide contra la ventana de contexto completa del modelo, por lo que una vez que se establece esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establezca la [ventana de auto-compactación](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se fija al mínimo de 100K. La ventana efectiva también se limita a la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, la bandera `--autocompact` y la configuración `autoCompactWindow`. El `used_percentage` de la línea de estado siempre mide contra la ventana de contexto completa del modelo, por lo que una vez que se establece esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Anule la [conexión IDE](/docs/es/vs-code) automática. De forma predeterminada, Claude Code se conecta automáticamente cuando se inicia dentro de un terminal integrado de IDE compatible. Establezca en `false` para evitar esto. Establezca en `true` para forzar un intento de conexión cuando la auto-detección falla, como cuando tmux oscurece la terminal padre. Tiene precedencia sobre la configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Anule la [conexión IDE](/docs/es/vs-code) automática. De forma predeterminada, Claude Code se conecta automáticamente cuando se inicia dentro de la terminal integrada 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 la terminal padre. Tiene precedencia sobre la configuración global [`autoConnectIde`](/docs/es/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla si Claude Code le pide al servidor que [revise acciones de modo automático](/docs/es/permission-modes#server-side-classifier-review). Establezca en `0` para usar las solicitudes de clasificador propias de Claude Code en su lugar. En una conexión directa a la API de Anthropic, requiere v2.1.281 o posterior. La sección vinculada enumera qué sesiones le piden al servidor cuando la variable no se establece, y desde qué versión. Requiere Claude Code v2.1.271 o posterior |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla si Claude Code solicita al servidor que [revise acciones de modo automático](/docs/es/permission-modes#server-side-classifier-review). Establezca en `0` para usar las solicitudes del clasificador propio de Claude Code en su lugar. En una conexión directa a la API de Anthropic, requiere v2.1.281 o posterior. La sección vinculada enumera qué sesiones solicitan al servidor cuando la variable no se establece, y desde qué versión. Requiere Claude Code v2.1.271 o posterior |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tiempo en milisegundos que Claude Code espera a que la cadena de proveedores de credenciales predeterminada de AWS produzca credenciales antes de que la solicitud falle con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out) (predeterminado: `60000`). Aumente cuando un paso en su cadena legítimamente necesita más tiempo, como un inicio de sesión SSO basado en navegador con MFA a través de un contenedor como `aws-vault`. Se aplica dondequiera que Claude Code firme con la cadena predeterminada: [Amazon Bedrock](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y el [punto de conexión Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Requiere Claude Code v2.1.207 o posterior |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tiempo en milisegundos que Claude Code espera a que la cadena de proveedores de credenciales predeterminada de AWS produzca credenciales antes de que la solicitud falle con [`AWS default-chain credential resolve timed out`](/docs/es/errors#aws-default-chain-credential-resolve-timed-out) (predeterminado: `60000`). Aumente cuando un paso en su cadena legítimamente necesita más tiempo, como un inicio de sesión SSO basado en navegador con MFA a través de un contenedor como `aws-vault`. Se aplica dondequiera que Claude Code firme con la cadena predeterminada: [Amazon Bedrock](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y el [punto de conexión Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint). Requiere Claude Code v2.1.207 o posterior |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establezca en `0` para desactivar la [diferencia de los archivos que cambió un comando Bash](/docs/es/hooks#bash), o `1` para registrarlo en cada modo de permiso. Tiene precedencia sobre la configuración [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled). Requiere Claude Code v2.1.269 o posterior |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Establezca en `0` para desactivar el [diff de los archivos que cambiaron mientras se ejecutaba un comando Bash](/docs/es/hooks#bash), o `1` para registrarlo en cada modo de permiso. Tiene precedencia sobre la configuración [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled). Requiere Claude Code v2.1.269 o posterior |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establezca en `0` para hacer que una sesión no interactiva informe un estado inactivo a su host en cada final de turno, incluso mientras el trabajo de fondo aún se está ejecutando. De forma predeterminada, la sesión continúa informando un estado de ejecución después del final del turno mientras el trabajo de fondo como un agente de fondo o una ejecución de [flujo de trabajo](/docs/es/workflows) aún está activo. Esto mantiene un host que observa el estado, como una lista de sesión remota, de anunciar que Claude está esperando su entrada a mitad del trabajo. Los comandos de shell de fondo, como un servidor de desarrollo, no mantienen el estado de ejecución. El predeterminado de estado de ejecución y el opt-out de `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establezca `1` para mantener el estado de ejecución |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Establezca en `0` para hacer que una sesión no interactiva informe un estado inactivo a su host al final de cada turno, incluso mientras el trabajo de fondo aún se está ejecutando. De forma predeterminada, la sesión sigue informando un estado de ejecución después del final del turno mientras el trabajo de fondo, como un agente de fondo o una ejecución de [flujo de trabajo](/docs/es/workflows), aún está activo. Esto mantiene un host que observa el estado, como una lista de sesiones remotas, de anunciar que Claude está esperando su entrada a mitad del trabajo. Los comandos de shell de fondo, como un servidor de desarrollo, no mantienen el estado de ejecución. El predeterminado de estado de ejecución y la opción de exclusión de `0` requieren Claude Code v2.1.269 o posterior; en versiones anteriores, establezca `1` para mantener el estado de ejecución |

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

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

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

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

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

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

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Frase de contraseña para CLAUDE\_CODE\_CLIENT\_KEY cifrado (opcional) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Eliminado en v2.1.186 y ahora es un no-op. Anteriormente establecía un tiempo de espera separado para la fase de conexión, TLS y encabezado de respuesta de una solicitud de API de transmisión. Use `API_TIMEOUT_MS` para el tiempo de espera por solicitud. Para la fase de encabezado de respuesta de una solicitud de transmisión, vea `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Eliminado en v2.1.186 y ahora es un no-op. Anteriormente establecía un tiempo de espera separado para la fase de conexión, TLS y encabezado de respuesta de una solicitud de API de transmisión. Use `API_TIMEOUT_MS` para el tiempo de espera por solicitud. Para la fase de encabezado de respuesta de una solicitud de transmisión, consulte `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Anule la ruta del archivo de registro de depuración. A pesar del nombre, esta es una ruta de archivo, no un directorio. Requiere que el modo de depuración se habilite por separado a través de `--debug`, `/debug`, o la variable de entorno `DEBUG`: establecer solo esta variable no habilita el registro. La bandera [`--debug-file`](/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Anule la ruta del archivo de registro de depuración. A pesar del nombre, esta es una ruta de archivo, no un directorio. Requiere que el modo de depuración se habilite por separado a través de `--debug`, `/debug`, o la variable de entorno `DEBUG`: establecer solo esta variable no habilita el registro. La [bandera `--debug-file`](/docs/es/cli-reference#cli-flags) hace ambas cosas a la vez. El valor predeterminado es `~/.claude/debug/<session-id>.txt` |

239| `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 de comando de línea de estado completa, o aumente a `error` para reducir ruido |239| `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 |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establezca en `1` para desabilitar el soporte de [ventana de contexto de 1M](/docs/es/model-config#extended-context). Cuando se establece, las variantes de modelo de 1M no están disponibles en el selector de modelo, y Claude Code mantiene sesiones en modelos con una ventana nativa de 1M, como [Sonnet 5](/docs/es/model-config#sonnet-5-context-window) y los modelos Fable, a una ventana de 200K; vea [Contexto extendido](/docs/es/model-config#extended-context) para cómo se aplica la retención. Útil para entornos empresariales con requisitos de cumplimiento. Para su papel en corregir la ventana para un ID de modelo \[1m] no reconocido, vea [Corregir la ventana para un ID de modelo de puerta de enlace o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Establezca en `1` para desactivar el soporte de [ventana de contexto de 1M](/docs/es/model-config#extended-context). Cuando se establece, las variantes de modelo de 1M no están disponibles en el selector de modelo, y Claude Code mantiene sesiones en modelos con una ventana nativa de 1M, como [Sonnet 5.5](/docs/es/model-config#sonnet-5-5-and-sonnet-5-context-window) y los modelos Fable, a una ventana de 200K; consulte [Contexto extendido](/docs/es/model-config#extended-context) para cómo se aplica la retención. Útil para entornos empresariales con requisitos de cumplimiento. Para su papel en corregir la ventana para un ID de modelo no reconocido `[1m]`, consulte [Corregir la ventana para un ID de modelo de puerta de enlace o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establezca en `1` para desabilitar [razonamiento adaptativo](/docs/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`. No tiene efecto en [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5, u Opus 4.7 y posterior, que siempre usan razonamiento adaptativo |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Establezca en `1` para desactivar [razonamiento adaptativo](/docs/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`. No tiene efecto en [modelos Fable](/docs/es/model-config#extended-thinking), Sonnet 5 y posterior, u Opus 4.7 y posterior, que siempre usan razonamiento adaptativo |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establezca en `1` para evitar que Claude Code fusione bloques `env` de [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) por clave en todas las fuentes de administrador, por lo que solo se aplica el bloque `env` de la fuente de mayor prioridad, como antes de v2.1.223. Establézcalo en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de configuración. Requiere Claude Code v2.1.223 o posterior |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Establezca en `1` para evitar que Claude Code fusione bloques `env` de [configuración administrada](/docs/es/managed-settings#precedence-within-the-managed-tier) por clave entre fuentes de administrador, por lo que solo se aplica el bloque `env` completo de la fuente de mayor prioridad, como antes de v2.1.223. Establézcalo en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de configuración. Requiere Claude Code v2.1.223 o posterior |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establezca en `1` para desabilitar la [herramienta asesor](/docs/es/advisor). El comando `/advisor` se vuelve no disponible, cualquier `advisorModel` configurado se ignora, y la bandera `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que la pasan continúan funcionando sin errores |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Establezca en `1` para desactivar la [herramienta de asesor](/docs/es/advisor). El comando `/advisor` se vuelve no disponible, cualquier `advisorModel` configurado se ignora, y la bandera `--advisor` se acepta pero no tiene efecto, por lo que los scripts existentes que la pasan continúan funcionando sin errores |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establezca en `1` para desactivar [agentes de fondo y vista de agente](/docs/es/agent-view): `claude agents`, `--bg`, `/background`, y el supervisor bajo demanda. Equivalente a la configuración [`disableAgentView`](/docs/es/settings-reference#disableagentview) |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Establezca en `1` para desactivar [agentes de fondo y vista de agente](/docs/es/agent-view): `claude agents`, `--bg`, `/background`, y el supervisor bajo demanda. Equivalente a la configuración [`disableAgentView`](/docs/es/settings-reference#disableagentview) |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establezca en `1` para desabilitar [renderizado de pantalla completa](/docs/es/fullscreen) y usar 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`](/docs/es/settings-reference#tui). También puede cambiar con `/tui default`. No se aplica a sesiones de fondo abiertas desde [vista de agente](/docs/es/agent-view), que siempre usan renderizado de pantalla completa |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Establezca en `1` para desactivar [renderizado de pantalla completa](/docs/es/fullscreen) y usar 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`](/docs/es/settings-reference#tui). También puede cambiar con `/tui default`. No se aplica a sesiones de fondo abiertas desde [vista de agente](/docs/es/agent-view), que siempre usan renderizado de pantalla completa |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establezca en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de sesión como una página web privada en claude.ai. Una vez que lo establece, ningún archivo de configuración activa la herramienta de nuevo. Para desactivar la herramienta desde un archivo de configuración en su lugar, establezca [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave deprecated [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | Establezca en `1` para desactivar la herramienta [Artifact](/docs/es/artifacts), que publica la salida de sesión como una página web privada en claude.ai. Una vez que lo establece, ningún archivo de configuración activa la herramienta de nuevo. Para desactivar la herramienta desde un archivo de configuración en su lugar, establezca [`enableArtifact`](/docs/es/settings-reference#enableartifact) en `false`; la clave deprecada [`disableArtifact`](/docs/es/settings-reference#disableartifact) también la desactiva |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establezca en `1` para desabilitar el procesamiento de archivos adjuntos. Las menciones de archivo con sintaxis `@` se envían como texto simple en lugar de expandirse en contenido de archivo |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Establezca en `1` para desactivar el procesamiento de archivos adjuntos. Las menciones de archivos con sintaxis `@` se envían como texto simple en lugar de expandirse al contenido del archivo |

248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establezca en `1` para desabilitar [memoria automática](/docs/es/memory#auto-memory). Establezca en `0` para forzar la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la deshabilitaría de otra manera. Cuando está deshabilitada, Claude no crea ni carga archivos de memoria automática |248| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Establezca en `1` para desactivar [memoria automática](/docs/es/memory#auto-memory). Establezca en `0` para forzar la memoria automática incluso cuando el modo `--bare` o [`autoMemoryEnabled: false`](/docs/es/settings-reference#automemoryenabled) la desactivaría de otra manera. Cuando está desactivada, Claude no crea ni carga archivos de memoria automática |

249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establezca en `1` para desabilitar toda la funcionalidad de tareas de fondo, incluido el parámetro `run_in_background` en herramientas Bash y subagente, auto-envío a segundo plano, y el atajo Ctrl+B |249| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Establezca en `1` para desactivar toda la funcionalidad de tareas de fondo, incluido el parámetro `run_in_background` en herramientas Bash y subagente, auto-puesta en segundo plano, y el atajo Ctrl+B |

250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establezca en `1` para evitar que Claude Code trate una respuesta de transmisión de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` faltante o vacío como flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que una puerta de enlace eliminó el encabezado de una respuesta de otra manera sin modificar, por lo que decodifica el cuerpo y la transmisión continúa funcionando. Establezca esto solo para una puerta de enlace que también re-emita la transmisión como eventos enviados por servidor; Claude Code entonces lee el cuerpo sin encabezado como eventos enviados por servidor en su lugar. Requiere Claude Code v2.1.239 o posterior |250| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Establezca en `1` para evitar que Claude Code trate una respuesta de transmisión de [Amazon Bedrock](/docs/es/amazon-bedrock) con un encabezado `Content-Type` faltante o vacío como flujo de eventos binario de Amazon Bedrock. De forma predeterminada, Claude Code asume que una puerta de enlace eliminó el encabezado de una respuesta por lo demás sin modificar, por lo que decodifica el cuerpo y la transmisión sigue funcionando. Establezca esto solo para una puerta de enlace que también re-emita la transmisión como eventos enviados por servidor; Claude Code entonces lee el cuerpo sin encabezado como eventos enviados por servidor en su lugar. Requiere Claude Code v2.1.239 o posterior |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establezca en `1` para omitir la verificación de que una respuesta de transmisión de [Amazon Bedrock](/docs/es/amazon-bedrock) lleve el tipo de contenido `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un tipo de contenido diferente, Claude Code falla la solicitud con un error que nombra ese tipo, lo que significa que una [puerta de enlace o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure la puerta de enlace para reenviar el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Establezca en `1` para omitir la verificación de que una respuesta de transmisión de [Amazon Bedrock](/docs/es/amazon-bedrock) lleve el tipo de contenido `application/vnd.amazon.eventstream`. Sin esta variable, cuando una respuesta lleva un tipo de contenido diferente, Claude Code falla la solicitud con un error que nombra ese tipo, lo que significa que una [puerta de enlace o proxy está transformando la respuesta](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Configure la puerta de enlace para reenviar el encabezado `Content-Type` y el cuerpo sin modificar en lugar de establecer esta variable. Requiere Claude Code v2.1.208 o posterior |

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

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

254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establezca en `1` para desabilitar las [skills](/docs/es/skills) e flujos de trabajo incluidos con Claude Code: las skills agrupadas y los flujos de trabajo se eliminan completamente, mientras que los comandos integrados como `/init` permanecen escribibles pero se ocultan del modelo. `/doctor` permanece escribible como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Las skills de plugins, `.claude/skills/`, y `.claude/commands/` no se ven afectadas. Equivalente a la configuración [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |254| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Establezca en `1` para desactivar las [skills](/docs/es/skills) y flujos de trabajo incluidos con Claude Code: las skills agrupadas y los flujos de trabajo se eliminan completamente, mientras que los comandos integrados como `/init` permanecen escribibles pero se ocultan del modelo. `/doctor` permanece escribible como los comandos integrados; ocúltalo con `DISABLE_DOCTOR_COMMAND` en su lugar. Las skills de plugins, `.claude/skills/`, y `.claude/commands/` no se ven afectadas. Equivalente a la configuración [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills) |

255| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establezca en `1` para mantener las herramientas de navegador [Claude in Chrome](/docs/es/chrome) disponibles mientras omite la sección de Chrome del prompt del sistema y la [skill agrupada](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que incrustan Claude Code y suministran su propia orientación de navegador. Requiere Claude Code v2.1.257 o posterior |255| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Establezca en `1` para mantener las herramientas de navegador de [Claude in Chrome](/docs/es/chrome) disponibles mientras omite la sección de Chrome del prompt del sistema y la [skill agrupada](/docs/es/skills#bundled-skills) `/claude-in-chrome`. Para hosts que incrustan Claude Code y suministran su propia guía de navegador. Requiere Claude Code v2.1.257 o posterior |

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

257| `CLAUDE_CODE_DISABLE_CRON` | Establezca en `1` para desabilitar [tareas programadas](/docs/es/scheduled-tasks). La skill `/loop` y las herramientas cron se vuelven no disponibles y cualquier tarea ya programada deja de activarse, incluidas las tareas que ya se están ejecutando a mitad de sesión |257| `CLAUDE_CODE_DISABLE_CRON` | Establezca en `1` para desactivar [tareas programadas](/docs/es/scheduled-tasks). La skill `/loop` y las herramientas cron se vuelven no disponibles y cualquier tarea ya programada deja de activarse, incluidas las tareas que ya se están ejecutando a mitad de sesión |

258| `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. Use 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. [La búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search) está deshabilitada y todas las herramientas MCP se cargan por adelantado, incluso cuando establece `ENABLE_TOOL_SEARCH`. En Claude Code v2.1.227 o posterior, [la configuración administrada](/docs/es/managed-settings) puede mantener la búsqueda de herramientas activada. [Desabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre dónde se aplica la anulación |258| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Establezca en `1` para desactivar el límite de tiempo en solicitudes de [ruta crítica de eliminación](/docs/es/permission-modes#critical-paths). En modo `auto`, Claude Code entonces envía estas eliminaciones al clasificador en su lugar, y en modo `bypassPermissions`, el prompt espera su respuesta. Establézcalo en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de configuración. Requiere Claude Code v2.1.281 o posterior |

259| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Establezca en `1` para desabilitar los [subagentes Explore y Plan](/docs/es/sub-agents#built-in-subagents) integrados. Claude explora con sus herramientas de búsqueda o el subagente de propósito general en su lugar, y [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) lee archivos directamente en lugar de lanzar agentes Explore y Plan. Los subagentes personalizados nombrados `Explore` o `Plan` no se ven afectados. Para eliminar cada tipo de subagente integrado en el Agent SDK o modo no interactivo, use `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` en su lugar. Requiere Claude Code v2.1.198 o posterior |259| `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` e `eager_input_streaming`) de solicitudes de API. Use 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. [La búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search) se desactiva y todas las herramientas MCP se cargan por adelantado, incluso cuando establece `ENABLE_TOOL_SEARCH`. En Claude Code v2.1.227 o posterior, [la configuración administrada](/docs/es/managed-settings) puede mantener la búsqueda de herramientas activada. [Desactivar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre dónde se aplica la anulación |

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

261| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establezca en `1` para desabilitar las encuestas de calidad de sesión "¿Cómo está Claude?". Las encuestas también se desabilitan cuando `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` se establece, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por volver a entrar. Para establecer una tasa de muestreo en lugar de desabilitar completamente, use la configuración [`feedbackSurveyRate`](/docs/es/settings-reference#feedbacksurveyrate). Vea [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) |261| `CLAUDE_CODE_DISABLE_FAST_MODE` | Establezca en `1` para desactivar [modo rápido](/docs/es/fast-mode) |

262| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para desabilitar [checkpointing](/docs/es/checkpointing) de archivo. El comando `/rewind` no podrá restaurar cambios de código. Anula la configuración [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |262| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Establezca en `1` para desactivar las encuestas de calidad de sesión "¿Cómo está Claude?". Las encuestas también se desactivan cuando `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` se establece, a menos que `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` opte por volver a entrar. Para establecer una tasa de muestreo en lugar de desactivar completamente, use la configuración [`feedbackSurveyRate`](/docs/es/settings-reference#feedbacksurveyrate). Consulte [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) |

263| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establezca en `1` para eliminar instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git del prompt del sistema de Claude. Útil cuando usa sus propias skills de flujo de trabajo de git. Tiene precedencia sobre la configuración [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) cuando se establece |263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Establezca en `1` para desactivar el [punto de control](/docs/es/checkpointing) de archivo. El comando `/rewind` no podrá restaurar cambios de código. Anula la configuración [`fileCheckpointingEnabled`](/docs/es/settings-reference#filecheckpointingenabled) |

264| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establezca en `1` para evitar la remapeo automático de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Use cuando desee fijar intencionalmente un modelo más antiguo. El remapeo no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry |264| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Establezca en `1` para eliminar instrucciones de flujo de trabajo de commit y PR integradas y la instantánea de estado de git del contexto de Claude. Útil cuando se usan sus propias skills de flujo de trabajo de git. Tiene precedencia sobre la configuración [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) cuando se establece |

265| `CLAUDE_CODE_DISABLE_MOUSE` | Establezca en `1` para desabilitar el seguimiento del ratón en [renderizado de pantalla completa](/docs/es/fullscreen). El desplazamiento por teclado con `PgUp` y `PgDn` aún funciona. Use esto para mantener el comportamiento de copia al seleccionar nativo de su terminal |265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Establezca en `1` para evitar la remapeo automática de Opus 4.0 y 4.1 a la versión actual de Opus en la API de Anthropic. Use cuando desee fijar intencionalmente un modelo más antiguo. El remapeo no se ejecuta en Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry |

266| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establezca en `1` para desabilitar el manejo de clics, arrastres y desplazamientos en [renderizado de pantalla completa](/docs/es/fullscreen) mientras mantiene el desplazamiento de rueda del ratón. Use esto cuando desee que el desplazamiento de rueda funcione dentro de Claude Code pero no desee que los clics posicionen el cursor, expandan la salida de herramientas, o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambos se establecen. Requiere Claude Code v2.1.195 o posterior |266| `CLAUDE_CODE_DISABLE_MOUSE` | Establezca en `1` para desactivar el seguimiento del ratón en [renderizado de pantalla completa](/docs/es/fullscreen). El desplazamiento por teclado con `PgUp` y `PgDn` aún funciona. Use esto para mantener el comportamiento de copia nativa de su terminal |

267| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establezca en `1` para evitar que Claude Code vuelva a leer el [certificado de cliente mTLS y la clave](/docs/es/network-config#mtls-authentication) cuando una solicitud de API falla con un error a nivel de conexión, como un reinicio de conexión o un error de protocolo de enlace TLS. Con la recarga deshabilitada, Claude Code carga archivos rotados solo cuando aplica configuración nuevamente o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Establezca en `1` para desactivar el manejo de clics, arrastres y desplazamientos en [renderizado de pantalla completa](/docs/es/fullscreen) mientras mantiene el desplazamiento de rueda del ratón. Use esto cuando desee que el desplazamiento de rueda funcione dentro de Claude Code pero no desee que los clics posicionen el cursor, expandan la salida de herramientas o abran enlaces. `CLAUDE_CODE_DISABLE_MOUSE` tiene precedencia cuando ambos se establecen. Requiere Claude Code v2.1.195 o posterior |

268| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Establezca en cualquier valor no vacío, como `1`, para desabilitar el tráfico de red no esencial: auto-actualizaciones, telemetría, informes de errores, el comando `/feedback`, [retroalimentación redactada por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), notas de lanzamiento, las [comprobaciones de insignia de estado de PR y MR](/docs/es/interactive-mode#pr-review-status), y comprobaciones de disponibilidad como la comprobación de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). También detiene las [ejecuciones de fondo de fuentes de comando de plugin](/docs/es/plugin-marketplaces#when-claude-code-re-runs-the-command), que son comandos locales en lugar de tráfico de red, porque pueden desencadenar instalaciones de dependencias. **Establecerlo en `0` o `false` aún desabilita este tráfico**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para permitirlo de nuevo. También desabilita la obtención de banderas de características, lo que hace que [Remote Control](/docs/es/remote-control#requirements) y las otras [características que necesitan obtención de banderas de características](#features-that-need-feature-flag-fetching) no estén disponibles. La auto-instalación del mercado de plugins oficial no se cubre; deshabilitela con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. No afecta [descubrimiento de modelo de puerta de enlace](/docs/es/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tiene su propio opt-in |268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Establezca en `1` para evitar que Claude Code vuelva a leer el [certificado de cliente mTLS y la clave](/docs/es/network-config#mtls-authentication) cuando una solicitud de API falla con un error a nivel de conexión, como un reinicio de conexión o un error de protocolo de enlace TLS. Con la recarga desactivada, Claude Code carga archivos rotados solo cuando aplica la configuración nuevamente o en el siguiente inicio. Requiere Claude Code v2.1.232 o posterior |

269| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establezca en `1` para desabilitar el respaldo no transmitido cuando una solicitud de transmisión falla a mitad de transmisión. Los errores de transmisión se propagan a la capa de reintento en su lugar. Útil cuando un proxy o puerta de enlace causa que el respaldo produzca ejecución de herramientas duplicada |269| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Establezca en cualquier valor no vacío, como `1`, para desactivar el tráfico de red no esencial: auto-actualizaciones, telemetría, informes de errores, el comando `/feedback`, [retroalimentación redactada por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), notas de lanzamiento, las [comprobaciones de insignia de estado de PR y MR](/docs/es/interactive-mode#pr-review-status), y comprobaciones de disponibilidad como la comprobación de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). También detiene las [ejecuciones de fondo de fuentes de comando de plugin](/docs/es/plugins/loading#when-a-command-source-re-runs), que son comandos locales en lugar de tráfico de red, porque pueden desencadenar instalaciones de dependencias. **Establecerlo en `0` o `false` aún desactiva este tráfico**, a diferencia de la mayoría de variables de encendido/apagado; desestablezca la variable para permitirlo de nuevo. También desactiva la obtención de banderas de características, lo que hace que [Remote Control](/docs/es/remote-control#requirements) y las otras [características que necesitan obtención de banderas de características](#features-that-need-feature-flag-fetching) no estén disponibles. La auto-instalación del mercado de plugins oficial no se cubre; desactívela con `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. No afecta el [descubrimiento de modelos de puerta de enlace](/docs/es/llm-gateway-connect#add-gateway-models-to-the-model-picker), que tiene su propio opt-in |

270| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establezca en `1` para enviar la notificación de escritorio de la herramienta `PushNotification` incluso mientras está escribiendo en o enfocado en la terminal. De forma predeterminada, la herramienta omite tanto la notificación de escritorio como el [push móvil](/docs/es/remote-control#mobile-push-notifications) cuando detecta actividad de teclado reciente o enfoque de terminal. Esta variable desabilita solo esa verificación local, por lo que el servidor aún puede suprimir el push móvil cuando detecta que está activo. Requiere Claude Code v2.1.193 o posterior |270| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Establezca en `1` para desactivar el respaldo no transmitido cuando una solicitud de transmisión falla a mitad de transmisión. Los errores de transmisión se propagan a la capa de reintento en su lugar. Útil cuando un proxy o puerta de enlace causa que el respaldo produzca ejecución de herramientas duplicada |

271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establezca en `1` para desabilitar el registro automático del mercado de plugins oficial. Claude Code lee la variable cuando está a punto de registrar el mercado, generalmente durante el primer lanzamiento interactivo de una máquina. Si la variable se establece en ese punto, Claude Code omite el registro permanentemente. Desestablecerla más tarde no deshace la omisión. Ejecute `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el mercado en cualquier momento |271| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Establezca en `1` para enviar la notificación de escritorio de la herramienta `PushNotification` incluso mientras escribe en o se enfoca en la terminal. De forma predeterminada, la herramienta omite tanto la notificación de escritorio como el [push móvil](/docs/es/remote-control#mobile-push-notifications) cuando detecta actividad de teclado reciente o enfoque de terminal. Esta variable desactiva solo esa verificación local, por lo que el servidor aún puede suprimir el push móvil cuando detecta que está activo. Requiere Claude Code v2.1.193 o posterior |

272| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establezca en `1` para evitar que Claude Code ejecute sus [hooks de Notification para solicitudes de permiso sin respuesta](/docs/es/hooks#notification) en sesiones donde Claude Code las envía a la devolución de llamada `canUseTool` del Agent SDK, que es cómo Claude Desktop y la extensión VS Code alojan Claude Code. No tiene efecto en sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |272| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Establezca en `1` para desactivar el registro automático del mercado de plugins oficial. Claude Code lee la variable cuando está a punto de registrar el mercado, generalmente durante el primer lanzamiento interactivo de una máquina. Si la variable se establece en ese punto, Claude Code omite el registro permanentemente. Desestablecerla más tarde no deshace la omisión. Ejecute `claude plugin marketplace add anthropics/claude-plugins-official` para registrar el mercado en cualquier momento |

273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establezca en `1` para omitir la carga de skills del directorio de skills administrado en todo el sistema. Útil para sesiones de contenedor o CI que no deben cargar skills aprovisionadas por operador |273| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Establezca en `1` para evitar que Claude Code ejecute sus [hooks de `Notification` para solicitudes de permiso sin respuesta](/docs/es/hooks#notification) en sesiones donde Claude Code las envía a la devolución de llamada `canUseTool` del Agent SDK, que es cómo Claude Desktop y la extensión VS Code alojan Claude Code. No tiene efecto en sesiones de terminal. Requiere Claude Code v2.1.233 o posterior |

274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establezca en `1` para desabilitar actualizaciones automáticas del título de terminal basadas en contexto de conversación. Esto también omite la solicitud de modelo pequeño/rápido de fondo que [genera un título de sesión](/docs/es/sessions#name-your-sessions) |274| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Establezca en `1` para omitir la carga de skills desde el directorio de skills administradas en todo el sistema. Útil para sesiones de contenedor o CI que no deben cargar skills aprovisionadas por operadores |

275| `CLAUDE_CODE_DISABLE_THINKING` | Establezca en `1` para omitir completamente el parámetro `thinking` de solicitudes de API. Esta es una opción de compatibilidad para proxies y puertas de enlace que rechazan el parámetro. En modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo aún puede pensar. Para desabilitar explícitamente [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, use `MAX_THINKING_TOKENS=0` en su lugar. Ninguna variable desactiva el pensamiento en Opus 5.5 o los modelos Fable, que no pueden tener el pensamiento desactivado. En [proveedores de terceros](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` de manera similar omite el parámetro, por lo que las dos variables se comportan igual allí |275| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Establezca en `1` para desactivar la verificación de la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) que niega los comandos integrados `cmd` `rd`, `rmdir`, `del`, y `erase` en una [ruta del sistema](/docs/es/permission-modes#remove-item-in-powershell), como una raíz de unidad o su directorio de inicio. Claude Code ignora esta variable en un bloque `env` de archivo de configuración. Requiere Claude Code v2.1.283 o posterior |

276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establezca en `1` para omitir [auto-compactación](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta en la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir la ventana asumida en su lugar; vea [Corregir la ventana para un ID de modelo de puerta de enlace o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |276| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Establezca en `1` para desactivar la verificación de [ruta crítica](/docs/es/permission-modes#critical-paths) para un `rm` recursivo cuyo objetivo es completamente la salida de una sustitución de comando, como `rm -rf "$(pwd)"`. Las otras verificaciones de ruta crítica siguen ejecutándose. Establézcalo en el entorno que inicia Claude Code, ya que Claude Code ignora una copia entregada a través de un bloque `env` de configuración. Requiere Claude Code v2.1.281 o posterior |

277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establezca en `1` para desabilitar el desplazamiento virtual en [renderizado de pantalla completa](/docs/es/fullscreen) y renderizar cada mensaje en la transcripción. Use esto si el desplazamiento en modo de pantalla completa muestra regiones en blanco donde deberían aparecer mensajes |277| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Establezca en `1` para desactivar las actualizaciones automáticas del título de la terminal basadas en el contexto de la conversación. Esto también omite la solicitud de modelo pequeño/rápido de fondo que [genera un título de sesión](/docs/es/sessions#name-your-sessions) |

278| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establezca en `1` para iniciar comandos de [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando de PowerShell [ejecutándose en el fondo](/docs/es/tools-reference#background-commands) [se lleve al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), como cuando [envía la sesión a segundo plano](/docs/es/agent-view#from-inside-a-session). Si establece la variable, un comando de PowerShell enviado a segundo plano se detiene cuando sale el proceso de la sesión. Los comandos Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |278| `CLAUDE_CODE_DISABLE_THINKING` | Establezca en `1` para omitir completamente el parámetro `thinking` de solicitudes de API. Esta es una opción de compatibilidad para proxies y puertas de enlace que rechazan el parámetro. En modelos que piensan de forma predeterminada, omitir el parámetro significa que el modelo aún puede pensar. Para desactivar explícitamente [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) en la API de Anthropic, use `MAX_THINKING_TOKENS=0` en su lugar. Ninguna variable desactiva el pensamiento en Opus 5.5, Sonnet 5.5, o los modelos Fable, que no pueden tener el pensamiento desactivado. En [proveedores de terceros](/docs/es/third-party-integrations), `MAX_THINKING_TOKENS=0` de manera similar omite el parámetro, por lo que las dos variables se comportan igual allí |

279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establezca en `1` para desabilitar [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivalente a la configuración [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |279| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Establezca en `1` para omitir la [auto-compactación](/docs/es/costs#reduce-token-usage) proactiva cuando Claude Code no reconoce el ID del modelo, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway). Sin esta variable, Claude Code compacta en la ventana de contexto que asume para el ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` puede corregir la ventana asumida en su lugar; consulte [Corregir la ventana para un ID de modelo de puerta de enlace o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) para cuándo se aplica cada variable. Requiere Claude Code v2.1.223 o posterior |

280| `CLAUDE_CODE_EFFORT_LEVEL` | Establezca el nivel de esfuerzo para modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh`, `max`, o `auto` para usar el predeterminado del modelo. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `--effort`, `/effort`, y las configuraciones `modelSettings` y `effortLevel`. Un límite [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) aún se aplica. Vea [Ajustar nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |280| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Establezca en `1` para desactivar el desplazamiento virtual en [renderizado de pantalla completa](/docs/es/fullscreen) y renderizar cada mensaje en la transcripción. Use esto si el desplazamiento en modo de pantalla completa muestra regiones en blanco donde deberían aparecer mensajes |

281| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Establezca en `1` para iniciar comandos de [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) en Windows directamente en lugar de a través del lanzador `cmd.exe`. De forma predeterminada, el lanzador permite que un comando PowerShell [ejecutándose en segundo plano](/docs/es/tools-reference#background-commands) [se traslade al siguiente proceso de la sesión](/docs/es/agent-view#the-supervisor-process), como cuando [pone la sesión en segundo plano](/docs/es/agent-view#from-inside-a-session). Si establece la variable, un comando PowerShell puesto en segundo plano se detiene cuando el proceso de la sesión sale. Los comandos Bash no se ven afectados. Requiere Claude Code v2.1.269 o posterior |

282| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Establezca en `1` para desactivar [flujos de trabajo](/docs/es/workflows#turn-workflows-off). Equivalente a la configuración [`disableWorkflows`](/docs/es/settings-reference#disableworkflows) |

283| `CLAUDE_CODE_EFFORT_LEVEL` | Establezca el nivel de esfuerzo para modelos compatibles. Valores: `low`, `medium`, `high`, `xhigh`, `max`, o `auto` para usar el predeterminado del modelo. Los niveles disponibles dependen del modelo. Tiene precedencia sobre `--effort`, `/effort`, y las configuraciones `modelSettings` y `effortLevel`. Un límite [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) aún se aplica. Consulte [Ajustar nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) |

281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Aceptado para compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en cada proveedor, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada. En v2.1.158 a través de v2.1.206, establecer esto en `1` era necesario para hacer que [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Aceptado para compatibilidad con versiones anteriores y no tiene efecto. El modo automático está disponible de forma predeterminada en cada proveedor, incluidos Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada. En v2.1.158 a través de v2.1.206, establecer esto en `1` era necesario para hacer que [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) estuviera disponible en esos proveedores |

282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Anule la disponibilidad de [resumen de sesión](/docs/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`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene precedencia sobre la configuración y toggle `/config` |285| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Anule la disponibilidad de [resumen de sesión](/docs/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`](/docs/es/settings-reference#awaysummaryenabled) es `false`. Tiene precedencia sobre la configuración y el toggle `/config` |

283| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establezca en `1` para actualizar el estado del plugin en límites de turno en [modo no interactivo](/docs/es/headless) después de que se complete una instalación de fondo. Desactivado de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de sesión, lo que invalida [almacenamiento en caché de prompt](/docs/es/prompt-caching) para ese turno |286| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Establezca en `1` para actualizar el estado del plugin en límites de turno en [modo no interactivo](/docs/es/headless) después de que se complete una instalación de fondo. Desactivado de forma predeterminada porque la actualización cambia el prompt del sistema a mitad de sesión, lo que invalida el [almacenamiento en caché de prompts](/docs/es/prompt-caching) para ese turno |

284| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establezca en `1` para enrutar la encuesta de calidad de sesión "¿Cómo está Claude?" a su propio [recopilador OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial vinculado a Anthropic está bloqueado. Las calificaciones de encuesta se emiten solo como eventos OTEL a su recopilador configurado. Ningún dato de encuesta se envía a Anthropic en este modo. Se aplica cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, o `DO_NOT_TRACK` se establece, y no tiene efecto de otra manera. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de retroalimentación del producto de la organización tienen precedencia |287| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Establezca en `1` para enrutar la encuesta de calidad de sesión "¿Cómo está Claude?" a su propio [recopilador de OpenTelemetry](/docs/es/monitoring-usage) cuando el tráfico no esencial vinculado a Anthropic está bloqueado. Las calificaciones de encuesta se emiten solo como eventos OTEL a su recopilador configurado. No se envían datos de encuesta a Anthropic en este modo. Se aplica cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, o `DO_NOT_TRACK` se establece, y no tiene efecto de otra manera. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` y la política de retroalimentación del producto de la organización tienen precedencia |

285| `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 cuelga. Habilitado de forma predeterminado en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, habilitado por modelo donde el contenedor implementado lo admite. Establezca en `0` para optar por no participar. Establezca en `1` para forzar cuando enrute a través de un proxy a través de `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Microsoft Foundry y conexiones de [puerta de enlace](/docs/es/llm-gateway) |288| `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 cuelga. Habilitado de forma predeterminado en la API de Anthropic. En Amazon Bedrock y Google Cloud's Agent Platform, habilitado por modelo donde el contenedor implementado lo admite. Establezca en `0` para optar por no participar. Establezca en `1` para forzar cuando enrute a través de un proxy a través de `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, o `ANTHROPIC_BEDROCK_BASE_URL`. Desactivado de forma predeterminada en Microsoft Foundry y conexiones de [puerta de enlace](/docs/es/llm-gateway) |

286| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establezca en `1` para rellenar el selector `/model` desde el punto de conexión `/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 una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que la sesión recibe; entregue la lista a través de [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por servidor no está disponible en configuraciones de puerta de enlace](/docs/es/server-managed-settings#platform-availability) |289| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Establezca en `1` para rellenar el selector `/model` desde el punto de conexión `/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 una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) que la sesión recibe; entregue la lista a través de [MDM o un archivo de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), ya que [la entrega administrada por servidor no está disponible en configuraciones de puerta de enlace](/docs/es/server-managed-settings#platform-availability) |

287| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminado en v2.1.142, cuando el predeterminado de [modo rápido](/docs/es/fast-mode) se movió de Opus 4.6 a Opus 4.7 |290| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Eliminado en v2.1.142, cuando el predeterminado de [modo rápido](/docs/es/fast-mode) se movió de Opus 4.6 a Opus 4.7 |

288| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establezca en `false` para desactivar sugerencias de prompt, las predicciones atenuadas que aparecen en su entrada de prompt. Tiene precedencia sobre la configuración [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que el toggle **Sugerencias de prompt** en `/config` escribe. Claude Code también [pausa sugerencias mientras su cuenta está cerca o en su límite de uso](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establezca en `true` para mantenerlas activadas hasta que alcance el límite. Requiere Claude Code v2.1.238 o posterior. Vea [Sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) |291| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Establezca en `false` para desactivar sugerencias de prompt, las predicciones atenuadas que aparecen en su entrada de prompt. Tiene precedencia sobre la configuración [`promptSuggestionEnabled`](/docs/es/settings-reference#promptsuggestionenabled), que es lo que el toggle **Prompt suggestions** en `/config` escribe. Claude Code también [pausa sugerencias mientras su cuenta está cerca o en su límite de uso](/docs/es/interactive-mode#when-claude-code-skips-suggestions). Establezca en `true` para mantenerlas activadas hasta que alcance el límite. Requiere Claude Code v2.1.238 o posterior. Consulte [Sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) |

289| `CLAUDE_CODE_ENABLE_TASKS` | Selecciona qué herramientas de seguimiento de tareas proporciona Claude Code en [sesiones que las tienen](/docs/es/tools-reference#task-tool-availability). De forma predeterminada, Claude Code proporciona las herramientas Task `TaskCreate`, `TaskUpdate`, `TaskGet`, y `TaskList`. Establezca en `0` para obtener la herramienta legacy `TodoWrite` en su lugar. Vea [Lista de tareas](/docs/es/interactive-mode#task-list) |292| `CLAUDE_CODE_ENABLE_TASKS` | Selecciona qué herramientas de seguimiento de tareas proporciona Claude Code en [sesiones que las tienen](/docs/es/tools-reference#task-tool-availability). De forma predeterminada, Claude Code proporciona las herramientas Task `TaskCreate`, `TaskUpdate`, `TaskGet`, y `TaskList`. Establezca en `0` para obtener la herramienta `TodoWrite` heredada en su lugar. Consulte [Lista de tareas](/docs/es/interactive-mode#task-list) |

290| `CLAUDE_CODE_ENABLE_TELEMETRY` | Establezca en `1` para habilitar la recopilación de datos OpenTelemetry para métricas y registro. Requerido antes de configurar exportadores OTel. Vea [Monitoreo](/docs/es/monitoring-usage) |293| `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 OTel. Establézcalo en su shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulte [Monitoreo](/docs/es/monitoring-usage) |

291| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establezca en `1` para obtener las herramientas de seguimiento de tareas en cada modelo. Sin él, Claude Code las proporciona de forma predeterminada solo en los modelos enumerados en [Disponibilidad de herramienta Task](/docs/es/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` aún selecciona las herramientas Task o `TodoWrite`. Requiere Claude Code v2.1.233 o posterior |294| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Establezca en `1` para obtener las herramientas de seguimiento de tareas en cada modelo. Sin él, Claude Code las proporciona de forma predeterminada solo en los modelos enumerados en [Disponibilidad de herramienta Task](/docs/es/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` aún selecciona las herramientas Task o `TodoWrite`. Requiere Claude Code v2.1.233 o posterior |

292| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos para esperar después de que el bucle de consulta se vuelva inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan modo SDK |295| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Tiempo en milisegundos para esperar después de que el bucle de consulta se vuelva inactivo antes de salir automáticamente. Útil para flujos de trabajo automatizados y scripts que usan modo SDK |

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

294| `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. Un valor exportado en su shell también se aplica a las [sesiones de fondo](/docs/es/agent-view) que distribuye con `claude agents` o `--bg`. Antes de v2.1.206, las sesiones de fondo ignoraban un valor exportado por shell y usaban cualquier copia que el proceso supervisor de fondo heredara |297| `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. Un valor exportado en su shell también se aplica a las [sesiones de fondo](/docs/es/agent-view) que distribuye con `claude agents` o `--bg`. Antes de v2.1.206, las sesiones de fondo ignoraban un valor exportado por shell y usaban cualquier copia que el proceso supervisor de fondo heredara |

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

296| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establezca en `1` para forzar la persistencia de transcripción, historial de prompts, y registro de `claude agents` incluso cuando este `claude` se lanzó desde dentro de otra sesión de Claude Code. Use cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión `screen` o un lanzador de fondo iniciado primero por la herramienta Bash de Claude Code, causa que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de v2.1.178, Claude Code detecta el caso de tmux automáticamente e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se honra en v2.1.169 y anterior; no tiene efecto en v2.1.170 y v2.1.171, donde se eliminó la detección de sesión anidada que anula |299| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Establezca en `1` para forzar la persistencia de transcripción, historial de prompts, y registro de `claude agents` incluso cuando este `claude` se lanzó desde dentro de otra sesión de Claude Code. Use cuando un valor heredado de `CLAUDE_CODE_CHILD_SESSION`, por ejemplo de una sesión `screen` o un lanzador de fondo iniciado primero por la herramienta Bash de Claude Code, causa que una sesión genuina de nivel superior se clasifique erróneamente como anidada. A partir de v2.1.178, Claude Code detecta automáticamente el caso de tmux e ignora el marcador heredado, por lo que tmux ya no necesita esta variable. También se honra en v2.1.169 y anterior; no tiene efecto en v2.1.170 y v2.1.171, donde se eliminó la detección de sesión anidada que anula |

297| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establezca en `1` para forzar el renderizado de tachado para `~~text~~` en respuestas de Claude cuando su terminal lo admite pero no se auto-detecta, como sobre SSH sin `TERM_PROGRAM` reenviado. Sin esto, los terminales no detectados muestran los marcadores literales `~~` en lugar de renderizar el texto como tachado. Requiere Claude Code v2.1.186 o posterior |300| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Establezca en `1` para forzar el renderizado de tachado para `~~text~~` en las respuestas de Claude cuando su terminal lo admite pero no se detecta automáticamente, como sobre SSH sin `TERM_PROGRAM` reenviado. Sin esto, los terminales no detectados muestran los marcadores literales `~~` en lugar de renderizar el texto como tachado. Requiere Claude Code v2.1.186 o posterior |

298| `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 auto-detecta. Útil para emuladores como `eat` de Emacs que implementan BSU/ESU pero no responden a la sonda de capacidad. No tiene efecto bajo tmux. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a [renderizado de pantalla completa](/docs/es/fullscreen), esto no cambia el renderizador |301| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Establezca en `1` para forzar el 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. A diferencia de `CLAUDE_CODE_NO_FLICKER`, que cambia a [renderizado de pantalla completa](/docs/es/fullscreen), esto no cambia el renderizador |

299| `CLAUDE_CODE_FORK_SUBAGENT` | Controla [modo bifurcación](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite que Claude genere [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) a sí mismo y está activado de forma predeterminada solo en sesiones interactivas. Establezca en `1` para activarlo en `claude -p` y el Agent SDK también, o `0` para desactivarlo en cada tipo de sesión. Puede ejecutar `/subtask` independientemente de si el modo bifurcación está activado. El predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establezca la variable en `1` para activar el modo bifurcación |302| `CLAUDE_CODE_FORK_SUBAGENT` | Controla [modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off), que permite que Claude genere [subagentes bifurcados](/docs/es/sub-agents#fork-the-current-conversation) a sí mismo y está activado de forma predeterminada solo en sesiones interactivas. Establezca en `1` para activarlo en `claude -p` y el Agent SDK también, o `0` para desactivarlo en cada tipo de sesión. Puede ejecutar `/subtask` independientemente de si el modo fork está activado. El predeterminado interactivo requiere Claude Code v2.1.232 o posterior; en versiones anteriores, establezca la variable en `1` para activar el modo fork |

300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establezca en `1` para emitir bloques de texto y pensamiento de [subagente](/docs/es/sub-agents) en la salida `claude -p --output-format stream-json`, el mismo comportamiento que la bandera [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Use la variable cuando un arnés invoca `claude` y no puede pasar la bandera a sí mismo. A diferencia de la bandera, que sale con un error fuera del modo no interactivo con salida stream-json, la variable se ignora allí para que las invocaciones anidadas continúen funcionando cuando se establece en todo el proceso. Requiere Claude Code v2.1.211 o posterior |303| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Establezca en `1` para emitir bloques de texto y pensamiento de [subagente](/docs/es/sub-agents) en la salida `claude -p --output-format stream-json`, el mismo comportamiento que la [bandera `--forward-subagent-text`](/docs/es/cli-reference#cli-flags). Use la variable cuando un arnés invoca `claude` y no puede pasar la bandera a sí mismo. A diferencia de la bandera, que sale con un error fuera del modo no interactivo con salida stream-json, la variable se ignora allí para que las invocaciones anidadas sigan funcionando cuando se establece en todo el proceso. Requiere Claude Code v2.1.211 o posterior |

301| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establezca en `1` para enviar los [encabezados de sugerencia de puerta de enlace](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o un proveedor de terceros como Amazon Bedrock o Claude Platform on AWS. Establezca en `0` para dejar de enviarlos en cada conexión, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |304| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Establezca en `1` para enviar los [encabezados de sugerencia de puerta de enlace](/docs/es/llm-gateway-protocol#gateway-hint-headers), como `x-claude-code-request-class` y `x-claude-code-compaction`, en un proxy personalizado o un proveedor de terceros como Amazon Bedrock o Claude Platform on AWS. Establezca en `0` para dejar de enviarlos en cada conexión, incluida una conexión directa a la API de Anthropic, donde Claude Code los envía de forma predeterminada. Requiere Claude Code v2.1.273 o posterior |

302| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelo de puerta de enlace](/docs/es/llm-gateway-protocol#model-discovery) que `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` activa (predeterminado: `3000`). Aumente cuando su puerta de enlace necesita más de tres segundos para responder `/v1/models` al inicio. Solo acepta dígitos simples; `0`, valores negativos, y otros deletreos mantienen el predeterminado. Requiere Claude Code v2.1.269 o posterior |305| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Tiempo de espera en milisegundos para la solicitud de [descubrimiento de modelos de puerta de enlace](/docs/es/llm-gateway-protocol#model-discovery) que `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` activa (predeterminado: `3000`). Aumente cuando su puerta de enlace necesita más de tres segundos para responder `/v1/models` al inicio. Solo acepta dígitos simples; `0`, valores negativos, y otros deletreos mantienen el predeterminado. Requiere Claude Code v2.1.269 o posterior |

303| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Use cuando Git Bash está instalado pero no en su PATH. Si la ruta no existe o el archivo no se nombra `bash.exe`, `sh.exe`, `bash`, o `sh`, Claude Code ignora la variable y auto-detecta Git Bash como si no estuviera establecida, registrando una advertencia visible con `--debug`. Antes de v2.1.219, Claude Code salía al inicio cuando la ruta no existía, y usaba cualquier archivo existente como shell sin verificar que fuera bash o sh. Vea [Configuración de Windows](/docs/es/setup#set-up-on-windows) |306| `CLAUDE_CODE_GIT_BASH_PATH` | Solo Windows: ruta al ejecutable de Git Bash (`bash.exe`). Use cuando Git Bash está instalado pero no en su PATH. Si la ruta no existe o el archivo no se nombra `bash.exe`, `sh.exe`, `bash`, o `sh`, Claude Code ignora la variable y detecta automáticamente Git Bash como si no se estableciera, registrando una advertencia visible con `--debug`. Antes de v2.1.219, Claude Code salía al inicio cuando la ruta no existía, y usaba cualquier archivo existente como shell sin verificar que fuera bash o sh. Consulte [Configuración de Windows](/docs/es/setup#set-up-on-windows) |

304| `CLAUDE_CODE_GLOB_HIDDEN` | Establezca en `false` para excluir dotfiles de resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Incluido de forma predeterminada. No afecta autocompletado de archivo `@`, `ls`, Grep, o Read |307| `CLAUDE_CODE_GLOB_HIDDEN` | Establezca en `false` para excluir dotfiles de resultados cuando Claude invoca la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior). Se incluye de forma predeterminada. No afecta la autocompletación de archivos `@`, `ls`, Grep, o Read |

305| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establezca en `false` para hacer que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete patrones `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes incluidos los ignorados por git. No afecta autocompletado de archivo `@`, que tiene su propia configuración [`respectGitignore`](/docs/es/settings-reference#respectgitignore) |308| `CLAUDE_CODE_GLOB_NO_IGNORE` | Establezca en `false` para hacer que la [herramienta Glob](/docs/es/tools-reference#glob-tool-behavior) respete patrones `.gitignore`. De forma predeterminada, Glob devuelve todos los archivos coincidentes, incluidos los ignorados por git. No afecta la autocompletación de archivos `@`, que tiene su propia configuración [`respectGitignore`](/docs/es/settings-reference#respectgitignore) |

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

307| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Cuántos minutos el trabajo de fondo puede mantener un objetivo activo esperando antes de que Claude Code [le pida a Claude que lo verifique](/docs/es/goal#background-work-defers-evaluation). Predeterminado `30`. Establezca `0` para desactivar las verificaciones. Dé minutos completos en dígitos simples, como máximo `10080`, que es una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |310| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Cuántos minutos el trabajo de fondo puede mantener un objetivo activo esperando antes de que Claude Code [solicite a Claude que lo verifique](/docs/es/goal#background-work-defers-evaluation). Predeterminado `30`. Establezca `0` para desactivar las verificaciones. Dé minutos completos en dígitos simples, como máximo `10080`, que es una semana. Claude Code trata cualquier otro valor como no establecido y usa el predeterminado. Requiere Claude Code v2.1.234 o posterior |

308| `CLAUDE_CODE_HIDE_CWD` | Establezca en `1` para ocultar el directorio de trabajo en el logo de inicio. Útil para comparticiones de pantalla o grabaciones donde la ruta expone su nombre de usuario del SO |311| `CLAUDE_CODE_HIDE_CWD` | Establezca en `1` para ocultar el directorio de trabajo en el logo de inicio. Útil para comparticiones de pantalla o grabaciones donde la ruta expone su nombre de usuario del SO |

309| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Anule la dirección de host utilizada para conectarse a la extensión IDE. De forma predeterminada, Claude Code auto-detecta la dirección correcta, incluido el enrutamiento de WSL a Windows |312| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Anule la dirección de host utilizada para conectarse a la extensión IDE. De forma predeterminada, Claude Code detecta automáticamente la dirección correcta, incluido el enrutamiento de WSL a Windows |

310| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establezca en `1` para omitir la auto-instalación de extensiones IDE. Equivalente a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |313| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Establezca en `1` para omitir la auto-instalación de extensiones IDE. Equivalente a establecer [`autoInstallIdeExtension`](/docs/es/settings-reference#autoinstallideextension) en `false` |

311| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establezca en `1` para omitir la validación de entradas de archivo de bloqueo IDE durante la conexión. Use cuando la auto-conexión falla para encontrar su IDE a pesar de que se está ejecutando |314| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Establezca en `1` para omitir la validación de entradas de archivo de bloqueo IDE durante la conexión. Use cuando la auto-conexión no encuentra su IDE a pesar de que se está ejecutando |

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

313| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Anule el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. A partir de v2.1.193, cómo se aplica depende de cómo Claude Code resuelve el ID del modelo; vea [Corregir la ventana para un ID de modelo de puerta de enlace o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use esto cuando enrute a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |316| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Anule el tamaño de la ventana de contexto que Claude Code asume para el modelo activo. A partir de v2.1.193, cómo se aplica depende de cómo Claude Code resuelve el ID del modelo; consulte [Corregir la ventana para un ID de modelo de puerta de enlace o personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Use esto cuando enrute a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |

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

315| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establezca el número máximo de tokens de salida para la mayoría de solicitudes. Los valores predeterminados y límites varían por modelo; vea [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code tiene un valor predeterminado de 32000 para IDs de modelo que no reconoce, como nombres específicos de puerta de enlace, y reduce valores por encima del límite de un modelo al límite. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active [auto-compactación](/docs/es/costs#reduce-token-usage) |318| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establezca el número máximo de tokens de salida para la mayoría de solicitudes. Los valores predeterminados y límites varían según el modelo; consulte [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code usa un predeterminado de 32000 para IDs de modelo que no reconoce, como nombres específicos de puerta de enlace, y reduce valores por encima del límite de un modelo al límite. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [auto-compactación](/docs/es/costs#reduce-token-usage) |

316| `CLAUDE_CODE_MAX_RETRIES` | Anule el número de veces para reintentar solicitudes de API fallidas (predeterminado: 10). Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |319| `CLAUDE_CODE_MAX_RETRIES` | Anule el número de veces para reintentar solicitudes de API fallidas (predeterminado: 10). Limitado a 15 a partir de v2.1.186; a partir de v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar a través de interrupciones más largas, establezca `CLAUDE_CODE_RETRY_WATCHDOG` en su lugar |

317| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminado en v2.1.224 y ahora es un no-op. Anteriormente limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite falló con `Subagent spawn limit reached`. El [límite de subagente concurrente](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) aún se aplican |320| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminado en v2.1.224 y ahora es un no-op. Anteriormente limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagente concurrente](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) aún se aplican |

318| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagente](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas debajo de la conversación principal (predeterminado: 3). En el predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establezca `1` para desactivar el anidamiento. En v2.1.217 a través de v2.1.218, el predeterminado era 1, por lo que un subagente no podía generar el suyo a menos que aumentara el límite; v2.1.219 aumentó el predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otra cosa se ignora, por lo que el límite puede ajustarse pero no eliminarse. Requiere Claude Code v2.1.217 o posterior |321| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Número de [capas de subagente](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) permitidas debajo de la conversación principal (predeterminado: 3). En el predeterminado, los subagentes pueden generar sus propios subagentes, y un subagente en la tercera capa no puede generar más; establezca `1` para desactivar el anidamiento. En v2.1.217 a través de v2.1.218, el predeterminado era 1, por lo que un subagente no podía generar el suyo a menos que aumentara el límite; v2.1.219 aumentó el predeterminado a 3. Acepta un número entero positivo en dígitos simples; cualquier otra cosa se ignora, por lo que el límite puede ajustarse pero no eliminarse. Requiere Claude Code v2.1.217 o posterior |

319| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |322| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Número máximo de herramientas de solo lectura y subagentes que pueden ejecutarse en paralelo (predeterminado: 10). Los valores más altos aumentan el paralelismo pero consumen más recursos |

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

321| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite en el número total de llamadas [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) que una sesión puede hacer (predeterminado: 200). Cuando Claude alcanza el límite, las llamadas WebSearch adicionales devuelven un aviso diciéndole que continúe con la información que ya ha reunido. Acepta un número entero positivo sin límite superior. Cualquier otra cosa se ignora y se aplica el predeterminado, por lo que el límite puede aumentarse pero no desactivarse. Requiere Claude Code v2.1.212 o posterior |324| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Límite en el número total de llamadas [WebSearch](/docs/es/tools-reference#websearch-tool-behavior) que una sesión puede hacer (predeterminado: 200). Cuando Claude alcanza el límite, las llamadas WebSearch adicionales devuelven un aviso diciéndole que continúe con la información que ya ha reunido. Acepta un número entero positivo sin límite superior. Cualquier otra cosa se ignora y se aplica el predeterminado, por lo que el límite puede aumentarse pero no desactivarse. Requiere Claude Code v2.1.212 o posterior |

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

323| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada de herramienta MCP aún en ejecución [se mueva a una tarea de fondo](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establezca en `0` para desactivar el envío automático a segundo plano. Requiere Claude Code v2.1.212 o posterior |326| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Tiempo transcurrido en milisegundos antes de que una llamada de herramienta MCP aún en ejecución [se mueva a una tarea de fondo](/docs/es/mcp#automatic-backgrounding-of-long-tool-calls) (predeterminado: 120000, o 2 minutos). Establezca en `0` para desactivar la puesta en segundo plano automática. Requiere Claude Code v2.1.212 o posterior |

324| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos el primer turno de una sesión [no interactiva](/docs/es/headless) espera a que los servidores MCP que aún se están conectando, en lugar de la [espera de primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando se establece, la espera cubre cada servidor pendiente. Establezca en `0` para omitir la espera. Un servidor [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera `MCP_TIMEOUT` independientemente del valor. Requiere Claude Code v2.1.274 o posterior |327| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Cuánto tiempo en milisegundos el primer turno de una sesión [no interactiva](/docs/es/headless) espera a que los servidores MCP que aún se están conectando, en lugar de la [espera de primer turno](/docs/es/agent-sdk/mcp#connection-timing) predeterminada. Cuando se establece, la espera cubre cada servidor pendiente. Establezca en `0` para omitir la espera. Un servidor [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) mantiene su propia espera `MCP_TIMEOUT` independientemente del valor. Requiere Claude Code v2.1.274 o posterior |

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

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

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

328| `CLAUDE_CODE_NATIVE_CURSOR` | Establezca en `1` para mostrar el cursor propio de la terminal en el cursor de entrada en lugar de un bloque dibujado. El cursor respeta el parpadeo, forma y configuración de enfoque de la terminal |331| `CLAUDE_CODE_NATIVE_CURSOR` | Establezca en `1` para mostrar el cursor propio de la terminal en el símbolo de intercalación de entrada en lugar de un bloque dibujado. El cursor respeta la configuración de parpadeo, forma y enfoque de la terminal |

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

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

331| `CLAUDE_CODE_NO_FLICKER` | Establezca en `1` para habilitar [renderizado de pantalla completa](/docs/es/fullscreen), una vista previa de investigación que reduce el parpadeo y mantiene la memoria plana en conversaciones largas. Anula la configuración [`tui`](/docs/es/settings-reference#tui); también puede cambiar con `/tui fullscreen` |334| `CLAUDE_CODE_NO_FLICKER` | Establezca en `1` para habilitar [renderizado de pantalla completa](/docs/es/fullscreen), una vista previa de investigación que reduce el parpadeo y mantiene la memoria plana en conversaciones largas. Anula la configuración [`tui`](/docs/es/settings-reference#tui); también puede cambiar con `/tui fullscreen` |

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

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

334| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso OAuth para autenticación de claude.ai. Alternativa a `/login` para SDK y entornos automatizados. Tiene precedencia sobre credenciales almacenadas en llavero. Genere uno con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token). A menos que ejecute [`/login`](/docs/es/authentication#authentication-precedence), Claude Code usa el token que establece para toda la sesión. Para reemplazar un token expirado, genere uno nuevo y reinicie |337| `CLAUDE_CODE_OAUTH_TOKEN` | Token de acceso de OAuth para autenticación de claude.ai. Alternativa a `/login` para SDK y entornos automatizados. Tiene precedencia sobre credenciales almacenadas en llavero. Genere uno con [`claude setup-token`](/docs/es/authentication#generate-a-long-lived-token). A menos que ejecute [`/login`](/docs/es/authentication#authentication-precedence), Claude Code usa el token que establece para toda la sesión. Para reemplazar un token expirado, genere uno nuevo y reinicie |

335| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Eliminado en v2.1.160 y ahora es un no-op. Anteriormente fijaba [modo rápido](/docs/es/fast-mode) a Claude Opus 4.6 en lugar del predeterminado actual. Opus 4.6 ya no admite modo rápido |338| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Eliminado en v2.1.160 y ahora es un no-op. Anteriormente fijaba [modo rápido](/docs/es/fast-mode) a Claude Opus 4.6 en lugar del predeterminado actual. Opus 4.6 ya no admite modo rápido |

336| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longitud máxima de atributos OpenTelemetry que llevan contenido (respuestas del modelo, contenido de herramientas, prompts del sistema, cuerpos de API sin procesar), marcador de truncamiento incluido, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). Aumente solo si su backend de telemetría acepta valores de atributo mayores que 64 KB, o reduzca para cortar volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Vea [Monitoreo](/docs/es/monitoring-usage) |339| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Longitud máxima de atributos de OpenTelemetry que llevan contenido (respuestas del modelo, contenido de herramientas, prompts del sistema, cuerpos de API sin procesar), marcador de truncamiento incluido, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). Aumente solo si su backend de telemetría acepta valores de atributo más grandes que 64 KB, o redúzcalo para reducir el volumen de telemetría. Requiere Claude Code v2.1.214 o posterior. Consulte [Monitoreo](/docs/es/monitoring-usage) |

337| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Establezca en `1` para escribir errores de diagnóstico del exportador OpenTelemetry en stderr. De forma predeterminada, estos errores solo aparecen con `--debug`, por lo que un exportador mal configurado como una colisión de puerto Prometheus de otra manera falla silenciosamente. Requiere Claude Code v2.1.179 o posterior. Vea [Monitoreo](/docs/es/monitoring-usage) |340| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Establezca en `1` para escribir errores de diagnóstico del exportador de OpenTelemetry a stderr. De forma predeterminada, estos errores solo aparecen con `--debug`, por lo que un exportador mal configurado como una colisión de puerto de Prometheus falla silenciosamente de otra manera. Requiere Claude Code v2.1.179 o posterior. Consulte [Monitoreo](/docs/es/monitoring-usage) |

338| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar tramos OpenTelemetry pendientes (predeterminado: 5000). Vea [Monitoreo](/docs/es/monitoring-usage) |341| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Tiempo de espera en milisegundos para vaciar tramos de OpenTelemetry pendientes (predeterminado: 5000). Consulte [Monitoreo](/docs/es/monitoring-usage) |

339| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Intervalo para actualizar encabezados OpenTelemetry dinámicos en milisegundos (predeterminado: 1740000 / 29 minutos). Vea [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) |342| `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](/docs/es/monitoring-usage#dynamic-headers) |

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

341| `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 el fondo 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. Vea [Auto-actualizaciones](/docs/es/setup#auto-updates) |344| `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 hay una nueva versión disponible. Se aplica a instalaciones de Homebrew y WinGet. Otros gestores de paquetes continúan mostrando el comando de actualización sin ejecutarlo. Consulte [Auto-actualizaciones](/docs/es/setup#auto-updates) |

342| `CLAUDE_CODE_PERFORCE_MODE` | Establezca en `1` para habilitar 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 evite el seguimiento de cambios de Perforce |345| `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 evite el seguimiento de cambios de Perforce |

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

344| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins para cargar para la sesión, cada uno cargado de la manera que una bandera [`--plugin-dir`](/docs/es/plugins#test-your-plugins-locally) lo carga. Separe múltiples rutas con `:` en Unix o `;` en Windows. Dé cada ruta como una ruta absoluta o comience con `~`, porque Claude Code omite rutas relativas. Requiere Claude Code v2.1.280 o posterior |347| `CLAUDE_CODE_PLUGIN_DIRS` | Directorios de plugins para cargar para la sesión, cada uno cargado de la manera que una [bandera `--plugin-dir`](/docs/es/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) lo carga. Separe múltiples rutas con `:` en Unix o `;` en Windows. Dé cada ruta como una ruta absoluta o comience con `~`, porque Claude Code omite rutas relativas. Requiere Claude Code v2.1.280 o posterior. Consulte [Cargar un plugin para una sesión](/docs/es/plugins/create#load-a-directory-or-archive-for-one-session) |

345| `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. Vea [Las operaciones de Git agotan el tiempo de espera](/docs/es/plugin-marketplaces#git-operations-time-out) |348| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para clonar o actualizar un mercado de plugins (predeterminado: 120000). Aumente este valor para repositorios grandes o conexiones de red lentas. Consulte [Git clone agotó el tiempo de espera](/docs/es/plugins/troubleshooting#git-clone-timed-out-after-120s) |

346| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establezca en `1` para omitir el intento de re-clonación y mantener el uso del caché de mercado existente cuando un `git pull` falla. Útil en entornos sin conexión o aislados donde la re-clonación fallaría de la misma manera. Vea [Las actualizaciones del mercado fallan en entornos sin conexión](/docs/es/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |349| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Establezca en `1` para omitir el intento de re-clonación y mantener el uso del checkout de mercado existente cuando una actualización de mercado no puede alcanzar o autenticarse en el remoto. Útil en entornos sin conexión o aislados donde la re-clonación fallaría de la misma manera. Consulte [Las actualizaciones del mercado siguen fallando sin conexión](/docs/es/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

347| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establezca en `1` para clonar fuentes de abreviatura de GitHub `owner/repo` sobre HTTPS en lugar de SSH. Se aplica a instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Útil en ejecutores de CI, contenedores, o cualquier entorno sin una clave SSH configurada para `github.com` |350| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Establezca en `1` para clonar fuentes de acceso directo de GitHub `owner/repo` sobre HTTPS en lugar de SSH. Se aplica a la instalación y actualización de plugins, y a `/plugin marketplace add` y `update`. Útil en ejecutores de CI, contenedores, o cualquier entorno sin una clave SSH configurada para `github.com` |

348| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios de semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Use esto para agrupar un directorio de plugins pre-poblado en una imagen de contenedor. Claude Code registra mercados de estos directorios al inicio y usa plugins pre-almacenados en caché sin re-clonar. Vea [Pre-poblar plugins para contenedores](/docs/es/plugin-marketplaces#pre-populate-plugins-for-containers) |351| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Ruta a uno o más directorios de semilla de plugins de solo lectura, separados por `:` en Unix o `;` en Windows. Use esto para agrupar un directorio de plugins pre-poblado en una imagen de contenedor. Claude Code registra mercados desde estos directorios al inicio y usa plugins pre-almacenados en caché sin re-clonar. Consulte [Pre-rellenar plugins para contenedores](/docs/es/plugins/org#seed-containers-and-ci) |

349| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establezca en `1` para evitar que Claude Code pase `-ExecutionPolicy Bypass` al generar PowerShell para llamadas de herramientas, hooks, y comandos de línea de estado, y respete la política de ejecución efectiva de la máquina en su lugar. De forma predeterminada, Claude Code evita la política de ejecución en el alcance del proceso para que los scripts `.ps1` e importaciones de módulos funcionen en instalaciones de Windows con Restricted predeterminado. El bypass de alcance de proceso nunca anula la política de grupo `MachinePolicy` o `UserPolicy` independientemente de esta configuración |352| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Establezca en `1` para evitar que Claude Code pase `-ExecutionPolicy Bypass` cuando genera PowerShell para llamadas de herramientas, hooks, y comandos de línea de estado, y respete la política de ejecución efectiva de la máquina en su lugar. De forma predeterminada, Claude Code evita la política de ejecución en el alcance del proceso para que los scripts `.ps1` e importaciones de módulos funcionen en instalaciones de Windows predeterminadas restringidas. El bypass de alcance de proceso nunca anula la `MachinePolicy` o `UserPolicy` de Group Policy independientemente de esta configuración |

350| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Techo en milisegundos en la espera inactiva para subagentes de fondo y flujos de trabajo después del turno final en [modo no interactivo](/docs/es/headless#background-tasks-at-exit) con la bandera `-p`. La espera inactiva comienza de nuevo cada vez que Claude toma un turno para manejar un resultado de fondo. Predeterminado: `600000`, o 10 minutos. Cuando la espera inactiva alcanza el techo, Claude Code deja de esperar las tareas de fondo restantes y sale. Establezca en `0` para esperar indefinidamente. Este límite es separado del período de gracia de cinco segundos que se aplica a shells de fondo simples. Requiere Claude Code v2.1.182 o posterior |353| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Techo en milisegundos en la espera inactiva de subagentes de fondo y flujos de trabajo después del turno final en [modo no interactivo](/docs/es/headless#background-tasks-at-exit) con la bandera `-p`. La espera inactiva comienza de nuevo cada vez que Claude toma un turno para manejar un resultado de fondo. Predeterminado: `600000`, o 10 minutos. Cuando la espera inactiva alcanza el techo, Claude Code deja de esperar a las tareas de fondo restantes y sale. Establezca en `0` para esperar indefinidamente. Este límite es separado del período de gracia de cinco segundos que se aplica a shells de fondo simples. Requiere Claude Code v2.1.182 o posterior |

351| `CLAUDE_CODE_PROCESS_WRAPPER` | Lance los procesos que Claude Code inicia desde su propio binario, como el servicio de fondo que aloja sesiones de [vista de agente](/docs/es/agent-view), a través de un lanzador corporativo dado como un prefijo argv como `/opt/corp/launcher`. Establézcalo en el bloque `env` de configuración de usuario o [administrada](/docs/es/managed-settings), no como una exportación de shell, para que el servicio de fondo desconectado lo herede; la configuración de proyecto y local no puede establecerlo. Equivalente a la configuración [`processWrapper`](/docs/es/settings-reference#processwrapper), que requiere Claude Code v2.1.210 o posterior; esta variable tiene precedencia cuando ambas se establecen. La extensión VS Code configura su propio lanzador por separado a través de su configuración `claudeProcessWrapper`. Se ignora en Windows. Vea [Ejecutar Claude Code detrás de un lanzador corporativo](/docs/es/corporate-launcher) para el formato de valor, qué cubre el lanzador, y el contrato que el lanzador debe satisfacer. Requiere Claude Code v2.1.208 o posterior |354| `CLAUDE_CODE_PROCESS_WRAPPER` | Lance los procesos que Claude Code inicia desde su propio binario, como el servicio de fondo que aloja sesiones de [vista de agente](/docs/es/agent-view), a través de un lanzador corporativo dado como un prefijo argv como `/opt/corp/launcher`. Establézcalo en el bloque `env` de configuración de usuario o [administrada](/docs/es/managed-settings), no como una exportación de shell, para que el servicio de fondo desconectado lo herede; la configuración de proyecto y local no puede establecerlo. Equivalente a la configuración [`processWrapper`](/docs/es/settings-reference#processwrapper), que requiere Claude Code v2.1.210 o posterior; esta variable tiene precedencia cuando ambas se establecen. La extensión VS Code configura su propio lanzador por separado a través de su configuración `claudeProcessWrapper`. Se ignora en Windows. Consulte [Ejecutar Claude Code detrás de un lanzador corporativo](/docs/es/corporate-launcher) para el formato de valor, qué cubre el lanzador, y el contrato que el lanzador debe satisfacer. Requiere Claude Code v2.1.208 o posterior |

352| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establezca junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio `projects/` donde Claude Code almacena las transcripciones y memoria automática de esa sesión, en lugar de uno derivado de la ruta del directorio de trabajo. Por ejemplo, iniciar Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` las almacena bajo `/srv/tenant-a/projects/work/`. Claude Code ignora esta variable cuando `CLAUDE_CONFIG_DIR` no se establece, y la lee solo del entorno desde el que inicia `claude`, nunca desde un bloque `env` de [archivo de configuración](#in-settings-files). Vea [Nombre el directorio del proyecto usted mismo](/docs/es/sessions#name-the-project-directory-yourself). Requiere Claude Code v2.1.234 o posterior |355| `CLAUDE_CODE_PROJECT_DIR_NAME` | Establezca junto con `CLAUDE_CONFIG_DIR` para elegir el nombre del directorio `projects/` donde Claude Code almacena las transcripciones y memoria automática de esa sesión, en lugar de uno derivado de la ruta del directorio de trabajo. Por ejemplo, iniciar Claude Code con `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` almacena bajo `/srv/tenant-a/projects/work/`. Claude Code ignora esta variable cuando `CLAUDE_CONFIG_DIR` no se establece, y la lee solo desde el entorno desde el que inicia `claude`, nunca desde un bloque `env` de archivo de configuración. Consulte [Nombrar el directorio del proyecto usted mismo](/docs/es/sessions#name-the-project-directory-yourself). Requiere Claude Code v2.1.234 o posterior |

353| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Establezca `5m` o `1h`, los únicos valores que Claude Code acepta, para elegir el [TTL de caché de prompt](/docs/es/prompt-caching#cache-lifetime) para la conversación principal: sus turnos interactivos, `-p`, y SDK, más los ayudantes que se ejecutan en línea con ellos. Tiene precedencia sobre la configuración `promptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la anula. Las escrituras de caché de 1 hora se facturan a una tasa más alta. Requiere Claude Code v2.1.242 o posterior |356| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Establezca `5m` o `1h`, los únicos valores que Claude Code acepta, para elegir el [TTL de caché de prompt](/docs/es/prompt-caching#cache-lifetime) para la conversación principal: sus turnos interactivos, `-p`, y SDK, más los ayudantes que se ejecutan en línea con ellos. Tiene precedencia sobre la configuración `promptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la anula. La API factura escrituras de caché de 1 hora a una tasa más alta. Requiere Claude Code v2.1.242 o posterior |

354| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Establezca en `1` para propagar contexto de rastreo W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación cubre el encabezado `traceparent` en solicitudes de modelo y MCP HTTP y la variable de entorno `TRACEPARENT` para subprocesos Bash, PowerShell, y hook. De forma predeterminada, la propagación está habilitada solo cuando se conecta directamente a la API de Anthropic. Agregado en v2.1.152. Vea [Rastreos (beta)](/docs/es/monitoring-usage#traces-beta) |357| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Establezca en `1` para propagar el contexto de rastreo W3C cuando `ANTHROPIC_BASE_URL` apunta a un proxy personalizado. La propagación cubre el encabezado `traceparent` en solicitudes de modelo y MCP HTTP y la variable de entorno `TRACEPARENT` para subprocesos Bash, PowerShell, y hook. De forma predeterminada, la propagación se habilita solo cuando se conecta directamente a la API de Anthropic. Agregado en v2.1.152. Consulte [Rastreos (beta)](/docs/es/monitoring-usage#traces-beta) |

355| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Se establece por plataformas host que incrustan Claude Code y administran el enrutamiento del proveedor de modelo en su nombre. Cuando se establece, Claude Code ignora variables de selección de proveedor, punto de conexión, y autenticación como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, y `ANTHROPIC_API_KEY` en archivos de configuración, por lo que la configuración de usuario no puede anular el enrutamiento del host. Claude Code también ignora claves de selección de modelo como `model`, `fallbackModel`, y `modelOverrides` en [configuración administrada](/docs/es/managed-settings), cualquiera que sea la fuente administrada que las entregue, por lo que la configuración de modelo del host tiene precedencia sobre un pin de modelo administrado desactualizado. Claude Code también ignora variables de selección de modelo como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL` en un bloque `env` administrado; una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) en configuración administrada aún se aplica a menos que el host suministre la suya. Claude Code también omite la exclusión de telemetría automática que de otra manera aplica en proveedores de terceros como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, y Microsoft Foundry, por lo que la telemetría sigue el opt-out estándar `DISABLE_TELEMETRY`. Vea [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |358| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Se establece por plataformas host que incrustan Claude Code y administran el enrutamiento del proveedor de modelo en su nombre. Cuando se establece, Claude Code ignora variables de selección de proveedor, punto de conexión y autenticación como `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, y `ANTHROPIC_API_KEY` en archivos de configuración, para que la configuración de usuario no pueda anular el enrutamiento del host. Claude Code también ignora claves de selección de modelo como `model`, `fallbackModel`, y `modelOverrides` en [configuración administrada](/docs/es/managed-settings), cualquiera que sea la fuente administrada que las entregue, para que la configuración de modelo del host tenga precedencia sobre un pin de modelo administrado desactualizado. Claude Code también ignora variables de selección de modelo como `ANTHROPIC_MODEL` y la familia `ANTHROPIC_DEFAULT_*_MODEL` en un bloque `env` administrado; una lista de permitidos [`availableModels`](/docs/es/settings-reference#availablemodels) en configuración administrada aún se aplica a menos que el host suministre la suya. Claude Code también omite la opción de exclusión de telemetría automática que de otra manera aplica en proveedores de terceros como Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, y Microsoft Foundry, para que la telemetría siga la opción de exclusión estándar `DISABLE_TELEMETRY`. Consulte [Comportamientos predeterminados por proveedor de API](/docs/es/data-usage#default-behaviors-by-api-provider) |

356| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establezca en `1` para permitir que el proxy realice la resolución de DNS en lugar de la persona que llama. Opt-in para entornos donde el proxy debe manejar la resolución de nombres de host |359| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Establezca en `1` para permitir que el proxy realice la resolución de DNS en lugar de la persona que llama. Opción de participación para entornos donde el proxy debe manejar la resolución de nombres de host |

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

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

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

360| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establezca en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de turno. Se usa en modo SDK para que el modelo continúe sin requerir que el SDK reenvíe el prompt. Para desactivar esto, desestablezca la variable o establézcala en `0`. Antes de v2.1.221, Claude Code ignoraba `0` y otros valores falsos, por lo que establecer `0` aún activaba la reanudación en modo no interactivo y desestablecerla era la única forma de desactivarla |363| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Establezca en `1` para reanudar automáticamente si la sesión anterior terminó a mitad de turno. Se usa en modo SDK para que el modelo continúe sin requerir que el SDK reenvíe el prompt. Para desactivar esto, desestablezca la variable o establézcala en `0`. Antes de v2.1.221, Claude Code ignoraba `0` y otros valores falsos, por lo que establecer `0` aún desencadenaba la reanudación en modo no interactivo y desestablecerla era la única forma de desactivarla |

361| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Edad máxima en milisegundos del último mensaje de transcripción para una sesión que terminó a mitad de turno para continuar automáticamente al reanudar. Cuando el último mensaje es más antiguo que este límite, Claude Code omite tanto la reanudación automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` como el mensaje de continuación inyectado de `CLAUDE_CODE_RESUME_PROMPT`, y la sesión comienza inactiva para que continúe explícitamente. Sin establecer o `0` significa sin límite, excepto que un turno cuya última solicitud falló con un error de API se reanuda solo mientras ese error tiene menos de seis horas. Un valor positivo limita cada turno, incluidos esos; un valor negativo o no numérico aplica un límite de una hora. Los scripts de generación para agentes de larga duración pueden establecer esto para que un reinicio contra una transcripción antigua no re-ejecute un prompt obsoleto. Claude Code establece un límite de una hora a sí mismo cuando reinicia una sesión de [vista de agente](/docs/es/agent-view) que heredó su conversación de una sesión interactiva. Requiere Claude Code v2.1.211 o posterior |364| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Edad máxima en milisegundos del último mensaje de transcripción para una sesión que terminó a mitad de turno para continuar automáticamente al reanudar. Cuando el último mensaje es más antiguo que este límite, Claude Code omite la reanudación automática de `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` y su mensaje de continuación `CLAUDE_CODE_RESUME_PROMPT`, y la sesión comienza inactiva para que continúe explícitamente. Sin establecer o `0` significa sin límite, excepto que un turno cuya última solicitud falló con un error de API se reanuda solo mientras ese error tiene menos de seis horas. Un valor positivo limita cada turno, incluidos aquellos; un valor negativo o no numérico aplica un límite de una hora. Los scripts de generación para agentes de larga duración pueden establecer esto para que un reinicio contra una transcripción antigua no re-ejecute un prompt obsoleto. Claude Code establece un límite de una hora a sí mismo cuando reinicia una sesión de [vista de agente](/docs/es/agent-view) que se bloqueó que heredó su conversación de una sesión interactiva. Requiere Claude Code v2.1.211 o posterior |

362| `CLAUDE_CODE_RESUME_PROMPT` | Anule el mensaje de continuación inyectado cuando se reanuda una sesión que terminó a mitad de turno. El valor predeterminado es `Continue from where you left off.`. Los scripts de generación para agentes de larga duración pueden establecer esto en un mensaje de arranque más directivo. Una cadena vacía usa el predeterminado |365| `CLAUDE_CODE_RESUME_PROMPT` | Anule el mensaje de continuación que Claude Code envía a Claude cuando `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` continúa un turno interrumpido en lugar de reenviar su prompt, o cuando reanuda una [llamada de herramienta diferida](/docs/es/hooks#defer-a-tool-call-for-later) con `-p`. El valor predeterminado es `Continue from where you left off.`. Una cadena vacía usa el predeterminado |

363| `CLAUDE_CODE_RETRY_WATCHDOG` | Establezca en `1` para sesiones desatendidas como arneses de evaluación, trabajos de CI, o trabajadores remotos. Reintentos `429` y `529` errores de capacidad indefinidamente en lugar de fallar después de intentos de `CLAUDE_CODE_MAX_RETRIES`. Claude Code falla de inmediato cuando una solicitud de velocidad estándar obtiene un `429` que informa un límite de gasto o créditos de uso agotados, incluso uno de un [límite de gasto de puerta de enlace](/docs/es/errors#spend-limit-reached) que se reinicia en un horario. Antes de v2.1.239, el perro guardián reintentaba estos indefinidamente. Para solicitudes de modo rápido, vea [Manejar límites de velocidad](/docs/es/fast-mode#handle-rate-limits). El perro guardián se retira hasta 5 minutos entre intentos, o hasta que se reinicie el límite cuando la respuesta lleva un tiempo de reinicio de límite de velocidad, por lo que una sesión que alcanza un límite de uso espera la ventana restante. En v2.1.199 o posterior también aumenta el conteo de reintento predeterminado para otros errores transitorios, como errores de servidor, tiempos de espera, y conexiones caídas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si establece esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |366| `CLAUDE_CODE_RETRY_WATCHDOG` | Establezca en `1` para sesiones desatendidas como arneses de evaluación, trabajos de CI, o trabajadores remotos. Reintenta errores de capacidad `429` y `529` indefinidamente en lugar de fallar después de intentos de `CLAUDE_CODE_MAX_RETRIES`. Claude Code falla de inmediato cuando una solicitud de velocidad estándar obtiene un `429` que informa un límite de gasto o créditos de uso agotados, incluso uno de un [límite de gasto de puerta de enlace](/docs/es/errors#spend-limit-reached) que se reinicia en un horario. Antes de v2.1.239, el perro guardián reintentaba estos indefinidamente. Para solicitudes de modo rápido, consulte [Manejar límites de velocidad](/docs/es/fast-mode#handle-rate-limits). El perro guardián se retira hasta 5 minutos entre intentos, o hasta que se reinicia el límite cuando la respuesta lleva un tiempo de reinicio de límite de velocidad, por lo que una sesión que alcanza un límite de uso espera la ventana restante. En v2.1.199 o posterior, también aumenta el conteo de reintento predeterminado para otros errores transitorios, como errores de servidor, tiempos de espera, y conexiones caídas, a 300, aproximadamente tres horas de retroceso, y elimina el límite de 15 en `CLAUDE_CODE_MAX_RETRIES` si establece esa variable explícitamente. Requiere Claude Code v2.1.186 o posterior |

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

365| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` se establece. 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 es basada en subcadenas para que trucos de expansión de shell como `./scripts/deploy.sh $(evil)` aún cuenten contra el límite. El fan-out en tiempo de ejecución a través de `xargs` o `find -exec` no se detecta; esto es un control de defensa en profundidad |368| `CLAUDE_CODE_SCRIPT_CAPS` | Objeto JSON que limita cuántas veces se pueden invocar scripts específicos por sesión cuando `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` se establece. 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 para que trucos de expansión de shell como `./scripts/deploy.sh $(evil)` aún cuenten contra el límite. El fan-out en tiempo de ejecución a través de `xargs` o `find -exec` no se detecta; esto es un control de defensa en profundidad |

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

367| `CLAUDE_CODE_SEND_FEEDBACK` | Establezca en `0` para desactivar [retroalimentación redactada por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) para una sesión. Establezca en `1` para activarla donde su cuenta ya tiene acceso; la variable no puede otorgar acceso a sí misma, y los otros interruptores que desactivan la retroalimentación, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` de la configuración [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), aún se aplican |370| `CLAUDE_CODE_SEND_FEEDBACK` | Establezca en `0` para desactivar [retroalimentación redactada por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) para una sesión. Establezca en `1` para activarla donde su cuenta ya tiene acceso; la variable no puede otorgar acceso a sí misma, y los otros interruptores que desactivan la retroalimentación, como `DISABLE_FEEDBACK_COMMAND` y el valor `off` de la configuración [`feedbackDrafts`](/docs/es/settings-reference#feedbackdrafts), aún se aplican |

368| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Anule el presupuesto de tiempo en milisegundos para hooks [SessionEnd](/docs/es/hooks#sessionend). El valor es también el tiempo de espera para cada hook que no establece su propio `timeout`. Se aplica a salida de sesión, `/clear`, y cambio de sesiones a través de `/resume` interactivo. De forma predeterminada, el presupuesto es 1.5 segundos, aumentado automáticamente al `timeout` por hook más alto configurado en archivos de configuración, hasta 60 segundos. Los tiempos de espera en hooks proporcionados por plugins no aumentan el presupuesto |371| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Anule el presupuesto de tiempo en milisegundos para hooks [SessionEnd](/docs/es/hooks#sessionend). El valor es también el tiempo de espera para cada hook que no establece su propio `timeout`. 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 1.5 segundos, aumentado automáticamente al `timeout` por hook más alto configurado en archivos de configuración, hasta 60 segundos. Los tiempos de espera en hooks proporcionados por plugins no aumentan el presupuesto |

369| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente al ID de sesión actual en subprocesos de herramienta Bash y PowerShell, subprocesos de [comando hook](/docs/es/hooks), y subprocesos de [servidor MCP](/docs/es/mcp) stdio. Para Bash, PowerShell, y hooks, esto coincide con el campo `session_id` en la entrada JSON del hook y se actualiza en `/clear`. Un subproceso de servidor MCP retiene el ID con el que fue generado. En `--resume <session-id>` recibe el ID reanudado, coincidiendo con hooks y Bash. En `--continue` o `--resume` sin un ID explícito puede recibir el ID de inicio inicial en su lugar. Use para correlacionar scripts y herramientas externas con la sesión de Claude Code que las lanzó |372| `CLAUDE_CODE_SESSION_ID` | Se establece automáticamente al ID de sesión actual en subprocesos de herramientas Bash y PowerShell, subprocesos de [comando hook](/docs/es/hooks), y subprocesos de [servidor MCP](/docs/es/mcp) stdio. Para Bash, PowerShell, y hooks, esto coincide con el campo `session_id` en la entrada JSON del hook y se actualiza en `/clear`. Un subproceso de servidor MCP retiene el ID con el que se generó. En `--resume <session-id>` recibe el ID reanudado, coincidiendo con hooks y Bash. En `--continue` o `--resume` sin un ID explícito puede recibir el ID de inicio inicial en su lugar. Use para correlacionar scripts y herramientas externas con la sesión de Claude Code que los lanzó |

370| `CLAUDE_CODE_SHELL` | Establezca el shell que Claude Code usa para ejecutar comandos de herramienta Bash. Acepta una ruta a un binario `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells como `fish` no son compatibles. Si el valor no es una ruta de trabajo `bash` o `zsh`, Claude Code lo ignora y vuelve a la auto-detección. La auto-detección usa su `$SHELL` cuando apunta a `bash` o `zsh`, de otra manera elige el primer `zsh` que funciona y luego `bash` encontrado en su `PATH` y ubicaciones de instalación estándar |373| `CLAUDE_CODE_SHELL` | Establezca el shell que Claude Code usa para ejecutar comandos de herramientas Bash. Acepta una ruta a un binario `bash` o `zsh`, por ejemplo `/opt/homebrew/bin/bash`. Otros shells como `fish` no son compatibles. Si el valor no es una ruta `bash` o `zsh` funcional, Claude Code la ignora y vuelve a la detección automática. La detección automática usa su `$SHELL` cuando apunta a `bash` o `zsh`, de lo contrario elige el primer `zsh` funcional y luego `bash` encontrado en su `PATH` y ubicaciones de instalación estándar |

371| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve comandos de shell que Claude Code genera: llamadas de herramienta Bash, comandos [hook](/docs/es/hooks), comandos [línea de estado](/docs/es/statusline), y comandos de inicio de [servidor MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y hooks de forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El contenedor recibe la línea de comando como un argumento de shell único entre comillas en `$1`, por lo que el contenedor debe re-evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para llamadas de herramienta Bash, `$1` contiene la invocación de shell completa que Claude Code ensambla, incluida la configuración del entorno, no solo el comando que Claude ejecutó |374| `CLAUDE_CODE_SHELL_PREFIX` | Prefijo de comando que envuelve comandos de shell que Claude Code genera: llamadas de herramientas Bash, comandos [hook](/docs/es/hooks), comandos [línea de estado](/docs/es/statusline), y comandos de inicio de [servidor MCP](/docs/es/mcp) stdio. Los hooks de PowerShell y hooks de forma exec se ejecutan sin el prefijo. Útil para registro o auditoría. Establecer una ruta de ejecutable simple como `/path/to/logger.sh` ejecuta cada comando como `/path/to/logger.sh '<command>'`. El contenedor recibe la línea de comando como un argumento de shell único entre comillas en `$1`, por lo que el contenedor debe re-evaluar `$1` con un shell, por ejemplo `exec bash -c "$1"`. Tratar `$1` como una ruta de ejecutable simple rompe servidores MCP stdio que pasan argumentos como `npx -y <package>`. Para llamadas de herramientas Bash, `$1` contiene la invocación de shell completa que Claude Code ensambla, incluida la configuración del entorno, no solo el comando que Claude ejecutó |

372| `CLAUDE_CODE_SIMPLE` | Establezca en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, lectura de archivo, y edición de archivo. Las herramientas MCP de `--mcp-config` aún están disponibles. Desabilita el auto-descubrimiento de hooks, skills, comandos personalizados, subagentes, plugins, servidores MCP, memoria automática, y CLAUDE.md. Las skills en un directorio que pasa con `--add-dir` aún se cargan. Los tokens OAuth y credenciales de llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o un `apiKeyHelper` en `--settings`. Equivalente a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |375| `CLAUDE_CODE_SIMPLE` | Establezca en `1` para ejecutar con un prompt del sistema mínimo y solo las herramientas Bash, lectura de archivo y edición de archivo. Las herramientas MCP de `--mcp-config` aún están disponibles. Desactiva el descubrimiento automático de hooks, skills, comandos personalizados, subagentes, plugins instalados, servidores MCP, memoria automática, y CLAUDE.md. Las skills en un directorio que pasa con `--add-dir` aún se cargan. Los tokens de OAuth y las credenciales de llavero no se leen, por lo que la autenticación de Anthropic debe provenir de `ANTHROPIC_API_KEY` o un `apiKeyHelper` en `--settings`. Equivalente a pasar [`--bare`](/docs/es/headless#start-faster-with-bare-mode) |

373| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Establezca en `1` para usar un prompt del sistema más corto y descripciones de herramientas abreviadas en cualquier modelo. Establezca en `0`, `false`, `no`, u `off` para optar por no participar incluso en modelos donde el experimento o la configuración del servidor de otra manera lo habilitaría. El conjunto completo de herramientas, descubrimiento de hooks, servidores MCP, y descubrimiento de CLAUDE.md permanecen habilitados |376| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Establezca en `1` para usar un prompt del sistema más corto y descripciones de herramientas abreviadas en cualquier modelo. Establezca en `0`, `false`, `no`, u `off` para optar por no participar incluso en modelos donde el experimento o la configuración del servidor lo habilitaría de otra manera. El conjunto completo de herramientas, hooks, servidores MCP, y descubrimiento de CLAUDE.md permanecen habilitados |

374| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omita la autenticación del lado del cliente para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), para puertas de enlace que firman solicitudes a sí mismas |377| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Omita la autenticación del lado del cliente para [Claude Platform on AWS](/docs/es/claude-platform-on-aws), para puertas de enlace que firman solicitudes a sí mismas |

375| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establezca en `1` para desactivar el caché en proceso de credenciales resueltas de la cadena de proveedores de credenciales predeterminada de AWS, por lo que Claude Code resuelve la cadena en cada solicitud de API. Con el caché desactivado, un perfil respaldado por SSO solicita credenciales de IAM Identity Center en cada solicitud. Vea [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |378| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Establezca en `1` para desactivar el caché en proceso de credenciales resueltas desde la cadena de proveedores de credenciales predeterminada de AWS, para que Claude Code resuelva la cadena en cada solicitud de API. Con el caché desactivado, un perfil respaldado por SSO solicita credenciales de IAM Identity Center en cada solicitud. Consulte [almacenamiento en caché de credenciales y tiempo de espera de resolución](/docs/es/amazon-bedrock#credential-caching-and-resolution-timeout). Requiere Claude Code v2.1.207 o posterior |

376| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omita la autenticación de AWS para Amazon Bedrock (por ejemplo, cuando Use una puerta de enlace LLM) |379| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Omita la autenticación de AWS para Amazon Bedrock (por ejemplo, cuando usa una puerta de enlace LLM) |

377| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establezca en `1` para tratar una comprobación de disponibilidad de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) fallida como disponible, para redes que bloquean la solicitud directa de la comprobación a `api.anthropic.com`. Claude Code aún honra una respuesta "deshabilitada por su organización" |380| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Establezca en `1` para tratar una verificación de disponibilidad de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) fallida como disponible, para redes que bloquean la solicitud directa de la verificación a `api.anthropic.com`. Claude Code aún honra una respuesta "desactivado por su organización" |

378| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establezca en `1` para omitir la comprobación de disponibilidad de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la comprobación en lugar de rechazarla. La API aún rechaza solicitudes de modo rápido cuando su organización tiene modo rápido deshabilitado |381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Establezca en `1` para omitir la verificación de disponibilidad de [modo rápido](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) del lado del cliente, para proxies que interceptan la solicitud de la verificación en lugar de rechazarla. La API aún rechaza solicitudes de modo rápido cuando su organización tiene modo rápido desactivado |

379| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omita la autenticación de Azure para Microsoft Foundry, para un proxy o puerta de enlace que inyecta su propio encabezado `Authorization`. Claude Code envía solicitudes sin una credencial de Azure y preserva el encabezado `Authorization` que suministra, por ejemplo a través de `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN` se establece. Antes de v2.1.203, esta variable dejó al cliente de Microsoft Foundry incapaz de enviar solicitudes a menos que también se estableciera una clave de API |382| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Omita la autenticación de Azure para Microsoft Foundry, para un proxy o puerta de enlace que inyecta su propio encabezado `Authorization`. Claude Code envía solicitudes sin una credencial de Azure y preserva el encabezado `Authorization` que suministra, por ejemplo a través de `ANTHROPIC_CUSTOM_HEADERS`. Se ignora cuando `ANTHROPIC_FOUNDRY_API_KEY` o `ANTHROPIC_FOUNDRY_AUTH_TOKEN` se establece. Antes de v2.1.203, esta variable dejó al cliente de Microsoft Foundry incapaz de enviar solicitudes a menos que también se estableciera una clave de API |

380| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omita la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, cuando Use una puerta de enlace LLM) |383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Omita la autenticación de AWS para Amazon Bedrock Mantle (por ejemplo, cuando usa una puerta de enlace LLM) |

381| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establezca en `1` para omitir escribir historial de prompts y transcripciones de sesión en disco. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue`, o historial de flecha hacia arriba. Útil para sesiones de script efímeras |384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Establezca en `1` para omitir escribir historial de prompts y transcripciones de sesión en disco. Las sesiones iniciadas con esta variable establecida no aparecen en `--resume`, `--continue`, o historial de flecha hacia arriba. Útil para sesiones de scripts efímeros |

382| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omita la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, cuando Use una puerta de enlace LLM) |385| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Omita la autenticación de Google para Google Cloud's Agent Platform (por ejemplo, cuando usa una puerta de enlace LLM) |

383| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establezca en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que nombre por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) para fallos de inicio que de otra manera terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Establezca en `1` para que una sesión iniciada con `--output-format stream-json` escriba un [mensaje de resultado que nombre por qué Claude Code se negó a iniciar](/docs/es/agent-sdk/typescript#startup_failure_reason) para fallos de inicio que de otra manera terminan solo con stderr. Requiere Claude Code v2.1.274 o posterior |

384| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de veces consecutivas que un hook [Stop](/docs/es/hooks#stop) o [SubagentStop](/docs/es/hooks#subagentstop) puede bloquear el final del turno antes de que Claude Code lo anule y termine el turno de todas formas (predeterminado: 8). Establezca en `0` para desabilitar el límite. Aumente esto si su hook legítimamente necesita más iteraciones para resolver |387| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Número máximo de veces consecutivas que un hook [Stop](/docs/es/hooks#stop) o [SubagentStop](/docs/es/hooks#subagentstop) puede bloquear el final del turno antes de que Claude Code lo anule y termine el turno de todas formas (predeterminado: 8). Establezca en `0` para desactivar el límite. Aumente esto si su hook legítimamente necesita más iteraciones para resolver |

385| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models), y agentes de [flujo de trabajo](/docs/es/workflows) que no se asignan un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Dos fuentes tienen precedencia sobre él: un modelo que Claude pasa cuando genera el agente, y un campo `model` en la definición del agente, incluido `inherit`. Para cambiar eso, establezca [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model). Vea [Elegir un modelo](/docs/es/sub-agents#choose-a-model) para el orden completo. Establecerlo en `inherit` es lo mismo que dejarlo sin establecer. Antes de v2.1.251, esta variable anulaba tanto el modelo por invocación como el campo `model` de la definición |388| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models), y agentes de [flujo de trabajo](/docs/es/workflows) que no se asignan un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Dos fuentes tienen precedencia sobre él: un modelo que Claude pasa cuando genera el agente, y un campo `model` en la definición del agente, incluido `inherit`. Para cambiar eso, establezca [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model). Consulte [Elegir un modelo](/docs/es/sub-agents#choose-a-model) para el orden completo. Establecerlo en `inherit` es lo mismo que dejarlo sin establecer. Antes de v2.1.251, esta variable anulaba tanto el modelo por invocación como el campo `model` de la definición |

386| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Establezca en `1` para forzar un modelo en subagentes, compañeros, y agentes de flujo de trabajo. [Ejecutar cada subagente en un modelo](/docs/es/sub-agents#run-every-subagent-on-one-model) dice cuál es ese modelo. Requiere Claude Code v2.1.257 o posterior |389| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Establezca en `1` para forzar un modelo en subagentes, compañeros, y agentes de flujo de trabajo. [Ejecutar cada subagente en un modelo](/docs/es/sub-agents#run-every-subagent-on-one-model) dice cuál es ese modelo. Requiere Claude Code v2.1.257 o posterior |

387| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Establezca `5m` o `1h`, los únicos valores que Claude Code acepta, para elegir el [TTL de caché de prompt](/docs/es/prompt-caching#cache-lifetime) para solicitudes fuera de la conversación principal, como [subagentes](/docs/es/sub-agents), flujos de trabajo, y trabajo de fondo. Tiene precedencia sobre la configuración `subagentPromptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la anula. Las escrituras de caché de 1 hora se facturan a una tasa más alta. Requiere Claude Code v2.1.242 o posterior |390| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Establezca `5m` o `1h`, los únicos valores que Claude Code acepta, para elegir el [TTL de caché de prompt](/docs/es/prompt-caching#cache-lifetime) para solicitudes fuera de la conversación principal, como [subagentes](/docs/es/sub-agents), flujos de trabajo, y trabajo de fondo. Tiene precedencia sobre la configuración `subagentPromptCacheTtl` y sobre `ENABLE_PROMPT_CACHING_1H`, y `FORCE_PROMPT_CACHING_5M` la anula. La API factura escrituras de caché de 1 hora a una tasa más alta. Requiere Claude Code v2.1.242 o posterior |

388| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establezca en `1` para eliminar credenciales de entornos de subproceso (herramienta Bash, hooks, servidores MCP stdio): credenciales de Anthropic y proveedor de nube, cualquier otra variable que Claude Code reconozca como credencial, y credenciales incrustadas en URLs de registro de paquetes. El proceso Claude padre mantiene estas credenciales para llamadas de API, pero los procesos secundarios no pueden leerlas, reduciendo la exposición a ataques de inyección de prompts que intentan exfiltrar secretos a través de expansión de shell. En v2.1.251 o posterior, el scrub también elimina variables de puntero de almacén de configuración de Claude Code (como `CLAUDE_CONFIG_DIR`), por lo que un proceso secundario no puede ubicar un directorio de configuración reubicado. Deje el scrub sin establecer si un subproceso necesita estas variables. En Linux, esto también ejecuta subprocesos Bash en un espacio de nombres PID aislado para que no puedan leer entornos de proceso host a través de `/proc`; como efecto secundario, `ps`, `pgrep`, y `kill` no pueden ver o señalar procesos host. `claude-code-action` establece esto automáticamente cuando `allowed_non_write_users` se configura |391| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Establezca en `1` para eliminar credenciales de entornos de subprocesos (herramienta Bash, hooks, servidores MCP stdio): credenciales de Anthropic y proveedor de nube, cualquier otra variable que Claude Code reconozca como credencial, y credenciales incrustadas en URLs de registro de paquetes. El proceso padre de Claude mantiene estas credenciales para llamadas de API, pero los procesos secundarios no pueden leerlas, reduciendo la exposición a ataques de inyección de prompts que intentan exfiltrar secretos a través de expansión de shell. En v2.1.251 o posterior, el scrub también elimina variables de puntero de almacén de configuración propio de Claude Code (como `CLAUDE_CONFIG_DIR`), para que un proceso secundario no pueda ubicar un directorio de configuración reubicado. Deje el scrub sin establecer si un subproceso necesita estas variables. En Linux, esto también ejecuta subprocesos Bash en un espacio de nombres PID aislado para que no puedan leer entornos de procesos host a través de `/proc`; como efecto secundario, `ps`, `pgrep`, y `kill` no pueden ver o señalar procesos host. `claude-code-action` establece esto automáticamente cuando `allowed_non_write_users` se configura |

389| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establezca en `1` en modo no interactivo (la bandera `-p`) para esperar a que se complete la instalación del plugin antes de la primera consulta. Sin esto, los plugins se instalan en el fondo y pueden no estar disponibles en el primer turno. Combine con `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` para limitar la espera |392| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Establezca en `1` en modo no interactivo (la bandera `-p`) para esperar a que se complete la instalación del plugin 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 |

390| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para instalación sincrónica de plugins. Cuando se excede, Claude Code procede sin plugins y registra un error. Sin predeterminado: sin esta variable, la instalación sincrónica espera hasta completarse |393| `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 procede sin plugins e registra un error. Sin predeterminado: sin esta variable, la instalación sincrónica espera hasta completarse |

391| `CLAUDE_CODE_SYNC_SKILLS` | Establezca en `1` en modo no interactivo con la bandera `-p` para hacer que Claude Code descargue las skills habilitadas para su cuenta de claude.ai en esa ejecución y espere la lista de ellas, hasta `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de ejecutar la primera consulta. Las descargas en sí se completan en el fondo, y Claude espera la descarga de una skill cuando la invoca. Requiere autenticación de claude.ai. Las sesiones de terminal donde inicia sesión con su cuenta de claude.ai [descargan estas skills](/docs/es/skills#where-synced-skills-load) en `~/.claude/skills/synced/` y resincronizan aproximadamente cada 10 minutos sin esta variable, por lo que establézcala solo cuando una ejecución `-p` necesite sus skills actuales en su primera consulta. Antes de v2.1.273, las sesiones de terminal las descargaban solo en una ejecución `-p` con esta variable establecida. El nombre de carpeta `synced` está [reservado para esta descarga](/docs/es/skills#where-skills-live). Antes de v2.1.227, las skills se descargaban en `~/.claude/skills/` directamente. Claude Code aplica [reglas extra a las skills descargadas](/docs/es/skills#how-synced-skills-behave), como no ejecutar sus comandos `!` en su máquina |394| `CLAUDE_CODE_SYNC_SKILLS` | Establezca en `1` en modo no interactivo con la bandera `-p` para hacer que Claude Code descargue las skills habilitadas para su cuenta de claude.ai en esa ejecución y espere la lista de ellas, hasta `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, antes de ejecutar la primera consulta. Las descargas en sí se completan en segundo plano, y Claude espera la descarga de una skill cuando la invoca. Requiere autenticación de claude.ai. Las sesiones de terminal donde inicia sesión con su cuenta de claude.ai [descargan estas skills](/docs/es/skills#where-synced-skills-load) en `~/.claude/skills/synced/` y se resincronizan aproximadamente cada 10 minutos sin esta variable, por lo que establézcala solo cuando una ejecución `-p` necesita sus skills actuales en su primera consulta. Antes de v2.1.273, las sesiones de terminal las descargaban solo en una ejecución `-p` con esta variable establecida. El nombre de carpeta `synced` está [reservado para esta descarga](/docs/es/skills#where-skills-live). Antes de v2.1.227, las skills se descargaban en `~/.claude/skills/` directamente. Claude Code aplica [reglas adicionales a las skills descargadas](/docs/es/skills#how-synced-skills-behave), como no ejecutar sus comandos `!` en su máquina |

392| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la resincronización de skills que se ejecuta a mitad de sesión cuando una aplicación construida en el [Agent SDK](/docs/es/agent-sdk/typescript#query-object) recarga skills (predeterminado: 30000). Cuando se excede, la recarga continúa con cualquiera que sea las skills que hayan llegado, y las descargas restantes se completan en el fondo |395| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Tiempo de espera en milisegundos para la resincronización de skills que se ejecuta a mitad de sesión cuando una aplicación construida en el [Agent SDK](/docs/es/agent-sdk/typescript#query-object) recarga skills (predeterminado: 30000). Cuando se excede, la recarga continúa con las skills que han llegado, y las descargas restantes se completan en segundo plano |

393| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para que la primera consulta espere la lista de skills inicial cuando `CLAUDE_CODE_SYNC_SKILLS` se establece (predeterminado: 5000). Cuando se excede, la primera consulta se ejecuta con cualquiera que sea las skills que hayan llegado. Las descargas se completan en el fondo de cualquier forma, y Claude espera la descarga de una skill cuando la invoca |396| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Tiempo de espera en milisegundos para que la primera consulta espere la lista de skills inicial cuando `CLAUDE_CODE_SYNC_SKILLS` se establece (predeterminado: 5000). Cuando se excede, la primera consulta se ejecuta con las skills que han llegado. Las descargas se completan en segundo plano de cualquier manera, y Claude espera la descarga de una skill cuando la invoca |

394| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establezca en `false` para desabilitar el resaltado de sintaxis en la salida de diferencia. Útil cuando los colores interfieren con su configuración de terminal. Para también desabilitar el resaltado en bloques de código y vistas previas de archivo, use la configuración [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |397| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Establezca en `false` para desactivar el resaltado de sintaxis en la salida de diff. Útil cuando los colores interfieren con su configuración de terminal. Para también desactivar el resaltado en bloques de código y vistas previas de archivos, use la configuración [`syntaxHighlightingDisabled`](/docs/es/settings-reference#syntaxhighlightingdisabled) |

395| `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 en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Vea [Lista de tareas](/docs/es/interactive-mode#task-list) |398| `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 en una lista de tareas compartida, en [sesiones que tienen las herramientas Task](/docs/es/tools-reference#task-tool-availability). Consulte [Lista de tareas](/docs/es/interactive-mode#task-list) |

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

397| `CLAUDE_CODE_TMPDIR` | Anule el directorio temporal utilizado para archivos temporales internos. Claude Code añade `/claude-{uid}/` en Unix o `/claude/` en Windows a esta ruta. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos Bash [sandboxed](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el predeterminado del sistema cuando su anulación es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales se vuelven demasiado largas. Los comandos Bash no sandboxed heredan su `$TMPDIR` de shell sin cambios. Los archivos temporales propios de Claude Code siempre usan su anulación. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |400| `CLAUDE_CODE_TMPDIR` | Anule el directorio temporal utilizado para archivos temporales internos. Claude Code añade `/claude-{uid}/` en Unix o `/claude/` en Windows a esta ruta. Predeterminado: `/tmp` en macOS, `os.tmpdir()` en Linux y Windows. En macOS y Linux, los subprocesos Bash [aislados](/docs/es/sandboxing) reciben un `$TMPDIR` de respaldo corto bajo el predeterminado del sistema cuando su anulación es una ruta larga, ya que algunas herramientas fallan cuando las rutas temporales se vuelven demasiado largas. Los comandos Bash no aislados heredan su `$TMPDIR` de shell cuando se establece. Los archivos temporales propios de Claude Code siempre usan su anulación. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

398| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establezca en cualquier valor no vacío, como `1`, para permitir salida de truecolor de 24 bits dentro de tmux. **Establecerlo en `0` o `false` aún permite truecolor**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para restaurar el límite de 256 colores. De forma predeterminada, Claude Code se limita a 256 colores cuando `$TMUX` se establece porque tmux no pasa secuencias de escape de truecolor a menos que se configure. Establezca esto después de agregar `set -ga terminal-overrides ',*:Tc'` a su `~/.tmux.conf`. Vea [Configuración de terminal](/docs/es/terminal-config) para otras configuraciones de tmux |401| `CLAUDE_CODE_TMUX_TRUECOLOR` | Establezca en cualquier valor no vacío, como `1`, para permitir salida de truecolor de 24 bits dentro de tmux. **Establecerlo en `0` o `false` aún permite truecolor**, a diferencia de la mayoría de variables de encendido/apagado; desestablezca la variable para restaurar el fijación de 256 colores. De forma predeterminada, Claude Code fija a 256 colores cuando `$TMUX` se establece porque tmux no pasa secuencias de escape de truecolor a menos que se configure. Establezca esto después de agregar `set -ga terminal-overrides ',*:Tc'` a su `~/.tmux.conf`. Consulte [Configuración de terminal](/docs/es/terminal-config) para otras configuraciones de tmux |

399| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establezca en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establezca `none` para limitar cada tipo, o `all-new` para limitar solo comandos de herramientas Bash, PowerShell, y Monitor. Claude Code mantiene comandos de herramientas Bash, PowerShell, y Monitor bajo el límite cualquiera que sea lo que enumere. Requiere Claude Code v2.1.246 o posterior |402| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | En Linux y WSL, establezca en una lista separada por comas de los tipos de procesos que Claude Code [excluye del límite de memoria de herramientas](/docs/es/tools-reference#memory-limit-on-linux-and-wsl), como `mcp` o `lsp`. Establezca `none` para limitar cada tipo, o `all-new` para limitar solo comandos de herramientas Bash, PowerShell, y Monitor. Claude Code mantiene comandos de herramientas Bash, PowerShell, y Monitor bajo el límite cualquiera que sea lo que enumere. Requiere Claude Code v2.1.246 o posterior |

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

401| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto como un [Remote Control](/docs/es/remote-control) o host SDK, o el diálogo de aprobación para un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); los prompts de permiso y las preguntas `AskUserQuestion` usan sus propios flujos y no se rigen por él. En Claude Code v2.1.236 o posterior, también limita el [prompt de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión en una sesión que puede estar ejecutándose desatendida. [Controlar mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas de vencimiento de mensaje retenido completo, incluidos los casos donde el plazo no se aplica. Anula la configuración [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desabilita el plazo |404| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Plazo en milisegundos antes de que Claude Code cancele un diálogo que reenvía a un cliente remoto como un [Remote Control](/docs/es/remote-control) o host SDK, o el diálogo de aprobación para un [mensaje entre sesiones retenido](/docs/es/cross-session-messaging#control-inbound-messages); los prompts de permiso y las preguntas `AskUserQuestion` usan sus propios flujos y no se rigen por él. En Claude Code v2.1.236 o posterior, también limita el [prompt de consentimiento de créditos de uso de Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión en una sesión que puede estar ejecutándose desatendida. [Controlar mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) y [sesiones no interactivas](/docs/es/cross-session-messaging#non-interactive-sessions) cubren las reglas de vencimiento de mensaje retenido completo, incluidos los casos donde el plazo no se aplica. Anula la configuración [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry). `0` o un valor negativo desactiva el plazo |

402| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Use [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |405| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Use [Claude Platform on AWS](/docs/es/claude-platform-on-aws) |

403| `CLAUDE_CODE_USE_BEDROCK` | Use [Amazon Bedrock](/docs/es/amazon-bedrock) |406| `CLAUDE_CODE_USE_BEDROCK` | Use [Amazon Bedrock](/docs/es/amazon-bedrock) |

404| `CLAUDE_CODE_USE_FOUNDRY` | Use [Microsoft Foundry](/docs/es/microsoft-foundry) |407| `CLAUDE_CODE_USE_FOUNDRY` | Use [Microsoft Foundry](/docs/es/microsoft-foundry) |

405| `CLAUDE_CODE_USE_MANTLE` | Use el punto de conexión [Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |408| `CLAUDE_CODE_USE_MANTLE` | Use el punto de conexión [Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) de Amazon Bedrock |

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

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

408| `CLAUDE_CODE_USE_VERTEX` | Use [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |411| `CLAUDE_CODE_USE_VERTEX` | Use [Google Cloud's Agent Platform](/docs/es/google-vertex-ai) |

409| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establezca en el número de milisegundos que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene la respuesta de cada URL obtenida en caché. El predeterminado es `900000`, que es 15 minutos. Solo acepta dígitos simples; `0`, un decimal, o cualquier otro deletreo mantiene el predeterminado. Claude Code lee el valor una vez por lanzamiento, por lo que un cambio en un bloque `env` de configuración se aplica cuando inicia `claude` nuevamente. Requiere Claude Code v2.1.233 o posterior |412| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Establezca en el número de milisegundos que [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) mantiene cada respuesta de URL obtenida en caché. El predeterminado es `900000`, que es 15 minutos. Solo acepta dígitos simples; `0`, un decimal, o cualquier otro deletreo mantiene el predeterminado. Claude Code lee el valor una vez por lanzamiento, por lo que un cambio en un bloque `env` de configuración se aplica cuando inicia `claude` nuevamente. Requiere Claude Code v2.1.233 o posterior |

410| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos en cuánto tiempo [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) espera a que se descargue una página, incluidos los redireccionamientos que sigue. Una descarga que no se ha completado para entonces falla con un error de plazo. El predeterminado es `300000`, que es cinco minutos. Establezca en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otro deletreo mantiene el predeterminado. Requiere Claude Code v2.1.268 o posterior |413| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Límite superior en milisegundos en cuánto tiempo [WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) espera a que se descargue una página, incluidos los redireccionamientos que sigue. Una descarga que no se ha completado para entonces falla con un error de plazo. El predeterminado es `300000`, que es cinco minutos. Establezca en `0` para eliminar el límite. Solo acepta dígitos simples; un decimal o cualquier otro deletreo mantiene el predeterminado. Requiere Claude Code v2.1.268 o posterior |

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

412| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos en cuánto tiempo un agente de [flujo de trabajo](/docs/es/workflows) espera a que la primera respuesta de un hermano con el mismo prefijo comience antes de enviar su propia primera solicitud. Cuando un fan-out inicia varios agentes que comparten un [prefijo de caché de prompt](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code mantiene todos excepto el primer agente durante hasta este tiempo para que el resto lea el prefijo en caché en lugar de procesarlo sin caché. Predeterminado `5000`. Establezca en `0` para desabilitar la espera. Cuando `DISABLE_PROMPT_CACHING` se establece, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |415| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Límite superior en milisegundos en cuánto tiempo un agente de [flujo de trabajo](/docs/es/workflows) espera a que la primera respuesta de un hermano con el mismo prefijo comience antes de enviar su propia primera solicitud. Cuando un fan-out inicia varios agentes que comparten un [prefijo de caché de prompt](/docs/es/workflows#prompt-caching-in-a-fan-out), Claude Code mantiene todos excepto el primer agente durante hasta este tiempo para que el resto lea el prefijo en caché en lugar de procesarlo sin caché. Predeterminado `5000`. Establezca en `0` para desactivar la espera. Cuando `DISABLE_PROMPT_CACHING` se establece, los agentes nunca esperan. Requiere Claude Code v2.1.229 o posterior |

413| `CLAUDE_CONFIG_DIR` | Anule el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, historial de sesión, y plugins se almacenan bajo esta ruta. Para credenciales, vea [dónde Claude Code almacena credenciales](/docs/es/authentication#credential-management). Útil para ejecutar múltiples cuentas lado a lado: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |416| `CLAUDE_CONFIG_DIR` | Anule el directorio de configuración (predeterminado: `~/.claude`). Toda la configuración, historial de sesiones, y plugins se almacenan bajo esta ruta. Para credenciales, consulte [dónde Claude Code almacena credenciales](/docs/es/authentication#credential-management). Útil para ejecutar múltiples cuentas lado a lado: por ejemplo, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

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

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

416| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establezca en `1` para forzar la habilitación del perro guardián de inactividad de transmisión a nivel de byte, o establezca en `0` para forzar su deshabilitación. `0` también desactiva el [plazo de primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se ejecuta ese plazo. Cuando no se establece, el perro guardián está habilitado de forma predeterminada para conexiones directas de API de Anthropic y [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para respuestas de transmisión en conexiones de [puerta de enlace](/docs/es/gateways) alcanzadas a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de puerta de enlace, por lo que el perro guardián a nivel de evento podría informar un estancamiento allí incluso mientras se llegaban pings de mantenimiento. Para tiempos de espera y cómo interactúan los temporizadores, vea [Perros guardianes de inactividad de transmisión](/docs/es/network-config#streaming-idle-watchdogs) |419| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Establezca en `1` para forzar la habilitación del perro guardián de inactividad de transmisión a nivel de byte, o establezca en `0` para forzar su desactivación. `0` también desactiva el [plazo de primer byte](/docs/es/network-config#streaming-idle-watchdogs) en las conexiones donde se ejecuta ese plazo. Cuando no se establece, el perro guardián se habilita de forma predeterminada para conexiones directas de API de Anthropic y [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y para respuestas de transmisión en conexiones de [puerta de enlace](/docs/es/gateways) alcanzadas a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`; antes de v2.1.222 no se ejecutaba en esas conexiones de puerta de enlace, por lo que el perro guardián a nivel de evento podría informar un estancamiento allí incluso mientras se llegaban pings de mantenimiento. Para tiempos de espera y cómo interactúan los temporizadores, consulte [Perros guardianes de inactividad de transmisión](/docs/es/network-config#streaming-idle-watchdogs) |

417| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establezca en `1` para habilitar el perro guardián de inactividad de transmisión a nivel de byte en respuestas de Amazon Bedrock `vnd.amazon.eventstream`, que también habilita el [plazo de primer byte](/docs/es/network-config#streaming-idle-watchdogs) en solicitudes de transmisión de Bedrock. Desactivado de forma predeterminada. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |420| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Establezca en `1` para habilitar el perro guardián de inactividad de transmisión a nivel de byte en respuestas de Amazon Bedrock `vnd.amazon.eventstream`, que también habilita el [plazo de primer byte](/docs/es/network-config#streaming-idle-watchdogs) en solicitudes de transmisión de Bedrock. Desactivado de forma predeterminado. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

418| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establezca en `0` para forzar la deshabilitación del perro guardián de inactividad de transmisión a nivel de evento, o establezca en `1` para forzar su habilitación. Cuando no se establece, el perro guardián está activado de forma predeterminada para todos los proveedores. Antes de v2.1.196, el predeterminado sin establecer era controlado por servidor en la API directa de Anthropic y desactivado en otros proveedores. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para los otros temporizadores de estancamiento que se ejecutan junto a este, vea [Perros guardianes de inactividad de transmisión](/docs/es/network-config#streaming-idle-watchdogs) |421| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Establezca en `0` para forzar la desactivación del perro guardián de inactividad de transmisión a nivel de evento, o establezca en `1` para forzar su habilitación. Cuando no se establece, el perro guardián está activado de forma predeterminada para todos los proveedores. Antes de v2.1.196, el predeterminado sin establecer era controlado por servidor en la API directa de Anthropic y desactivado en otros proveedores. Configure el tiempo de espera con `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; para los otros temporizadores de estancamiento que se ejecutan junto a este, consulte [Perros guardianes de inactividad de transmisión](/docs/es/network-config#streaming-idle-watchdogs) |

419| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, por lo que las exportaciones en el archivo son visibles para el comando. Use para persistir activación de virtualenv o conda entre comandos. También se rellena dinámicamente por hooks [SessionStart](/docs/es/hooks#persist-environment-variables), [Setup](/docs/es/hooks#setup), [CwdChanged](/docs/es/hooks#cwdchanged), y [FileChanged](/docs/es/hooks#filechanged) |422| `CLAUDE_ENV_FILE` | Ruta a un script de shell cuyo contenido Claude Code ejecuta antes de cada comando Bash en el mismo proceso de shell, para que las exportaciones en el archivo sean visibles para el comando. Use para persistir activación de virtualenv o conda entre comandos. También se rellena dinámicamente por hooks [SessionStart](/docs/es/hooks#persist-environment-variables), [Setup](/docs/es/hooks#setup), [CwdChanged](/docs/es/hooks#cwdchanged), y [FileChanged](/docs/es/hooks#filechanged) |

420| `CLAUDE_JOB_DIR` | Se establece por Claude Code en cada [sesión de fondo](/docs/es/agent-view) a ese directorio `~/.claude/jobs/<id>` de la sesión. Los comandos de shell que la sesión ejecuta lo heredan. Escriba archivos de borrador en [`$CLAUDE_JOB_DIR/tmp`](/docs/es/agent-view#where-state-is-stored). Las llamadas `Write` y `Edit` de Claude allí no solicitan permiso, y el directorio se elimina cuando se elimina la sesión |423| `CLAUDE_JOB_DIR` | Se establece por Claude Code en cada [sesión de fondo](/docs/es/agent-view) a ese directorio `~/.claude/jobs/<id>` de sesión. Los comandos de shell que la sesión ejecuta lo heredan. Escriba archivos de scratch a [`$CLAUDE_JOB_DIR/tmp`](/docs/es/agent-view#where-state-is-stored). Las llamadas `Write` y `Edit` de Claude allí no solicitan permiso, y el directorio se elimina cuando se elimina la sesión |

421| `CLAUDE_PID` | Claude Code establece esto en su propio ID de proceso en los subprocesos que genera: comandos de herramientas Bash y PowerShell y comandos hook. En Linux, la integración de shell de la herramienta Bash lo usa para rechazar un patrón `pkill` que coincidiría con el proceso Claude Code en sí; vea [la referencia de error](/docs/es/errors#pkill-pattern-matches-the-claude-code-process). Léalo desde sus propios scripts para identificar o señalar deliberadamente el proceso Claude Code padre. Requiere Claude Code v2.1.214 o posterior |424| `CLAUDE_PID` | Claude Code establece esto a su propio ID de proceso en los subprocesos que genera: comandos de herramientas Bash y PowerShell y comandos hook. En Linux, la integración de shell de la herramienta Bash lo usa para rechazar un patrón `pkill` que coincidiría con el proceso de Claude Code en sí; consulte [la referencia de errores](/docs/es/errors#pkill-pattern-matches-the-claude-code-process). Léalo desde sus propios scripts para identificar o señalar deliberadamente el proceso padre de Claude Code. Requiere Claude Code v2.1.214 o posterior |

422| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para nombres de sesión [Remote Control](/docs/es/remote-control) generados automáticamente cuando no se proporciona un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. La bandera CLI `--remote-control-session-name-prefix` establece el mismo valor para una única invocación |425| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefijo para nombres de sesión generados automáticamente de [Remote Control](/docs/es/remote-control) cuando no se proporciona un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. La [bandera CLI](/docs/es/cli-reference#cli-flags) `--remote-control-session-name-prefix` establece el mismo valor para una única invocación |

423| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Plazo en milisegundos para el primer byte de respuesta de una solicitud de transmisión, en las conexiones donde se ejecuta el [plazo de primer byte](/docs/es/network-config#streaming-idle-watchdogs). Para cómo Claude Code lo fija, el tiempo extra que agrega para cuerpos de solicitud grandes, y cómo elige el plazo cuando deja esto sin establecer, vea [Sin respuesta de API](/docs/es/errors#no-response-from-api). Requiere Claude Code v2.1.242 o posterior |426| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Plazo en milisegundos para el primer byte de respuesta de una solicitud de transmisión, en las conexiones donde se ejecuta el [plazo de primer byte](/docs/es/network-config#streaming-idle-watchdogs). Para cómo Claude Code lo fija, el tiempo extra que agrega para cuerpos de solicitud grandes, y cómo elige el plazo cuando deja esto sin establecer, consulte [Sin respuesta de API](/docs/es/errors#no-response-from-api). Requiere Claude Code v2.1.242 o posterior |

424| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que los perros guardianes de inactividad de transmisión a nivel de evento y byte cierren una conexión estancada. Cuando establece esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores más bajos se fijan silenciosamente al mínimo para absorber pausas de pensamiento extendido y almacenamiento en búfer de proxy, y el perro guardián a nivel de byte limita el valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tiene precedencia sobre esta variable para el perro guardián a nivel de byte. Para los valores predeterminados sin establecer por perro guardián, vea [Perros guardianes de inactividad de transmisión](/docs/es/network-config#streaming-idle-watchdogs) |427| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Tiempo de espera en milisegundos antes de que los perros guardianes de inactividad de transmisión a nivel de evento y byte cierren una conexión estancada. Cuando establece esta variable explícitamente, el mínimo es `300000` (5 minutos); los valores más bajos se fijan silenciosamente para absorber pausas de pensamiento extendido y almacenamiento en búfer de proxy, y el perro guardián a nivel de byte limita el valor a 30 minutos. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` tiene precedencia sobre esta variable para el perro guardián a nivel de byte. Para los valores predeterminados sin establecer por perro guardián, consulte [Perros guardianes de inactividad de transmisión](/docs/es/network-config#streaming-idle-watchdogs) |

425| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Eliminado en v2.1.260 y ahora es un no-op. Anteriormente limitaba cuánto tiempo un [comando de shell de fondo](/docs/es/interactive-mode#background-bash-commands) que un [subagente](/docs/es/sub-agents) iniciaba podía ejecutarse, en milisegundos, con un predeterminado de 60 minutos. Vea [las reglas de vida útil del comando de fondo](/docs/es/tools-reference#background-commands) |428| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Eliminado en v2.1.260 y ahora es un no-op. Anteriormente limitaba cuánto tiempo un [comando de shell de fondo](/docs/es/interactive-mode#background-bash-commands) que un [subagente](/docs/es/sub-agents) iniciaba podía ejecutarse, en milisegundos, con un predeterminado de 60 minutos. Consulte [las reglas de vida útil del comando de fondo](/docs/es/tools-reference#background-commands) |

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

427| `DISABLE_AUTOUPDATER` | Establezca en `1` para desabilitar actualizaciones automáticas de fondo. El `claude update` manual aún funciona. Use `DISABLE_UPDATES` para bloquear ambos |430| `DISABLE_AUTOUPDATER` | Establezca en `1` para desactivar las actualizaciones automáticas de fondo. El `claude update` manual aún funciona. Use `DISABLE_UPDATES` para bloquear ambos |

428| `DISABLE_AUTO_COMPACT` | Establezca en `1` para desabilitar la compactación automática cuando se acerca al límite de contexto. El comando manual `/compact` permanece disponible. Use cuando desee control explícito sobre cuándo ocurre la compactación. Anula la configuración [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |431| `DISABLE_AUTO_COMPACT` | Establezca en `1` para desactivar la compactación automática cuando se aproxima al límite de contexto. El comando manual `/compact` permanece disponible. Use cuando desee control explícito sobre cuándo ocurre la compactación. Anula la configuración [`autoCompactEnabled`](/docs/es/settings-reference#autocompactenabled) |

429| `DISABLE_COMPACT` | Establezca en `1` para desabilitar toda la compactación: tanto la compactación automática como el comando manual `/compact` |432| `DISABLE_COMPACT` | Establezca en `1` para desactivar toda la compactación: tanto la compactación automática como el comando manual `/compact` |

430| `DISABLE_COST_WARNINGS` | Establezca en `1` para desabilitar mensajes de advertencia de costo |433| `DISABLE_COST_WARNINGS` | Establezca en `1` para desactivar mensajes de advertencia de costo |

431| `DISABLE_DOCTOR_COMMAND` | Establezca en `1` para ocultar la skill [`/doctor`](/docs/es/commands#all-commands) de verificación de configuración y su alias `/checkup`. Útil para implementaciones administradas donde los usuarios no deberían ejecutar diagnósticos de configuración desde una sesión. No afecta el comando de terminal `claude doctor`. Antes de v2.1.205, esta variable ocultaba la pantalla de comando `/doctor` de diagnósticos |434| `DISABLE_DOCTOR_COMMAND` | Establezca en `1` para ocultar la skill [`/doctor`](/docs/es/commands#all-commands) de verificación de configuración y su alias `/checkup`. Útil para implementaciones administradas donde los usuarios no deben ejecutar diagnósticos de configuración desde una sesión. No afecta el comando de terminal `claude doctor`. Antes de v2.1.205, esta variable ocultaba la pantalla de diagnósticos `/doctor` |

432| `DISABLE_ERROR_REPORTING` | Establezca en cualquier valor no vacío, como `1`, para optar por no participar en informes de errores. **Establecerlo en `0` o `false` aún opta por no participar**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para volver a activar los informes de errores |435| `DISABLE_ERROR_REPORTING` | Establezca en cualquier valor no vacío, como `1`, para optar por no participar en informes de errores. **Establecerlo en `0` o `false` aún opta por no participar**, a diferencia de la mayoría de variables de encendido/apagado; desestablezca la variable para volver a activar los informes de errores |

433| `DISABLE_EXTRA_USAGE_COMMAND` | Establezca en `1` para ocultar el comando `/usage-credits` que permite a los usuarios comprar uso adicional más allá de límites de velocidad |436| `DISABLE_EXTRA_USAGE_COMMAND` | Establezca en `1` para ocultar el comando `/usage-credits` que permite a los usuarios comprar uso adicional más allá de límites de velocidad |

434| `DISABLE_FEEDBACK_COMMAND` | Establezca en `1` para desabilitar el comando `/feedback` y [retroalimentación redactada por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior). También desabilita `/bug` y `/share`, que informan a través de la misma ruta; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando se deshabilitaba bajo cada nombre. El nombre anterior `DISABLE_BUG_COMMAND` también se acepta |437| `DISABLE_FEEDBACK_COMMAND` | Establezca en `1` para desactivar el comando `/feedback` y [retroalimentación redactada por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior). También desactiva `/bug` y `/share`, que informan a través de la misma ruta; antes de v2.1.212 eran alias de `/feedback`, por lo que el comando se desactivaba bajo cada nombre. El nombre anterior `DISABLE_BUG_COMMAND` también se acepta |

435| `DISABLE_GROWTHBOOK` | Establezca en `1` o `true` para desabilitar la obtención de banderas de características de GrowthBook y usar valores predeterminados de código para cada bandera. Esto hace que [Remote Control](/docs/es/remote-control#requirements) y las otras [características que necesitan obtención de banderas de características](#features-that-need-feature-flag-fetching) no estén disponibles. Establecerlo en `0` o `false` deja la obtención activada. El registro de eventos de telemetría permanece activado a menos que `DISABLE_TELEMETRY` también se establezca |438| `DISABLE_GROWTHBOOK` | Establezca en `1` o `true` para desactivar la obtención de banderas de características de GrowthBook y usar valores predeterminados de código para cada bandera. Esto hace que [Remote Control](/docs/es/remote-control#requirements) y las otras [características que necesitan obtención de banderas de características](#features-that-need-feature-flag-fetching) no estén disponibles. Establecerlo en `0` o `false` deja la obtención activada. El registro de eventos de telemetría permanece activado a menos que `DISABLE_TELEMETRY` también se establezca |

436| `DISABLE_INSTALLATION_CHECKS` | Establezca en `1` para desabilitar advertencias de instalación. Use solo cuando administre manualmente la ubicación de instalación, ya que esto puede enmascarar problemas con instalaciones estándar |439| `DISABLE_INSTALLATION_CHECKS` | Establezca en `1` para desactivar advertencias de instalación. Use solo cuando administre manualmente la ubicación de instalación, ya que esto puede enmascarar problemas con instalaciones estándar |

437| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Establezca en `1` para ocultar el comando `/install-github-app`. Ya está oculto cuando se usan proveedores de terceros (Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry) |440| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Establezca en `1` para ocultar el comando `/install-github-app`. Ya está oculto cuando se usan proveedores de terceros (Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry) |

438| `DISABLE_INTERLEAVED_THINKING` | Establezca en `1` para evitar enviar el encabezado beta de pensamiento intercalado. Útil cuando su puerta de enlace LLM o proveedor no admite [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |441| `DISABLE_INTERLEAVED_THINKING` | Establezca en `1` para evitar enviar el encabezado beta de pensamiento intercalado. Útil cuando su puerta de enlace LLM o proveedor no admite [pensamiento intercalado](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

439| `DISABLE_LOGIN_COMMAND` | Establezca en `1` para ocultar el comando `/login`. Útil cuando la autenticación se maneja externamente a través de claves de API o `apiKeyHelper` |442| `DISABLE_LOGIN_COMMAND` | Establezca en `1` para ocultar el comando `/login`. Útil cuando la autenticación se maneja externamente a través de claves de API o `apiKeyHelper` |

440| `DISABLE_LOGOUT_COMMAND` | Establezca en `1` para ocultar el comando `/logout` |443| `DISABLE_LOGOUT_COMMAND` | Establezca en `1` para ocultar el comando `/logout` |

441| `DISABLE_PROMPT_CACHING` | Establezca en `1` para desabilitar [almacenamiento en caché de prompt](/docs/es/prompt-caching#disable-prompt-caching) para todos los modelos (tiene precedencia sobre configuraciones por modelo) |444| `DISABLE_PROMPT_CACHING` | Establezca en `1` para desactivar el [almacenamiento en caché de prompts](/docs/es/prompt-caching#disable-prompt-caching) para todos los modelos (tiene precedencia sobre configuraciones por modelo) |

442| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para desabilitar el almacenamiento en caché de prompt para modelos Fable |445| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para desactivar el almacenamiento en caché de prompts para modelos Fable |

443| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desabilitar el almacenamiento en caché de prompt para modelos Haiku |446| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desactivar el almacenamiento en caché de prompts para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching), dondequiera que se ejecute |

444| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desabilitar el almacenamiento en caché de prompt para modelos Opus |447| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desactivar el almacenamiento en caché de prompts para modelos Opus |

445| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desabilitar el almacenamiento en caché de prompt para modelos Sonnet |448| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desactivar el almacenamiento en caché de prompts para modelos Sonnet |

446| `DISABLE_TELEMETRY` | Establezca en cualquier valor no vacío, como `1`, para optar por no participar en telemetría. **Establecerlo en `0` o `false` aún opta por no participar**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para volver a activar la telemetría. Los eventos de telemetría no incluyen datos de usuario como código, rutas de archivo, o comandos bash. También desabilita la obtención de banderas de características con el mismo efecto que `DISABLE_GROWTHBOOK`, que hace que [Remote Control](/docs/es/remote-control#requirements) y las otras [características que necesitan obtención de banderas de características](#features-that-need-feature-flag-fetching) no estén disponibles. Vea [Desactivar telemetría para su organización](/docs/es/managed-settings#turn-telemetry-off-for-your-organization) |449| `DISABLE_TELEMETRY` | Establezca en cualquier valor no vacío, como `1`, para optar por no participar en telemetría. **Establecerlo en `0` o `false` aún opta por no participar**, a diferencia de la mayoría de variables de encendido/apagado; desestablezca la variable para volver a activar la telemetría. Los eventos de telemetría no incluyen datos de usuario como código, rutas de archivo, o comandos Bash. También desactiva la [obtención de banderas de características](#features-that-need-feature-flag-fetching). Consulte [Desactivar telemetría para su organización](/docs/es/managed-settings#turn-telemetry-off-for-your-organization) |

447| `DISABLE_UPDATES` | Establezca en `1` para bloquear todas las actualizaciones, incluido el `claude update` manual y `claude install`. Más estricto que `DISABLE_AUTOUPDATER`. Use cuando distribuya Claude Code a través de sus propios canales y los usuarios no deberían auto-actualizar |450| `DISABLE_UPDATES` | Establezca en `1` para bloquear todas las actualizaciones, incluido el `claude update` manual y `claude install`. Más estricto que `DISABLE_AUTOUPDATER`. Use cuando distribuya Claude Code a través de sus propios canales y los usuarios no deben auto-actualizar |

448| `DISABLE_UPGRADE_COMMAND` | Establezca en `1` para ocultar el comando `/upgrade` |451| `DISABLE_UPGRADE_COMMAND` | Establezca en `1` para ocultar el comando `/upgrade` |

449| `DO_NOT_TRACK` | Establezca en `1` para optar por no participar en telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluida la no disponibilidad de [Remote Control](/docs/es/remote-control#requirements) y las otras [características que necesitan obtención de banderas de características](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` deja la telemetría activada, y la honra como la convención entre herramientas reconocida por muchas CLI de desarrollador |452| `DO_NOT_TRACK` | Establezca en `1` para optar por no participar en telemetría, con el mismo efecto que `DISABLE_TELEMETRY`, incluida la [obtención de banderas de características](#features-that-need-feature-flag-fetching). Claude Code lee esta variable como un booleano estándar, por lo que `0` deja la telemetría activada, y la honra como la convención entre herramientas reconocida por muchas CLIs de desarrollador |

450| `ENABLE_BETA_TRACING_DETAILED` | Establezca en `1`, junto con `BETA_TRACING_ENDPOINT`, para activar [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que agrega atributos que llevan contenido y el tramo `claude_code.hook`. Las sesiones CLI interactivas también requieren que su organización esté en la lista de permitidos para la beta. Ambas variables se ignoran en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |453| `ENABLE_BETA_TRACING_DETAILED` | Establezca en `1`, junto con `BETA_TRACING_ENDPOINT`, para activar [rastreo beta detallado](/docs/es/monitoring-usage#traces-beta), que agrega atributos que llevan contenido y el tramo `claude_code.hook`. Las sesiones de CLI interactivas también requieren que su organización esté en la lista blanca para la beta. Ambas variables se ignoran en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env) |

451| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establezca en `false` para evitar que Claude Code obtenga [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para usuarios con sesión iniciada. Para desabilitar por proyecto u organización, establezca [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en configuración en su lugar |454| `ENABLE_CLAUDEAI_MCP_SERVERS` | Establezca en `false` para evitar que Claude Code obtenga [servidores MCP de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai). Habilitado de forma predeterminada para usuarios con sesión iniciada. Para desactivar por proyecto u organización, establezca [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors) en configuración en su lugar |

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

453| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Use `ENABLE_PROMPT_CACHING_1H` en su lugar |456| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecado. Use `ENABLE_PROMPT_CACHING_1H` en su lugar |

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

455| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establezca en cualquier valor no vacío, como `1`, para hacer que Claude Code deje de reintentar en errores de sobrecarga repetidos para cada modelo cuando no hay modelo de respaldo configurado. **Establecerlo en `0` o `false` aún habilita esto**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para restaurar el comportamiento de reintento predeterminado. Sin él, Claude Code deja de reintentar de esta manera en modelos que reconoce como modelos Opus, Fable, o Mythos cuando se autentica con una clave de API o un [proveedor de terceros](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a su [cadena de modelo de respaldo](/docs/es/model-config#fallback-model-chains) configurada en errores de sobrecarga repetidos para cualquier modelo principal, por lo que esta variable no afecta el cambio a un modelo de respaldo |458| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Establezca en cualquier valor no vacío, como `1`, para hacer que Claude Code deje de reintentar en errores de sobrecarga repetidos para cada modelo cuando no hay modelo de respaldo configurado. **Establecerlo en `0` o `false` aún habilita esto**, a diferencia de la mayoría de variables de encendido/apagado; desestablezca la variable para restaurar el comportamiento de reintento predeterminado. Sin él, Claude Code deja de reintentar de esta manera en modelos que reconoce como modelos Opus, Fable, o Mythos cuando se autentica con una clave de API o un [proveedor de terceros](/docs/es/third-party-integrations) en lugar de una suscripción a Claude. En Claude Code v2.1.160 o posterior, Claude Code cambia a su [cadena de modelo de respaldo](/docs/es/model-config#fallback-model-chains) configurada en errores de sobrecarga repetidos para cualquier modelo principal, por lo que esta variable no afecta el cambio a un modelo de respaldo |

456| `FORCE_AUTOUPDATE_PLUGINS` | Establezca en `1` para forzar auto-actualizaciones de plugins incluso cuando el auto-actualizador principal está deshabilitado a través de `DISABLE_AUTOUPDATER` |459| `FORCE_AUTOUPDATE_PLUGINS` | Establezca en `1` para forzar auto-actualizaciones de plugins incluso cuando el auto-actualizador principal está desactivado a través de `DISABLE_AUTOUPDATER` |

457| `FORCE_HYPERLINK` | Establezca en `1` para habilitar hipervínculos OSC 8 clicables cuando su terminal los admite pero no se auto-detecta, o `0` para deshabilitarlos. Cuando no se establece, Claude Code habilita hipervínculos solo cuando detecta soporte de terminal. Claude Code analiza este valor como un número, no un booleano, por lo que un valor como `false`, `no`, u `off` habilita hipervínculos en lugar de deshabilitarlos. El pie de página [insignia de estado de PR o solicitud de fusión](/docs/es/interactive-mode#pr-review-status) se renderiza como un hipervínculo incluso cuando Claude Code no puede detectar soporte de terminal, como sobre SSH. Establezca `0` para renderizar la insignia como texto simple |460| `FORCE_HYPERLINK` | Establezca en `1` para habilitar hipervínculos OSC 8 clicables cuando su terminal los admite pero no se detectan automáticamente, o `0` para desactivarlos. Cuando no se establece, Claude Code habilita hipervínculos solo cuando detecta soporte de terminal. Claude Code analiza este valor como un número, no un booleano, por lo que un valor como `false`, `no`, u `off` habilita hipervínculos en lugar de desactivarlos. El pie de página [insignia de estado de PR o solicitud de fusión](/docs/es/interactive-mode#pr-review-status) se renderiza como un hipervínculo incluso cuando Claude Code no puede detectar soporte de terminal, como sobre SSH. Establezca `0` para renderizar la insignia como texto simple |

458| `FORCE_PROMPT_CACHING_5M` | Establezca en `1` para forzar el TTL de caché de prompt de 5 minutos incluso cuando el TTL de 1 hora se aplicaría de otra manera. Anula `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, y las configuraciones `promptCacheTtl` y `subagentPromptCacheTtl` |461| `FORCE_PROMPT_CACHING_5M` | Establezca en `1` para forzar el TTL de caché de prompt de 5 minutos incluso cuando el TTL de 1 hora se aplicaría de otra manera. Anula `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, y las configuraciones `promptCacheTtl` y `subagentPromptCacheTtl` |

459| `HTTP_PROXY` | Especifique el servidor proxy HTTP para conexiones de red |462| `HTTP_PROXY` | Especifique el servidor proxy HTTP para conexiones de red |

460| `HTTPS_PROXY` | Especifique el servidor proxy HTTPS para conexiones de red |463| `HTTPS_PROXY` | Especifique el servidor proxy HTTPS para conexiones de red |

461| `IS_DEMO` | Establezca en cualquier valor no vacío, como `1`, para habilitar el modo de demostración: oculta su correo electrónico y nombre de organización del encabezado y salida `/status`, y omite la incorporación. **Establecerlo en `0` o `false` aún habilita el modo de demostración**, a diferencia de la mayoría de variables de activación/desactivación; desestablezca la variable para desactivarlo. Útil cuando transmite o graba una sesión |464| `IS_DEMO` | Establezca en cualquier valor no vacío, como `1`, para habilitar el modo de demostración: oculta su correo electrónico y nombre de organización del encabezado y salida `/status`, y omite la incorporación. **Establecerlo en `0` o `false` aún habilita el modo de demostración**, a diferencia de la mayoría de variables de encendido/apagado; desestablezca la variable para desactivarlo. Útil cuando transmite o graba una sesión |

462| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para contenido de texto en su lugar, pero el contenido de imagen de esas herramientas aún está sujeto a esta variable (predeterminado: 25000) |465| `MAX_MCP_OUTPUT_TOKENS` | Número máximo de tokens permitidos en respuestas de herramientas MCP. Claude Code muestra una advertencia cuando la salida excede 10,000 tokens. Las herramientas que declaran [`anthropic/maxResultSizeChars`](/docs/es/mcp#raise-the-limit-for-a-specific-tool) usan ese límite de caracteres para contenido de texto en su lugar, pero el contenido de imagen de esas herramientas aún está sujeto a esta variable (predeterminado: 25000) |

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

464| `MAX_THINKING_TOKENS` | Presupuesto de token fijo para [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token por debajo de los tokens de salida máximos de la solicitud y nunca por debajo de 1,024. Vea `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para cómo se establece ese límite. Cuando no se establece y el pensamiento está habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y otros modelos usan el límite. Establezca en `0` para desabilitar el pensamiento en la API de Anthropic, excepto en Opus 5.5 y los modelos Fable, que no pueden tener el pensamiento deshabilitado. En [proveedores de terceros](/docs/es/third-party-integrations), `0` omite el parámetro `thinking` en su lugar. Con el pensamiento deshabilitado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Claude Code ignora valores distintos de cero en modelos de razonamiento adaptativo, excepto en los modelos donde `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |467| `MAX_THINKING_TOKENS` | Presupuesto de token fijo para [pensamiento extendido](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code lo limita a un token por debajo de los tokens de salida máximos de la solicitud y nunca por debajo de 1,024. Consulte `CLAUDE_CODE_MAX_OUTPUT_TOKENS` para cómo se establece ese límite. Cuando no se establece y el pensamiento está habilitado, los modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level) eligen su propia profundidad de pensamiento, y otros modelos usan el límite. Establezca en `0` para desactivar el pensamiento en la API de Anthropic, excepto en Opus 5.5, Sonnet 5.5, y los modelos Fable, que no pueden tener el pensamiento desactivado. En [proveedores de terceros](/docs/es/third-party-integrations), `0` omite el parámetro `thinking` en su lugar. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5. Claude Code ignora valores distintos de cero en modelos de razonamiento adaptativo, excepto en los modelos donde `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` desactiva el razonamiento adaptativo |

465| `MCP_CLIENT_SECRET` | Secreto de cliente OAuth para servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita el prompt interactivo al agregar un servidor con `--client-secret` |468| `MCP_CLIENT_SECRET` | Secreto de cliente de OAuth para servidores MCP que requieren [credenciales preconfiguradas](/docs/es/mcp#use-pre-configured-oauth-credentials). Evita el prompt interactivo cuando se agrega un servidor con `--client-secret` |

466| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que los servidores MCP se conecten antes de la primera consulta. El inicio de MCP es no bloqueante de forma predeterminada: los servidores se conectan en el fondo y sus herramientas se vuelven disponibles a medida que terminan. Establezca en `0` para hacer que Claude Code espere a que los servidores se conecten antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) aún hacen que el inicio espere independientemente, excepto cuando se sirven desde el [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a los servidores aún pendientes antes del primer turno independientemente de esta variable. Cuando pasa [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; vea esa entrada de bandera para la excepción de servidor en caché |469| `MCP_CONNECTION_NONBLOCKING` | Controla si el inicio espera a que los servidores MCP se conecten antes de la primera consulta. El inicio de MCP no es bloqueante de forma predeterminada: los servidores se conectan en segundo plano y sus herramientas se vuelven disponibles a medida que terminan. Establezca en `0` para hacer que Claude Code espere a que los servidores se conecten antes de la primera consulta. Los servidores configurados con [`alwaysLoad: true`](/docs/es/mcp#exempt-a-server-from-deferral) aún hacen que el inicio espere independientemente, excepto cuando se sirven desde el [caché de descubrimiento](/docs/es/mcp#server-status-detail), ya que sus herramientas deben estar presentes cuando se construye el primer prompt. En modo no interactivo (`-p`) sin `--input-format stream-json`, Claude Code también espera a servidores aún pendientes antes del primer turno independientemente de esta variable. Cuando pasa [`--mcp-config`](/docs/es/cli-reference#cli-flags) explícitamente, la espera tiene un plazo más largo; consulte esa entrada de bandera para la excepción de servidor en caché |

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

468| `MCP_DISCOVERY_CACHE` | Activa o desactiva el [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con el caché activado, un servidor HTTP o SSE remoto que ha usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code se conecta en su primera llamada de herramienta en lugar de al inicio. El caché está desactivado de forma predeterminada a menos que un lanzamiento gradual lo haya habilitado para su cuenta. Establezca en `1` para activarlo, o `0` para mantenerlo desactivado incluso cuando el lanzamiento lo ha habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |471| `MCP_DISCOVERY_CACHE` | Activa o desactiva el [caché de descubrimiento de MCP](/docs/es/mcp#server-status-detail). Con el caché activado, un servidor HTTP o SSE remoto que ha usado antes puede mostrar el [estado `cached`](/docs/es/mcp#server-status-detail), y Claude Code lo conecta en su primera llamada de herramienta en lugar de al inicio. El caché está desactivado de forma predeterminada a menos que un lanzamiento gradual lo haya habilitado para su cuenta. Establezca en `1` para activarlo, o `0` para mantenerlo desactivado incluso cuando el lanzamiento lo ha habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada. El estado `cached` requiere Claude Code v2.1.221 o posterior |

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

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

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

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

473| `MCP_PROTOCOL_NEGOTIATION` | En el [tiempo de ejecución del cliente MCP v2](/docs/es/mcp#mcp-client-runtimes) solo, si Claude Code sondea servidores para la revisión del protocolo MCP 2026-07-28. Establezca `auto` para sondear servidores HTTP, conector de claude.ai, y stdio; un servidor que no responda al sondeo se conecta en el protocolo anterior en su lugar, como los servidores SSE y WebSocket siempre lo hacen. Establezca `legacy` para omitir el sondeo para cada servidor. Sin la variable, Claude Code sondea servidores HTTP, y también sondea servidores de conector de claude.ai en las sesiones en las que [obtiene banderas de características](#features-that-need-feature-flag-fetching). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |476| `MCP_PROTOCOL_NEGOTIATION` | En el [tiempo de ejecución del cliente MCP v2](/docs/es/mcp#mcp-client-runtimes) solo, si Claude Code sondea servidores para la revisión del protocolo MCP 2026-07-28. Establezca `auto` para sondear servidores HTTP, conector de claude.ai, y stdio; un servidor que no responde al sondeo se conecta en el protocolo anterior en su lugar, como los servidores SSE y WebSocket siempre lo hacen. Establezca `legacy` para omitir el sondeo para cada servidor. Sin la variable, Claude Code sondea servidores HTTP, y también sondea servidores de conector de claude.ai en sesiones donde [obtiene banderas de características](#features-that-need-feature-flag-fetching). Cualquier otro valor se ignora con una advertencia en el registro de depuración. Requiere Claude Code v2.1.221 o posterior |

474| `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) |477| `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) |

475| `MCP_SDK_GENERATION` | Fije qué [tiempo de ejecución del cliente MCP](/docs/es/mcp#mcp-client-runtimes) este proceso se conecta a servidores MCP con: `v1`, construido en MCP TypeScript SDK 1.x, o `v2`, construido en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, a partir de las versiones enumeradas en esa sección. En Claude Code v2.1.221 o posterior, el tiempo de ejecución v2 verifica el emisor que un servidor OAuth de MCP devuelve en su respuesta de autorización y falla el inicio de sesión con un error que comienza `Issuer mismatch in authorization response` cuando no coincide. El tiempo de ejecución v1 no ejecuta esta verificación. Si establece un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |478| `MCP_SDK_GENERATION` | Fije qué [tiempo de ejecución del cliente MCP](/docs/es/mcp#mcp-client-runtimes) este proceso se conecta a servidores MCP con: `v1`, construido en MCP TypeScript SDK 1.x, o `v2`, construido en [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Sin la variable, Claude Code usa v2, comenzando con las versiones enumeradas en esa sección. En Claude Code v2.1.221 o posterior, el tiempo de ejecución v2 verifica el emisor que un servidor MCP de OAuth devuelve en su respuesta de autorización y falla el inicio de sesión con un error que comienza `Issuer mismatch in authorization response` cuando no coincide. El tiempo de ejecución v1 no ejecuta esta verificación. Si establece un valor no reconocido, Claude Code lo ignora y escribe una advertencia en el registro de depuración. Claude Code lee el valor una vez por proceso. Requiere Claude Code v2.1.218 o posterior |

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

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

478| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para ejecución de herramientas MCP (predeterminado: 100000000, aproximadamente 28 horas). Para un servidor HTTP, SSE, o conector de claude.ai, cada solicitud también agota el tiempo de espera después de 60 segundos de forma predeterminada; establezca esta variable, o el `timeout` por servidor, por encima de 60000 para aumentar ese límite por solicitud. Un valor más bajo aún acorta el tiempo de espera general de ejecución de herramientas pero deja el límite por solicitud en 60 segundos. Los servidores Stdio y WebSocket no tienen temporizador por solicitud. Un campo `timeout` por servidor en `.mcp.json` anula esto para ese servidor. Un `timeout` por servidor de al menos 1000 también establece la ventana de inactividad mínima para las llamadas de herramientas de ese servidor, por lo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las aborta antes; este piso requiere Claude Code v2.1.203 o posterior. Para la variable env, los valores por debajo de 1000 se fijan a un segundo; para el campo por servidor, los valores por debajo de 1000 se ignoran |481| `MCP_TOOL_TIMEOUT` | Tiempo de espera en milisegundos para la ejecución de herramientas MCP (predeterminado: 100000000, aproximadamente 28 horas). Para un servidor HTTP, SSE, o conector de claude.ai, cada solicitud también agota el tiempo de espera después de 60 segundos de forma predeterminada; establezca esta variable, o el `timeout` por servidor, por encima de 60000 para aumentar ese límite por solicitud. Un valor más bajo aún acorta el tiempo de espera general de ejecución de herramientas pero deja el límite por solicitud en 60 segundos. Los servidores Stdio y WebSocket no tienen temporizador por solicitud. Un campo `timeout` por servidor en `.mcp.json` anula esto para ese servidor. Un `timeout` por servidor de al menos 1000 también establece la ventana de inactividad mínima para las llamadas de herramientas de ese servidor, por lo que `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` nunca las aborta antes; este piso requiere Claude Code v2.1.203 o posterior. Para la variable env, los valores por debajo de 1000 se fijan a un segundo; para el campo por servidor, los valores por debajo de 1000 se ignoran |

479| `NO_PROXY` | Lista de dominios e IPs a los que se emitirán solicitudes directamente, omitiendo el proxy |482| `NO_PROXY` | Lista de dominios e IPs a los que se emitirán solicitudes directamente, omitiendo el proxy |

480| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry en la longitud del valor del atributo. Claude Code limita los atributos de telemetría que llevan contenido al menor de este y `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, por lo que el marcador de truncamiento permanece dentro del límite del SDK. Claude Code lee las variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` y `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la misma manera, y se aplica el valor más pequeño establecido a todas las señales. Requiere Claude Code v2.1.214 o posterior. Vea [Monitoreo](/docs/es/monitoring-usage#common-configuration-variables) |483| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Límite estándar del SDK de OpenTelemetry en la longitud del valor del atributo. Claude Code limita los atributos de telemetría que llevan contenido al menor de este y `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, para que el marcador de truncamiento permanezca dentro del límite del SDK. Claude Code lee las variantes `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` y `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` de la misma manera, y el valor más pequeño establecido se aplica a todas las señales. Requiere Claude Code v2.1.214 o posterior. Consulte [Monitoreo](/docs/es/monitoring-usage#common-configuration-variables) |

481| `OTEL_LOG_ASSISTANT_RESPONSES` | Establezca en `1` para incluir el texto de respuesta del modelo en eventos de registro OpenTelemetry `assistant_response`. Cuando no se establece, se usa el valor de `OTEL_LOG_USER_PROMPTS` en su lugar. Establezca en `0` para mantener las respuestas redactadas incluso cuando `OTEL_LOG_USER_PROMPTS` se establece. Requiere Claude Code v2.1.193 o posterior. Vea [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |484| `OTEL_LOG_ASSISTANT_RESPONSES` | Establezca en `1` para incluir el texto de respuesta del modelo en eventos de registro de OpenTelemetry `assistant_response`. Cuando no se establece, Claude Code usa el valor de `OTEL_LOG_USER_PROMPTS` en su lugar. Establezca en `0` para mantener las respuestas redactadas incluso cuando `OTEL_LOG_USER_PROMPTS` se establece. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Requiere Claude Code v2.1.193 o posterior. Consulte [Monitoreo](/docs/es/monitoring-usage#assistant-response-event) |

482| `OTEL_LOG_MANAGED_SETTINGS` | Establezca en `1` para agregar la configuración administrada redactada, y un resumen SHA-256 de la configuración antes de la redacción, a eventos de registro OpenTelemetry `managed_settings_resolved`. Deshabilitado de forma predeterminada. Establézcalo en su shell, configuración de usuario, o configuración administrada; un valor en configuración de proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior. Vea [Monitoreo](/docs/es/monitoring-usage#managed-settings-resolved-event) |485| `OTEL_LOG_MANAGED_SETTINGS` | Establezca en `1` para agregar la configuración administrada redactada, y un resumen SHA-256 de la configuración antes de la redacción, a eventos de registro de OpenTelemetry `managed_settings_resolved`. Desactivado de forma predeterminada. Establézcalo en su shell, configuración de usuario, o configuración administrada; un valor en configuración de proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior. Consulte [Monitoreo](/docs/es/monitoring-usage#managed-settings-resolved-event) |

483| `OTEL_LOG_RAW_API_BODIES` | Emita solicitud y respuesta JSON de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establezca en `1` para cuerpos en línea truncados en el límite de contenido, o `file:<dir>` para escribir cuerpos sin truncar en disco y emitir una ruta `body_ref` en su lugar. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, 60 KB de forma predeterminada. Deshabilitado de forma predeterminada; los cuerpos incluyen el historial de conversación completo. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Vea [Monitoreo](/docs/es/monitoring-usage#api-request-body-event) |486| `OTEL_LOG_RAW_API_BODIES` | Emita JSON de solicitud y respuesta de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body`. Establezca en `1` para cuerpos en línea truncados en el límite de contenido, o `file:<dir>` para escribir cuerpos sin truncar en disco y emitir una ruta `body_ref` en su lugar. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` configura el límite de contenido, 60 KB de forma predeterminada. Desactivado de forma predeterminada; los cuerpos incluyen el historial de conversación completo. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Consulte [Monitoreo](/docs/es/monitoring-usage#api-request-body-event) |

484| `OTEL_LOG_TOOL_CONTENT` | Establezca en `1` para incluir contenido de herramientas en el evento de tramo OpenTelemetry `tool.output`. Los atributos de tramo llevan contenido de herramientas bajo [sus propias puertas](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Deshabilitado de forma predeterminada para proteger datos sensibles. Vea [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |487| `OTEL_LOG_TOOL_CONTENT` | Establezca en `1` para incluir contenido de herramientas en el evento de tramo de OpenTelemetry `tool.output`. Los atributos de tramo llevan contenido de herramientas bajo [sus propias puertas](/docs/es/monitoring-usage#new-context-gates). Requiere [rastreo](/docs/es/monitoring-usage#traces-beta). Desactivado de forma predeterminada para proteger datos sensibles. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), aparte de los valores desactivados que esa sección describe. Consulte [Monitoreo](/docs/es/monitoring-usage#tool-output-span-event) |

485| `OTEL_LOG_TOOL_DETAILS` | Establezca en `1` para incluir argumentos de entrada de herramientas, nombres de servidores MCP, nombres de flujos de trabajo creados por el usuario, cadenas de error sin procesar en fallos de herramientas, la `category` de rechazo en eventos `api_refusal`, y otros detalles de herramientas en rastreos y registros de OpenTelemetry. Deshabilitado de forma predeterminada para proteger PII. Vea [Monitoreo](/docs/es/monitoring-usage) |488| `OTEL_LOG_TOOL_DETAILS` | Establezca en `1` para incluir argumentos de entrada de herramientas, nombres de servidores MCP, nombres de flujos de trabajo creados por el usuario, cadenas de error sin procesar en fallos de herramientas, la `category` de rechazo en eventos `api_refusal`, y otros detalles de herramientas en rastreos y registros de OpenTelemetry. Desactivado de forma predeterminada para proteger PII. Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), aparte de los valores desactivados que esa sección describe. Consulte [Monitoreo](/docs/es/monitoring-usage) |

486| `OTEL_LOG_USER_PROMPTS` | Establezca en `1` para incluir texto de prompt de usuario en rastreos y registros de OpenTelemetry. Deshabilitado de forma predeterminada (los prompts se redactan). Vea [Monitoreo](/docs/es/monitoring-usage) |489| `OTEL_LOG_USER_PROMPTS` | Establezca en `1` para incluir texto de prompt de usuario en rastreos y registros de OpenTelemetry. Desactivado de forma predeterminada (los prompts se redactan). Establézcalo en su shell, configuración de usuario, o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), aparte de los valores desactivados que esa sección describe. Consulte [Monitoreo](/docs/es/monitoring-usage) |

487| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establezca en `false` para excluir UUID de cuenta de atributos de métricas (predeterminado: incluido). Vea [Monitoreo](/docs/es/monitoring-usage) |490| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Establezca en `false` para excluir UUID de cuenta de atributos de métricas (predeterminado: incluido). Consulte [Monitoreo](/docs/es/monitoring-usage) |

488| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establezca en `true` para incluir el punto de entrada de sesión en atributos de métricas (predeterminado: excluido). Agregado en v2.1.152. Vea [Monitoreo](/docs/es/monitoring-usage) |491| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Establezca en `true` para incluir el punto de entrada de sesión en atributos de métricas (predeterminado: excluido). Agregado en v2.1.152. Consulte [Monitoreo](/docs/es/monitoring-usage) |

489| `OTEL_METRICS_INCLUDE_REPOSITORY` | Establezca en `true` para etiquetar métricas y eventos de OpenTelemetry con atributos `vcs.*` que identifiquen el repositorio de la sesión (predeterminado: excluido). Requiere Claude Code v2.1.269 o posterior. Vea [Atributos de repositorio](/docs/es/monitoring-usage#repository-attributes) |492| `OTEL_METRICS_INCLUDE_REPOSITORY` | Establezca en `true` para etiquetar métricas y eventos de OpenTelemetry con atributos `vcs.*` que identifican el repositorio de la sesión (predeterminado: excluido). Requiere Claude Code v2.1.269 o posterior. Consulte [Atributos de repositorio](/docs/es/monitoring-usage#repository-attributes) |

490| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir de v2.1.161, Claude Code adjunta claves `OTEL_RESOURCE_ATTRIBUTES` a etiquetas de punto de datos de métrica. Establezca en `false` para excluirlas (predeterminado: incluidas). Vea [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |493| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | A partir de v2.1.161, Claude Code adjunta claves `OTEL_RESOURCE_ATTRIBUTES` a etiquetas de puntos de datos de métricas. Establezca en `false` para excluirlas (predeterminado: incluidas). Consulte [Monitoreo](/docs/es/monitoring-usage#multi-team-organization-support) |

491| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establezca en `false` para excluir ID de sesión de atributos de métricas (predeterminado: incluido). Vea [Monitoreo](/docs/es/monitoring-usage) |494| `OTEL_METRICS_INCLUDE_SESSION_ID` | Establezca en `false` para excluir ID de sesión de atributos de métricas (predeterminado: incluido). Consulte [Monitoreo](/docs/es/monitoring-usage) |

492| `OTEL_METRICS_INCLUDE_VERSION` | Establezca en `true` para incluir la versión de Claude Code en atributos de métricas (predeterminado: excluido). Vea [Monitoreo](/docs/es/monitoring-usage) |495| `OTEL_METRICS_INCLUDE_VERSION` | Establezca en `true` para incluir la versión de Claude Code en atributos de métricas (predeterminado: excluido). Consulte [Monitoreo](/docs/es/monitoring-usage) |

493| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Anule el presupuesto de caracteres para metadatos de skill mostrados a la [herramienta Skill](/docs/es/skills#control-who-invokes-a-skill). El presupuesto se escala dinámicamente al 1% de la ventana de contexto, con un respaldo de 8,000 caracteres. Nombre heredado mantenido para compatibilidad hacia atrás |496| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Anule el presupuesto de caracteres para metadatos de skills mostrados a la [herramienta Skill](/docs/es/skills#control-who-invokes-a-skill). El presupuesto se escala dinámicamente al 1% de la ventana de contexto, con un respaldo de 8,000 caracteres. Nombre heredado mantenido para compatibilidad hacia atrás |

494| `TASK_MAX_OUTPUT_LENGTH` | Eliminado en v2.1.277 y ahora es un no-op, junto con la herramienta `TaskOutput` que dimensionaba. Anteriormente establecía el número máximo de caracteres de salida de una [tarea de fondo](/docs/es/tools-reference#background-commands) que la herramienta `TaskOutput` mantenía. Claude lee un archivo de salida de tarea de fondo con `Read` en su lugar |497| `TASK_MAX_OUTPUT_LENGTH` | Eliminado en v2.1.277 y ahora es un no-op, junto con la herramienta `TaskOutput` que dimensionaba. Anteriormente establecía el número máximo de caracteres de la salida de una [tarea de fondo](/docs/es/tools-reference#background-commands) que la herramienta `TaskOutput` mantenía. Claude lee el archivo de salida de una tarea de fondo con `Read` en su lugar |

495| `USE_BUILTIN_RIPGREP` | Establezca en `0` para usar `rg` instalado en el sistema en lugar de `rg` incluido con Claude Code |498| `USE_BUILTIN_RIPGREP` | Establezca en `0` para usar `rg` instalado en el sistema en lugar de `rg` incluido con Claude Code |

496| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Anule la región para Claude 3.5 Haiku cuando use Google Cloud's Agent Platform |499| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Anule la región para Claude 3.5 Haiku cuando use Google Cloud's Agent Platform |

497| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Anule la región para Claude 3.5 Sonnet cuando Use Google Cloud's Agent Platform |500| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Anule la región para Claude 3.5 Sonnet cuando use Google Cloud's Agent Platform |

498| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Anule la región para Claude 3.7 Sonnet cuando Use Google Cloud's Agent Platform |501| `VERTEX_REGION_CLAUDE_3_7_SONNET` | Anule la región para Claude 3.7 Sonnet cuando use Google Cloud's Agent Platform |

499| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Anule la región para Claude 4.0 Opus cuando Use Google Cloud's Agent Platform |502| `VERTEX_REGION_CLAUDE_4_0_OPUS` | Anule la región para Claude 4.0 Opus cuando use Google Cloud's Agent Platform |

500| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Anule la región para Claude 4.0 Sonnet cuando Use Google Cloud's Agent Platform |503| `VERTEX_REGION_CLAUDE_4_0_SONNET` | Anule la región para Claude 4.0 Sonnet cuando use Google Cloud's Agent Platform |

501| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Anule la región para Claude 4.1 Opus cuando Use Google Cloud's Agent Platform |504| `VERTEX_REGION_CLAUDE_4_1_OPUS` | Anule la región para Claude 4.1 Opus cuando use Google Cloud's Agent Platform |

502| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Anule la región para Claude Opus 4.5 cuando Use Google Cloud's Agent Platform |505| `VERTEX_REGION_CLAUDE_4_5_OPUS` | Anule la región para Claude Opus 4.5 cuando use Google Cloud's Agent Platform |

503| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Anule la región para Claude Sonnet 4.5 cuando Use Google Cloud's Agent Platform |506| `VERTEX_REGION_CLAUDE_4_5_SONNET` | Anule la región para Claude Sonnet 4.5 cuando use Google Cloud's Agent Platform |

504| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Anule la región para Claude Opus 4.6 cuando Use Google Cloud's Agent Platform |507| `VERTEX_REGION_CLAUDE_4_6_OPUS` | Anule la región para Claude Opus 4.6 cuando use Google Cloud's Agent Platform |

505| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Anule la región para Claude Sonnet 4.6 cuando Use Google Cloud's Agent Platform |508| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Anule la región para Claude Sonnet 4.6 cuando use Google Cloud's Agent Platform |

506| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Anule la región para Claude Opus 4.7 cuando Use Google Cloud's Agent Platform |509| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Anule la región para Claude Opus 4.7 cuando use Google Cloud's Agent Platform |

507| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Anule la región para Claude Opus 4.8 cuando Use Google Cloud's Agent Platform |510| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Anule la región para Claude Opus 4.8 cuando use Google Cloud's Agent Platform |

508| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Anule la región para Claude Opus 5.5 cuando Use Google Cloud's Agent Platform. Agregado en v2.1.280 |511| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Anule la región para Claude Opus 5.5 cuando use Google Cloud's Agent Platform. Agregado en v2.1.280 |

509| `VERTEX_REGION_CLAUDE_5_OPUS` | Anule la región para Claude Opus 5 cuando Use Google Cloud's Agent Platform. Agregado en v2.1.219 |512| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Anule la región para Claude Sonnet 5.5 cuando use Google Cloud's Agent Platform. Agregado en v2.1.284 |

510| `VERTEX_REGION_CLAUDE_5_SONNET` | Anule la región para Claude Sonnet 5 cuando Use Google Cloud's Agent Platform. Agregado en v2.1.197 |513| `VERTEX_REGION_CLAUDE_5_OPUS` | Anule la región para Claude Opus 5 cuando use Google Cloud's Agent Platform. Agregado en v2.1.219 |

511| `VERTEX_REGION_CLAUDE_FABLE_5` | Anule la región para Claude Fable 5 cuando Use Google Cloud's Agent Platform. Agregado en v2.1.170 |514| `VERTEX_REGION_CLAUDE_5_SONNET` | Anule la región para Claude Sonnet 5 cuando use Google Cloud's Agent Platform. Agregado en v2.1.197 |

512| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Anule la región para Claude Fable 5.1 cuando Use Google Cloud's Agent Platform. Agregado en v2.1.257 |515| `VERTEX_REGION_CLAUDE_FABLE_5` | Anule la región para Claude Fable 5 cuando use Google Cloud's Agent Platform. Agregado en v2.1.170 |

513| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Anule la región para Claude Haiku 4.5 cuando Use Google Cloud's Agent Platform |516| `VERTEX_REGION_CLAUDE_FABLE_5_1` | Anule la región para Claude Fable 5.1 cuando use Google Cloud's Agent Platform. Agregado en v2.1.257 |

514 517| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Anule la región para Claude Haiku 4.5 cuando use Google Cloud's Agent Platform |

515También se admiten variables de exportador OpenTelemetry estándar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, y variantes específicas de señal). Vea [Monitoreo](/docs/es/monitoring-usage) para detalles de configuración.518 

519También se admiten variables estándar del exportador de OpenTelemetry (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, y variantes específicas de señal). Consulte [Monitoreo](/docs/es/monitoring-usage) para detalles de configuración.

520 

521Establezca `CLAUDE_CODE_ENABLE_TELEMETRY` y las variables de OpenTelemetry que activan la exportación, eligen su destino, o capturan contenido en su shell, configuración de usuario, o configuración administrada. Claude Code [las ignora en configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env), aparte de los valores desactivados que esa sección describe. `OTEL_RESOURCE_ATTRIBUTES` y el intervalo de exportación, tiempo de espera, y variables de compresión, como `OTEL_METRIC_EXPORT_INTERVAL`, aún se aplican desde configuración de proyecto y local.

516 522 

517<h2 id="features-that-need-feature-flag-fetching">523<h2 id="features-that-need-feature-flag-fetching">

518 Características que necesitan obtención de banderas de características524 Características que necesitan obtención de banderas de características


526 532 

527Con la obtención desactivada, usted no puede:533Con la obtención desactivada, usted no puede:

528 534 

529* [Iniciar sesiones en modo automático de forma predeterminada](/docs/es/permission-modes#which-mode-a-session-starts-in) en planes Pro, Max y Team

530* Hacer que la extensión de VS Code [lea archivos de configuración para el modo de permiso inicial](/docs/es/permission-modes#switch-permission-modes)

531* Ejecutar [`/auto-mode-setup`](/docs/es/auto-mode-config#generate-environment-entries) para redactar entradas de `autoMode.environment`535* Ejecutar [`/auto-mode-setup`](/docs/es/auto-mode-config#generate-environment-entries) para redactar entradas de `autoMode.environment`

532* Usar [Control Remoto](/docs/es/remote-control#requirements)536* Usar [Control Remoto](/docs/es/remote-control) con `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK` establecidos. Para `DISABLE_TELEMETRY` y `DO_NOT_TRACK`, consulte los [requisitos de Control Remoto](/docs/es/remote-control#requirements)

533* [Enviar mensajes a sesiones más allá de esta máquina](/docs/es/cross-session-messaging#message-sessions-on-other-machines); la mensajería entre sesiones en esta máquina funciona con la obtención desactivada537* [Enviar mensajes a sesiones más allá de esta máquina](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cuando [Control Remoto](/docs/es/remote-control#requirements) no esté disponible. La mensajería entre sesiones en esta máquina funciona con la obtención desactivada

534* Ejecutar [`claude import` o el comando `/import`](/docs/es/cli-reference#cli-commands)538* Ejecutar [`claude import` o el comando `/import`](/docs/es/cli-reference#cli-commands)

535* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) o abrir su informe en la pestaña **Stats** de `/plugin`539* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) o abrir su informe en la pestaña **Stats** de `/plugin`

536* Sincronizar las [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins-reference#synced-plugins) habilitados para su cuenta de claude.ai en sus sesiones de terminal540* Sincronizar las [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para su cuenta de claude.ai en sus sesiones de terminal

537* Usar [la herramienta asesor](/docs/es/advisor#requirements)541* Usar [la herramienta asesor](/docs/es/advisor#requirements)

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

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


546 Primera sesión después de una instalación o actualización550 Primera sesión después de una instalación o actualización

547</h3>551</h3>

548 552 

549En su primera sesión después de instalar Claude Code, o actualizar a una versión que añade una característica, una [característica protegida por bandera](#features-that-need-feature-flag-fetching) puede estar ausente, y la sesión puede iniciarse en modo Manual en un plan que de otro modo se iniciaría en modo automático. Claude Code obtiene las banderas durante esa sesión, por lo que ambas están presentes en su próxima sesión.553En su primera sesión después de instalar Claude Code, o actualizar a una versión que añade una característica, una [característica protegida por bandera](#features-that-need-feature-flag-fetching) puede estar ausente. Esa sesión también puede iniciarse en un [modo de permiso](/docs/es/permission-modes#which-mode-a-session-starts-in) diferente al que sus sesiones posteriores hacen. Claude Code obtiene las banderas durante esa sesión, por lo que su próxima sesión tiene la característica y el modo de permiso inicial habitual.

550 554 

551Después de una instalación nueva, en una sesión no interactiva como `claude -p`, el SDK del Agent, o la extensión de VS Code, Claude Code aún puede obtener las banderas antes de [elegir el modo de permiso inicial](/docs/es/permission-modes#which-mode-a-session-starts-in).555Después de una instalación nueva, en una sesión no interactiva como `claude -p`, el SDK del Agent, o la extensión de VS Code, Claude Code aún puede obtener las banderas antes de [elegir el modo de permiso inicial](/docs/es/permission-modes#which-mode-a-session-starts-in).

552 556 

errors.md +444 −65

Details

8 8 

9Esta página enumera los errores en tiempo de ejecución que Claude Code muestra y cómo recuperarse de cada uno, además de qué verificar cuando las respuestas parecen estar mal sin un error. Para errores de instalación como `command not found` o fallos de TLS durante la configuración, consulte [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install).9Esta página enumera los errores en tiempo de ejecución que Claude Code muestra y cómo recuperarse de cada uno, además de qué verificar cuando las respuestas parecen estar mal sin un error. Para errores de instalación como `command not found` o fallos de TLS durante la configuración, consulte [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install).

10 10 

11Excepto por [Errores de Wrapper e IDE](#wrapper-and-ide-errors), que el programa de lanzamiento imprime en lugar de Claude Code en sí, estos errores y comandos de recuperación se aplican en toda la CLI, la [aplicación de escritorio](/docs/es/desktop) y [Claude Code en la web](/docs/es/claude-code-on-the-web), ya que los tres envuelven el mismo CLI de Claude Code. Para otros problemas específicos de la superficie, consulte la sección de solución de problemas en la página de esa superficie.11Excepto por [errores de Wrapper e IDE](#wrapper-and-ide-errors), que el programa de lanzamiento imprime en lugar de Claude Code mismo, estos errores y comandos de recuperación se aplican en toda la CLI, la [aplicación de escritorio](/docs/es/desktop) y [sesiones en la nube](/docs/es/claude-code-on-the-web), ya que los tres envuelven la misma CLI de Claude Code. Para otros problemas específicos de la superficie, consulte la sección de solución de problemas en la página de esa superficie.

12 12 

13<Note>13<Note>

14 Claude Code llama a la API de Claude para respuestas del modelo, por lo que la mayoría de los errores en tiempo de ejecución se asignan a un código de error de API subyacente. Esta página cubre lo que cada error significa dentro de Claude Code y cómo recuperarse. Para las definiciones de código de estado HTTP sin procesar, consulte la [referencia de errores de la plataforma Claude](https://platform.claude.com/docs/en/api/errors).14 Claude Code llama a la API de Claude para respuestas del modelo, por lo que la mayoría de los errores en tiempo de ejecución se asignan a un código de error de API subyacente. Esta página cubre lo que cada error significa dentro de Claude Code y cómo recuperarse. Para las definiciones de código de estado HTTP sin procesar, consulte la [referencia de errores de la plataforma Claude](https://platform.claude.com/docs/en/api/errors).


24| :- | :- |24| :- | :- |

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

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

27| `Opus is experiencing high load` / `Fable is experiencing high load` | [Errores del servidor](#api-error-repeated-529-overloaded-errors) |

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

28| `API Error: No response from API` | [Errores del servidor](#no-response-from-api) |29| `API Error: No response from API` | [Errores del servidor](#no-response-from-api) |

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

30| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Errores del servidor](#the-response-above-may-be-incomplete) |31| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Errores del servidor](#the-response-above-may-be-incomplete) |

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

33| `Part of the response never arrived` / `The response stream was malformed` | [Errores del servidor](#the-response-above-may-be-incomplete) |

34| `API Error: Content block not found` / `API Error: Content block already closed` / `API Error: Stream event unreadable` | [Errores del servidor](#the-response-above-may-be-incomplete) |

32| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Reintentos automáticos](#automatic-retries) |35| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Reintentos automáticos](#automatic-retries) |

33| `Connection closed while thinking` / `Response stalled while thinking` | [Reintentos automáticos](#automatic-retries) |36| `Connection closed while thinking` / `Response stalled while thinking` | [Reintentos automáticos](#automatic-retries) |

34| `Connection lost while your computer was asleep` | [Reintentos automáticos](#automatic-retries) |37| `Connection lost while your computer was asleep` | [Reintentos automáticos](#automatic-retries) |


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

50| `spend limit reached` / `spend limit unavailable` | [Límites de uso](#spend-limit-reached) |53| `spend limit reached` / `spend limit unavailable` | [Límites de uso](#spend-limit-reached) |

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

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

56| `Authentication required · Sign in again to continue` | [Autenticación](#not-logged-in) |

52| `Could not resolve authentication method` | [Autenticación](#could-not-resolve-authentication-method) |57| `Could not resolve authentication method` | [Autenticación](#could-not-resolve-authentication-method) |

53| `Invalid API key` | [Autenticación](#invalid-api-key) |58| `Invalid API key` | [Autenticación](#invalid-api-key) |

54| `Your apiKeyHelper script is failing` | [Autenticación](#your-apikeyhelper-script-is-failing) |59| `Your apiKeyHelper script is failing` | [Autenticación](#your-apikeyhelper-script-is-failing) |


69| `signed-in claude.ai account or organization changed on this machine` | [Autenticación](#remote-control-stopped-because-the-signed-in-account-changed) |74| `signed-in claude.ai account or organization changed on this machine` | [Autenticación](#remote-control-stopped-because-the-signed-in-account-changed) |

70| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |75| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

71| `Remote Control stopped — the app running this session is signed out of Claude` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |76| `Remote Control stopped — the app running this session is signed out of Claude` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Couldn't verify your organization's policy for remote control` | [Solucionar problemas de Remote Control](/docs/es/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |

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

73| `API Error: 401 Invalid authentication credentials` | [Autenticación](#api-error-401-invalid-authentication-credentials) |79| `API Error: 401 Invalid authentication credentials` | [Autenticación](#api-error-401-invalid-authentication-credentials) |

74| `Login expired · Please run /login` | [Autenticación](#login-expired) |80| `Login expired · Please run /login` | [Autenticación](#login-expired) |


77| `Not signed in to the Cloud gateway — run /login.` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |83| `Not signed in to the Cloud gateway — run /login.` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |

78| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |84| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |

79| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Autenticación](#login-expired) |85| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Autenticación](#login-expired) |

86| `Could not refresh your login because another Claude Code process is refreshing it` | [Autenticación](#could-not-refresh-your-login) |

87| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Autenticación](#could-not-refresh-your-login) |

80| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticación](#your-account-is-on-hold) |88| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticación](#your-account-is-on-hold) |

81| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticación](#your-account-is-on-hold) |89| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Autenticación](#your-account-is-on-hold) |

82| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Autenticación](#anthropic-profile-login-expired) |90| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Autenticación](#anthropic-profile-login-expired) |


120| `Couldn't reconnect to your Remote Control session` | [Red](#couldnt-reconnect-to-your-remote-control-session) |128| `Couldn't reconnect to your Remote Control session` | [Red](#couldnt-reconnect-to-your-remote-control-session) |

121| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Red](#sessions-ended-while-this-machine-was-offline) |129| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Red](#sessions-ended-while-this-machine-was-offline) |

122| `Couldn't share the transcript.` | [Red](#couldnt-share-the-transcript) |130| `Couldn't share the transcript.` | [Red](#couldnt-share-the-transcript) |

131| `Couldn't send feedback` | [Red](#couldnt-send-feedback) |

123| `Prompt is too long` / `Input is too long for requested model` | [Errores de solicitud](#prompt-is-too-long) |132| `Prompt is too long` / `Input is too long for requested model` | [Errores de solicitud](#prompt-is-too-long) |

124| `Prompt is too long · automatic compaction failed:` | [Errores de solicitud](#prompt-is-too-long) |133| `Prompt is too long · automatic compaction failed:` | [Errores de solicitud](#prompt-is-too-long) |

125| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Errores de solicitud](#prompt-is-too-long) |134| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Errores de solicitud](#prompt-is-too-long) |


139| `PDF too large` / `PDF is password protected` | [Errores de solicitud](#pdf-errors) |148| `PDF too large` / `PDF is password protected` | [Errores de solicitud](#pdf-errors) |

140| `Extra inputs are not permitted` | [Errores de solicitud](#extra-inputs-are-not-permitted) |149| `Extra inputs are not permitted` | [Errores de solicitud](#extra-inputs-are-not-permitted) |

141| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Errores de solicitud](#tool-input-schema-is-invalid) |150| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Errores de solicitud](#tool-input-schema-is-invalid) |

151| `tool_use.name: String should have at most 200 characters` | [Errores de solicitud](#tool-use-name-over-200-characters) |

142| `There's an issue with the selected model` | [Errores de solicitud](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [Errores de solicitud](#theres-an-issue-with-the-selected-model) |

143| `Model ... is not a recognized model id` | [Errores de solicitud](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [Errores de solicitud](#model-is-not-a-recognized-model-id) |

144| `Model ... not found` | [Errores de solicitud](#model-not-found) |154| `Model ... not found` | [Errores de solicitud](#model-not-found) |

155| `API error: ... · model not changed` | [Errores de solicitud](#api-error-model-not-changed) |

145| `Claude Opus is not available with the Claude Pro plan` | [Errores de solicitud](#claude-opus-is-not-available-with-the-claude-pro-plan) |156| `Claude Opus is not available with the Claude Pro plan` | [Errores de solicitud](#claude-opus-is-not-available-with-the-claude-pro-plan) |

146| `Claude Code ... does not support this model; version ... or newer is required` | [Errores de solicitud](#claude-code-does-not-support-this-model) |157| `Claude Code ... does not support this model; version ... or newer is required` | [Errores de solicitud](#claude-code-does-not-support-this-model) |

147| `Claude Code ... is older than the minimum version required by your organization's policy` | [Errores de solicitud](#claude-code-does-not-support-this-model) |158| `Claude Code ... is older than the minimum version required by your organization's policy` | [Errores de solicitud](#claude-code-does-not-support-this-model) |

148| `Model ... is restricted by your organization's settings` | [Errores de solicitud](#model-is-restricted-by-your-organizations-settings) |159| `Model ... is restricted by your organization's settings` | [Errores de solicitud](#model-is-restricted-by-your-organizations-settings) |

160| `Model ... is not available. Your organization restricts model selection.` | [Errores de solicitud](#model-is-restricted-by-your-organizations-settings) |

149| `Model switch ... blocked by a PreModelSwitch hook` | [Errores de solicitud](#model-switch-was-blocked-by-a-premodelswitch-hook) |161| `Model switch ... blocked by a PreModelSwitch hook` | [Errores de solicitud](#model-switch-was-blocked-by-a-premodelswitch-hook) |

150| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Errores de solicitud](#couldnt-save-it-as-your-default) |162| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Errores de solicitud](#couldnt-save-it-as-your-default) |

151| `thinking.type.enabled is not supported for this model` | [Errores de solicitud](#thinking-type-enabled-is-not-supported-for-this-model) |163| `thinking.type.enabled is not supported for this model` | [Errores de solicitud](#thinking-type-enabled-is-not-supported-for-this-model) |


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

156| `API Error: 400 orphaned tool_result in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |168| `API Error: 400 orphaned tool_result in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

157| `API Error: 400 duplicate tool_use ID in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |169| `API Error: 400 duplicate tool_use ID in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

170| `Invalid data in redacted_thinking block` | [Errores de solicitud](#invalid-data-in-redacted-thinking-block) |

158| `[Unsupported tool content removed]` | [Errores de solicitud](#unsupported-tool-content-removed) |171| `[Unsupported tool content removed]` | [Errores de solicitud](#unsupported-tool-content-removed) |

159| `role 'system' must precede an 'assistant' message` | [Errores de solicitud](#role-system-must-precede-an-assistant-message) |172| `role 'system' must precede an 'assistant' message` | [Errores de solicitud](#role-system-must-precede-an-assistant-message) |

160| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |173| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |

174| `Invalid encrypted_stdout in encrypted_code_execution_result block` | [Errores de solicitud](#invalid-encrypted-content-in-search-result-block) |

161| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errores de solicitud](#unsupported-tool-content-removed) |175| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errores de solicitud](#unsupported-tool-content-removed) |

162| `<model> can't help with this. Start a new session to continue` | [Errores de solicitud](#usage-policy-refusal) |176| `<model> can't help with this. Start a new session to continue` | [Errores de solicitud](#usage-policy-refusal) |

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

164| `<model>'s safeguards flagged this message` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |178| `<model>'s safeguards flagged this message` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

165| `Opus 5.5's safeguards flagged this session` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |179| `<model>'s safeguards flagged this session` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

166| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |180| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

167| `Installation was killed before it could finish (exit code 137)` | [Errores de instalación](#installation-was-killed-before-it-could-finish) |181| `Installation was killed before it could finish (exit code 137)` | [Errores de instalación](#installation-was-killed-before-it-could-finish) |

168| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |182| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |


173| `Couldn't verify your organization's policy for cloud sessions` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |187| `Couldn't verify your organization's policy for cloud sessions` | [Errores de línea de comandos](#cloud-sessions-are-disabled-by-your-organizations-policy) |

174| `Error: --json-schema is not a valid JSON Schema` | [Errores de línea de comandos](#command-line-errors) |188| `Error: --json-schema is not a valid JSON Schema` | [Errores de línea de comandos](#command-line-errors) |

175| `Error: Invalid --agents configuration:` | [Errores de línea de comandos](#invalid-agents-configuration) |189| `Error: Invalid --agents configuration:` | [Errores de línea de comandos](#invalid-agents-configuration) |

190| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Errores de línea de comandos](#invalid-agents-configuration) |

191| `Error: --agents file not found` | [Errores de línea de comandos](#invalid-agents-configuration) |

176| `Error: Settings file exceeds the 2MiB limit` | [Errores de línea de comandos](#settings-file-exceeds-the-2mib-limit) |192| `Error: Settings file exceeds the 2MiB limit` | [Errores de línea de comandos](#settings-file-exceeds-the-2mib-limit) |

177| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Errores de línea de comandos](#the-current-directory-no-longer-exists) |193| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Errores de línea de comandos](#the-current-directory-no-longer-exists) |

178| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Errores de línea de comandos](#temp-directory-refused-or-cannot-be-created) |194| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Errores de línea de comandos](#temp-directory-refused-or-cannot-be-created) |


207| `Single sign-on authorization needed` | [Errores de línea de comandos](#single-sign-on-authorization-needed) |223| `Single sign-on authorization needed` | [Errores de línea de comandos](#single-sign-on-authorization-needed) |

208| `Failed to resume the conversation` | [Errores de línea de comandos](#failed-to-resume-the-conversation) |224| `Failed to resume the conversation` | [Errores de línea de comandos](#failed-to-resume-the-conversation) |

209| `No conversation found with session ID: <session-id>` | [Errores de línea de comandos](#no-conversation-found-with-the-session-id) |225| `No conversation found with session ID: <session-id>` | [Errores de línea de comandos](#no-conversation-found-with-the-session-id) |

226| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [Errores de línea de comandos](#windows-reported-an-error-ebadf) |

210| `Cannot switch renderers in this session` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |227| `Cannot switch renderers in this session` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |

211| `Cannot switch renderers while work is running in the background` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |228| `Cannot switch renderers while work is running in the background` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |

212| `Couldn't open Claude Desktop` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |229| `Couldn't open Claude Desktop` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |


218| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |235| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

219| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errores de plugins](#plugin-eval-is-currently-in-early-access) |236| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errores de plugins](#plugin-eval-is-currently-in-early-access) |

220| `Marketplace "<name>" is registered from an untrusted source` | [Errores de plugins](#marketplace-is-registered-from-an-untrusted-source) |237| `Marketplace "<name>" is registered from an untrusted source` | [Errores de plugins](#marketplace-is-registered-from-an-untrusted-source) |

238| `Claude Code refuses the marketplace name "<name>"` | [Errores de plugins](#claude-code-refuses-the-marketplace-name) |

239| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Errores de plugins](#claude-code-refuses-the-marketplace-name) |

221| `Marketplace "<name>" is already added from a different source` | [Errores de plugins](#marketplace-is-already-added-from-a-different-source) |240| `Marketplace "<name>" is already added from a different source` | [Errores de plugins](#marketplace-is-already-added-from-a-different-source) |

222| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Errores de plugins](#marketplace-name-is-another-spelling-of-a-reserved-name) |241| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Errores de plugins](#marketplace-name-is-another-spelling-of-a-reserved-name) |

223| `references ${user_config.*} in a shell-form command` | [Errores de plugins](#plugin-command-references-user-config) |242| `references ${user_config.*} in a shell-form command` | [Errores de plugins](#plugin-command-references-user-config) |


231| `Failed to load marketplace configuration` | [Errores de plugins](#failed-to-load-marketplace-configuration) |250| `Failed to load marketplace configuration` | [Errores de plugins](#failed-to-load-marketplace-configuration) |

232| `Marketplace configuration file is corrupted` | [Errores de plugins](#failed-to-load-marketplace-configuration) |251| `Marketplace configuration file is corrupted` | [Errores de plugins](#failed-to-load-marketplace-configuration) |

233| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Errores de plugins](#plugin-is-required-by-your-organization) |252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Errores de plugins](#plugin-is-required-by-your-organization) |

253| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Errores de plugins](#plugin-was-not-uninstalled) |

254| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Errores de plugins](#plugin-was-not-uninstalled) |

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

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

257| `cannot contain null bytes (\0)` | [Errores de herramientas](#path-cannot-contain-null-bytes) |

258| `Path contains null bytes` | [Errores de herramientas](#path-cannot-contain-null-bytes) |

236| `subagent_type is required: the general-purpose agent is not available in this session` | [Errores de herramientas](#subagent-type-is-required) |259| `subagent_type is required: the general-purpose agent is not available in this session` | [Errores de herramientas](#subagent-type-is-required) |

237| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Errores de herramientas](#memory-index-is-over-its-read-limit) |260| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Errores de herramientas](#memory-index-is-over-its-read-limit) |

238| `pkill: refusing to run` | [Errores de herramientas](#pkill-pattern-matches-the-claude-code-process) |261| `pkill: refusing to run` | [Errores de herramientas](#pkill-pattern-matches-the-claude-code-process) |


248| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [Errores de herramientas](#refusing-after-a-symlink-changed) |271| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [Errores de herramientas](#refusing-after-a-symlink-changed) |

249| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [Errores de herramientas](#refusing-after-a-symlink-changed) |272| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [Errores de herramientas](#refusing-after-a-symlink-changed) |

250| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [Errores de herramientas](#refusing-after-a-symlink-changed) |273| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [Errores de herramientas](#refusing-after-a-symlink-changed) |

274| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Errores de herramientas](#refusing-after-a-symlink-changed) |

251| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Errores de herramientas](#refusing-after-a-symlink-changed) |275| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Errores de herramientas](#refusing-after-a-symlink-changed) |

252| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Errores de herramientas](#refusing-after-a-symlink-changed) |276| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Errores de herramientas](#refusing-after-a-symlink-changed) |

253| `task output swap refused (tasks dir moved or linked)` | [Errores de herramientas](#task-output-swap-refused) |277| `task output swap refused (tasks dir moved or linked)` | [Errores de herramientas](#task-output-swap-refused) |

254| `Command killed: its output file was replaced or could no longer be verified` | [Errores de herramientas](#task-output-swap-refused) |278| `Command killed: its output file was replaced or could no longer be verified` | [Errores de herramientas](#task-output-swap-refused) |

279| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

280| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

281| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Errores de herramientas](#disk-quota-or-temp-filesystem-is-full) |

255| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |282| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |

256| `the source file has the replacement character U+FFFD` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |283| `the source file has the replacement character U+FFFD` | [Errores de herramientas](#the-source-file-is-not-valid-utf-8-text) |

257| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Errores de herramientas](#reading-a-local-file-from-outside-the-connected-folders) |284| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Errores de herramientas](#reading-a-local-file-from-outside-the-connected-folders) |


279| `EACCES: permission denied, posix_spawn` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |306| `EACCES: permission denied, posix_spawn` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |

280| `exited before it became reachable` | [Errores de sesión en segundo plano](#background-service-exited-before-it-became-reachable) |307| `exited before it became reachable` | [Errores de sesión en segundo plano](#background-service-exited-before-it-became-reachable) |

281| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Errores de sesión en segundo plano](#working-directory-no-longer-exists-when-starting-a-background-session) |308| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Errores de sesión en segundo plano](#working-directory-no-longer-exists-when-starting-a-background-session) |

309| `Workspace not trusted.` when starting or restarting a background session | [Errores de sesión en segundo plano](#workspace-not-trusted-when-dispatching-a-background-session) |

282| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |310| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Errores de sesión en segundo plano](#eacces-when-starting-a-background-session) |

283| `Claude Code process exited with code N` | [Errores de contenedor e IDE](#claude-code-process-exited-with-code-n) |311| `Claude Code process exited with code N` | [Errores de contenedor e IDE](#claude-code-process-exited-with-code-n) |

284| `The connection to Claude Code ended before this message completed` | [Errores de contenedor e IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |312| `The connection to Claude Code ended before this message completed` | [Errores de contenedor e IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |


291| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Advertencias de configuración](#fullscreen-failed-start-notice) |319| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Advertencias de configuración](#fullscreen-failed-start-notice) |

292| `Claude Code exited after an unrecoverable interface error (...)` | [Advertencias de configuración](#exited-after-an-unrecoverable-interface-error) |320| `Claude Code exited after an unrecoverable interface error (...)` | [Advertencias de configuración](#exited-after-an-unrecoverable-interface-error) |

293| `Agent descriptions are over the 15.0k-token limit` | [Advertencias de configuración](#agent-descriptions-are-over-the-15000-token-limit) |321| `Agent descriptions are over the 15.0k-token limit` | [Advertencias de configuración](#agent-descriptions-are-over-the-15000-token-limit) |

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

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

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

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

297| `Managed settings were not approved; exiting without applying them.` | [Advertencias de configuración](#managed-settings-were-not-approved) |326| `Managed settings were not approved; exiting without applying them.` | [Advertencias de configuración](#managed-settings-were-not-approved) |

327| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Advertencias de configuración](#managed-settings-block-the-default-model) |

298| `MCP server <name> is blocked by enterprise managed policy` | [Advertencias de configuración](#mcp-server-is-blocked-by-enterprise-managed-policy) |328| `MCP server <name> is blocked by enterprise managed policy` | [Advertencias de configuración](#mcp-server-is-blocked-by-enterprise-managed-policy) |

299| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |329| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |

300| `Managed settings drop-in directory could not be read` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |330| `Managed settings drop-in directory could not be read` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |


390 420 

391La oración final indica dónde verificar la salud del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor. Un `ANTHROPIC_BASE_URL` personalizado nombra el host de la puerta de enlace.421La oración final indica dónde verificar la salud del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor. Un `ANTHROPIC_BASE_URL` personalizado nombra el host de la puerta de enlace.

392 422 

393Esto indica un fallo inesperado dentro de la API. No es causado por su prompt, configuración o cuenta.423Un 5xx de la API en sí indica un fallo inesperado dentro de la API. No es causado por su prompt, configuración o cuenta.

424 

425Cuando un proxy, equilibrador de carga o puerta de enlace responde con una página de error HTML, el mensaje muestra el código de estado y el título de la página, como `API Error: 502 Bad Gateway`. Para una página sin título, el mensaje muestra el código de estado y su nombre estándar en su lugar. Antes de v2.1.281, el código de estado se eliminaba cuando la página tenía un título, y el marcado sin procesar de la página se imprimía cuando no tenía ninguno.

394 426 

395**Qué hacer:**427**Qué hacer:**

396 428 


416 448 

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

418* Intente de nuevo en unos minutos450* Intente de nuevo en unos minutos

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

452 

453 En una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, el mensaje dice `Opus is experiencing high load. Switch to Sonnet.` y cambia modelos con el selector de modelos de la aplicación.

420 454 

421<h3 id="request-timed-out">455<h3 id="request-timed-out">

422 Request timed out456 Request timed out


474API Error: Connection lost mid-response. The response above may be incomplete.508API Error: Connection lost mid-response. The response above may be incomplete.

475API Error: Your computer went to sleep mid-response. The response above may be incomplete.509API Error: Your computer went to sleep mid-response. The response above may be incomplete.

476API Error: The response stopped arriving. The response above may be incomplete.510API Error: The response stopped arriving. The response above may be incomplete.

511API Error: Part of the response never arrived. The response above may be incomplete.

512API Error: The response stream was malformed. The response above may be incomplete.

477```513```

478 514 

479* `Server error mid-response`: un error de servidor sobrecargado o 5xx a mitad de la transmisión. Esta variante requiere Claude Code v2.1.199 o posterior; antes de eso, ese caso descartaba la salida parcial e informaba todo el turno como un error.515* `Server error mid-response`: un error de servidor sobrecargado o 5xx a mitad de la transmisión. Esta variante requiere Claude Code v2.1.199 o posterior; antes de eso, ese caso descartaba la salida parcial e informaba todo el turno como un error.

480* `Connection lost mid-response`: la conexión se perdió.516* `Connection lost mid-response`: la conexión se perdió. También ve esta variante cuando un proxy o puerta de enlace termina el cuerpo de la respuesta limpiamente antes de que la respuesta haya terminado.

481* `Your computer went to sleep mid-response`: Claude Code detectó que su computadora se durmió mientras la respuesta se transmitía. Una vez que su computadora se despierte, Claude Code trata la conexión como rota y deja de leer de ella.517* `Your computer went to sleep mid-response`: Claude Code detectó que su computadora se durmió mientras la respuesta se transmitía. Una vez que su computadora se despierte, Claude Code trata la conexión como rota y deja de leer de ella.

518* `Part of the response never arrived`: un evento de transmisión se perdió entre la API y Claude Code, por lo que un evento posterior hizo referencia a contenido que nunca llegó. Antes de v2.1.281, este caso terminaba el turno con `API Error: Content block not found`.

519* `The response stream was malformed`: un evento llegó para un bloque de contenido que ya había terminado, o un evento llegó dañado. Un evento dañado es uno cuyos datos no son JSON válido, cuyo contenido falta, o cuyo contenido no coincide con el tipo del evento. Antes de v2.1.284, el error sin procesar del analizador, como uno que comienza con `API Error: JSON Parse error`, aparecía en su lugar cuando un evento con JSON inválido llegaba después de que Claude había completado su pensamiento, un bloque de texto, o una llamada de herramienta.

482* `The response stopped arriving`: la conexión se mantuvo abierta pero dejó de entregar datos, por lo que el vigilante de inactividad de transmisión la abortó. Antes de v2.1.222, Claude Code también podría informar este fallo en conexiones de [gateway](/docs/es/gateways) alcanzadas a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` mientras los pings de keep-alive del servidor aún llegaban, porque contaba solo eventos de respuesta analizados allí; actualizar detiene esos tiempos de espera espurios en esas rutas. Las puertas de enlace alcanzadas a través de una URL base de proveedor como `ANTHROPIC_BEDROCK_BASE_URL` no están envueltas por el vigilante de bytes; consulte [Streaming idle watchdogs](/docs/es/network-config#streaming-idle-watchdogs).520* `The response stopped arriving`: la conexión se mantuvo abierta pero dejó de entregar datos, por lo que el vigilante de inactividad de transmisión la abortó. Antes de v2.1.222, Claude Code también podría informar este fallo en conexiones de [gateway](/docs/es/gateways) alcanzadas a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL` mientras los pings de keep-alive del servidor aún llegaban, porque contaba solo eventos de respuesta analizados allí; actualizar detiene esos tiempos de espera espurios en esas rutas. Las puertas de enlace alcanzadas a través de una URL base de proveedor como `ANTHROPIC_BEDROCK_BASE_URL` no están envueltas por el vigilante de bytes; consulte [Streaming idle watchdogs](/docs/es/network-config#streaming-idle-watchdogs).

483 521 

484Antes de v2.1.227, `Connection lost mid-response` decía `Connection closed mid-response` y `The response stopped arriving` decía `Response stalled mid-stream`.522Antes de v2.1.227, `Connection lost mid-response` decía `Connection closed mid-response` y `The response stopped arriving` decía `Response stalled mid-stream`.

485 523 

524Cuando un evento de transmisión perdido, duplicado o dañado llega antes de que Claude haya comenzado cualquier texto o llamada de herramienta, no ve este aviso:

525 

526* Si Claude había completado solo su pensamiento, Claude Code reemite la solicitud. Cuando los reemitidos se rompen de la misma manera, el turno termina con `Part of the response never arrived and no response was produced. Try again.` o `The response stream was malformed and no response was produced. Try again.`

527* Si nada había completado, Claude Code reenvía la solicitud sin transmisión en su lugar. Si desactivó ese respaldo con [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/es/env-vars), el turno termina con `API Error: Content block not found` para un evento perdido o `API Error: Content block already closed` para uno duplicado. Para un evento dañado con el respaldo desactivado, el turno termina con `API Error: Stream event unreadable` o el error sin procesar del analizador.

528 

486En cuatro casos, Claude Code maneja el fallo sin mostrar este aviso de inmediato:529En cuatro casos, Claude Code maneja el fallo sin mostrar este aviso de inmediato:

487 530 

488* Anteriormente en la respuesta, Claude Code reintenta el fallo o termina el turno con un error diferente. Consulte [Automatic retries](#automatic-retries).531* Anteriormente en la respuesta, Claude Code reintenta el fallo o termina el turno con un error diferente. Consulte [Automatic retries](#automatic-retries).


668API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context711API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context

669```712```

670 713 

714En una sesión que ejecuta la aplicación Claude Desktop, el aviso no nombra comandos: apunta a la página de configuración de uso de claude.ai, o en planes Team y Enterprise dice que active los créditos de uso en claude.ai/admin-settings/usage o que pida a su administrador.

715 

671Esta es una verificación de derechos, no un agotamiento de cuota. Se activa incluso cuando sus asignaciones de sesión y semanales tienen capacidad restante. Consulte [Extended context](/docs/es/model-config#extended-context) para ver qué planes incluyen contexto de 1M directamente y cuáles requieren créditos de uso. Claude Code ejecuta esta verificación cuando elige el modelo con `/model`, y solo en una conexión directa a la API de Anthropic; si apunta `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway), `/model` permite la selección `[1m]` y la puerta de enlace decide si la solicitud tiene éxito.716Esta es una verificación de derechos, no un agotamiento de cuota. Se activa incluso cuando sus asignaciones de sesión y semanales tienen capacidad restante. Consulte [Extended context](/docs/es/model-config#extended-context) para ver qué planes incluyen contexto de 1M directamente y cuáles requieren créditos de uso. Claude Code ejecuta esta verificación cuando elige el modelo con `/model`, y solo en una conexión directa a la API de Anthropic; si apunta `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway), `/model` permite la selección `[1m]` y la puerta de enlace decide si la solicitud tiene éxito.

672 717 

673Cuando este error aparece a mitad de la conversación porque el contexto creció más allá de 200K tokens, Claude Code compacta automáticamente la conversación nuevamente bajo el límite de contexto estándar y mantiene la sesión en ese límite después, por lo que no se requiere acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior, incluida `/compact`; ejecute `/clear` en esas versiones para recuperarse. Los pasos a continuación se aplican cuando seleccionó explícitamente un modelo `[1m]`.718Cuando este error aparece a mitad de la conversación porque el contexto creció más allá de 200K tokens, Claude Code compacta automáticamente la conversación nuevamente bajo el límite de contexto estándar y mantiene la sesión en ese límite después, por lo que no se requiere acción. En versiones anteriores a v2.1.172, el error se repetía en cada solicitud posterior, incluida `/compact`; ejecute `/clear` en esas versiones para recuperarse. Los pasos a continuación se aplican cuando seleccionó explícitamente un modelo `[1m]`.


733 778 

734La oración final nombra dónde verificar el estado del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor en lugar de la página de estado de Anthropic. Un `ANTHROPIC_BASE_URL` personalizado nombra el host de la puerta de enlace.779La oración final nombra dónde verificar el estado del servicio y varía según el proveedor. Las configuraciones de Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry nombran el estado del servicio de ese proveedor en lugar de la página de estado de Anthropic. Un `ANTHROPIC_BASE_URL` personalizado nombra el host de la puerta de enlace.

735 780 

781Cuando un proxy, equilibrador de carga o puerta de enlace entre Claude Code y la API responde con su propia página HTML 429, el texto después del `·` es el título de esa página cuando tiene uno, como `Too Many Requests`. Antes de v2.1.281, el marcado completo de la página se imprimía después del `·`.

782 

736**Qué hacer:**783**Qué hacer:**

737 784 

738* Ejecute `/status` y confirme que la credencial activa es la que espera. Un `ANTHROPIC_API_KEY` extraviado en su entorno puede enrutar solicitudes a través de una clave de nivel bajo en lugar de su suscripción.785* Ejecute `/status` y confirme que la credencial activa es la que espera. Un `ANTHROPIC_API_KEY` extraviado en su entorno puede enrutar solicitudes a través de una clave de nivel bajo en lugar de su suscripción.


839Not logged in · Please run /login886Not logged in · Please run /login

840```887```

841 888 

889En una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, el mensaje dice `Authentication required · Sign in again to continue`, e inicia sesión nuevamente desde la aplicación.

890 

842**Qué hacer:**891**Qué hacer:**

843 892 

844* Ejecute `/login` para autenticarse con su suscripción de Claude o su cuenta de Console893* Ejecute `/login` para autenticarse con su suscripción de Claude o su cuenta de Console


985Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead1034Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead

986Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account1035Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account

987Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account1036Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

1037Your organization has disabled API key authentication · Sign in again with your claude.ai account

988```1038```

989 1039 

1040La última forma aparece en una sesión que ejecuta la aplicación Claude Desktop, como la pestaña Code o Cowork, donde inicia sesión nuevamente desde la aplicación.

1041 

990Las variables de entorno y `apiKeyHelper` tienen precedencia sobre `/login`, por lo que ejecutar `/login` solo no ayuda mientras cualquiera de ellas siga suministrando una clave. Consulte [Precedencia de autenticación](/docs/es/authentication#authentication-precedence).1042Las variables de entorno y `apiKeyHelper` tienen precedencia sobre `/login`, por lo que ejecutar `/login` solo no ayuda mientras cualquiera de ellas siga suministrando una clave. Consulte [Precedencia de autenticación](/docs/es/authentication#authentication-precedence).

991 1043 

992**Qué hacer:**1044**Qué hacer:**


1203* En modo no interactivo, ejecute `claude` en el mismo entorno, complete `/login`, luego reejecutar su comando. Para automatización que no puede iniciar sesión interactivamente, autentíquese con `ANTHROPIC_API_KEY` o [genere un token de larga duración con `claude setup-token`](/docs/es/authentication#generate-a-long-lived-token).1255* En modo no interactivo, ejecute `claude` en el mismo entorno, complete `/login`, luego reejecutar su comando. Para automatización que no puede iniciar sesión interactivamente, autentíquese con `ANTHROPIC_API_KEY` o [genere un token de larga duración con `claude setup-token`](/docs/es/authentication#generate-a-long-lived-token).

1204* Si iniciar sesión sigue fallando, consulte [Inicio de sesión y autenticación](/docs/es/troubleshoot-install#login-and-authentication)1256* Si iniciar sesión sigue fallando, consulte [Inicio de sesión y autenticación](/docs/es/troubleshoot-install#login-and-authentication)

1205 1257 

1258<h3 id="could-not-refresh-your-login">

1259 No se pudo actualizar su inicio de sesión porque otro proceso de Claude Code lo está actualizando

1260</h3>

1261 

1262Este mensaje no significa que su inicio de sesión fue rechazado. Su inicio de sesión guardado de claude.ai había expirado y necesitaba renovación. Otro proceso de Claude Code en la misma máquina mantenía el bloqueo de actualización compartido, o salió y lo dejó atrás, y la actualización no hizo progreso mientras esta sesión esperaba. Claude Code detiene la solicitud antes de enviarla:

1263 

1264```text theme={null}

1265Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1266```

1267 

1268En [modo no interactivo](/docs/es/headless) (`-p`) y [Agent SDK](/docs/es/agent-sdk/overview), el mensaje se lee de la siguiente manera, y el código de error estructurado es `server_error`:

1269 

1270```text theme={null}

1271Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1272```

1273 

1274Las sesiones autenticadas con una clave API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/es/env-vars), o un proveedor de terceros no usan el inicio de sesión guardado y nunca ven este mensaje.

1275 

1276**Qué hacer:**

1277 

1278* Intente nuevamente en un minuto. Si otro proceso completa la actualización primero, esta sesión usa el inicio de sesión renovado.

1279* Si el mensaje sigue apareciendo, cierre otras ventanas y procesos de Claude Code, luego reintente.

1280* Si aparece sin ningún otro proceso de Claude Code ejecutándose, ejecute `/login`. Iniciar sesión nuevamente no espera en el bloqueo de actualización.

1281 

1282<h3 id="couldnt-save-your-login">

1283 No se pudo guardar su inicio de sesión

1284</h3>

1285 

1286Inició sesión con claude.ai, pero Claude Code no pudo guardar el inicio de sesión en su almacén de credenciales, por lo que el inicio de sesión no se completó. En macOS esto puede suceder cuando el llavero de inicio de sesión se bloquea, por ejemplo en suspensión o inactividad, después de que Claude Code ya ha leído o guardado credenciales en él durante la misma sesión.

1287 

1288```text theme={null}

1289Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1290Couldn't save your login. Try logging in again.

1291```

1292 

1293La primera forma aparece en macOS y la segunda en todas partes. Un fallo transitorio del almacén de credenciales, como un tiempo de espera o un almacén ilegible, produce el mismo mensaje.

1294 

1295**Qué hacer:**

1296 

1297* En macOS, desbloquee el llavero de inicio de sesión, luego ejecute `/login` nuevamente

1298* En otras plataformas, ejecute `/login` nuevamente

1299* Si el inicio de sesión aún no se guarda, consulte [No ha iniciado sesión o el token ha expirado](/docs/es/troubleshoot-install#not-logged-in-or-token-expired) para el comando de desbloqueo del llavero y otros pasos de recuperación del almacenamiento de credenciales

1300 

1206<h3 id="claude-login-not-accepted">1301<h3 id="claude-login-not-accepted">

1207 Inicio de sesión de Claude no aceptado1302 Inicio de sesión de Claude no aceptado

1208</h3>1303</h3>


1251 1346 

1252Las solicitudes de modelo fallan con este mensaje cuando la sesión no tiene ningún inicio de sesión de puerta de enlace, por ejemplo porque no ha ejecutado `/login` desde que la política llegó a la máquina.1347Las solicitudes de modelo fallan con este mensaje cuando la sesión no tiene ningún inicio de sesión de puerta de enlace, por ejemplo porque no ha ejecutado `/login` desde que la política llegó a la máquina.

1253 1348 

1254Si también tiene una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` configurada y la configuración administrada establece `forceLoginMethod`, Claude Code sale al inicio con un mensaje que comienza:1349Si la máquina también tiene una credencial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` configurada y la configuración administrada establece `forceLoginMethod` o `forceLoginOrgUUID`, Claude Code sale al inicio con un mensaje que comienza:

1255 1350 

1256```text theme={null}1351```text theme={null}

1257Administrator policy requires a Cloud gateway sign-in on this machine; the1352Administrator policy requires a Cloud gateway sign-in on this machine; the


1262**Qué hacer:**1357**Qué hacer:**

1263 1358 

1264* Ejecute `/login` y complete el inicio de sesión en la pantalla **Cloud gateway**1359* Ejecute `/login` y complete el inicio de sesión en la pantalla **Cloud gateway**

1265* Para el mensaje de inicio, elimine la configuración `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` que configuró, luego inicie `claude` y ejecute `/login`1360* Para el mensaje de inicio, elimine la configuración `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` que configuró. Para eliminar una clave API de Console guardada, ejecute `claude auth logout`, que también elimina un inicio de sesión guardado de claude.ai. Si selecciona un proveedor en la nube con `CLAUDE_CODE_USE_*`, la sesión entonces se inicia sin iniciar sesión. De lo contrario, inicie `claude` y ejecute `/login`

1266* Si cree que la máquina no debería requerir la puerta de enlace, pida al administrador que la administra que elimine `forceLoginMethod` y `forceLoginGatewayUrl` de su configuración administrada1361* Si cree que la máquina no debería requerir la puerta de enlace, pida al administrador que la administra que elimine `forceLoginMethod` y `forceLoginGatewayUrl` de su configuración administrada

1267 1362 

1268En v2.1.265, una regresión también mostró el primer mensaje en algunas configuraciones de puerta de enlace LLM y proxy que se autentican con una clave API, `apiKeyHelper` o encabezados personalizados, incluso sin ningún requisito de administrador en la máquina. Actualice a v2.1.266 o posterior. No necesita cambiar su configuración.1363En v2.1.265, una regresión también mostró el primer mensaje en algunas configuraciones de puerta de enlace LLM y proxy que se autentican con una clave API, `apiKeyHelper` o encabezados personalizados, incluso sin ningún requisito de administrador en la máquina. Actualice a v2.1.266 o posterior. No necesita cambiar su configuración.


1677 1772 

1678Si `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:1773Si `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:

1679 1774 

1775* Verifique si `ANTHROPIC_BASE_URL` está establecido ejecutando `echo $ANTHROPIC_BASE_URL`, o `echo $env:ANTHROPIC_BASE_URL` en PowerShell, y búsquelo en el bloque `env` de sus [archivos de configuración](/docs/es/settings). Cuando está establecido, Claude Code envía solicitudes de modelo a esa dirección en lugar de `api.anthropic.com`, por lo que un valor residual que apunta a un proxy local o puerta de enlace que ya no se ejecuta produce `Connection refused` aunque `curl` alcance la API. Elimínelo de su perfil de shell o configuración e inicie Claude Code desde una nueva terminal.

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

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

1682* Docker Desktop y tiempos de ejecución de contenedores similares pueden interceptar el tráfico saliente. Ciérrelos y reintente para descartar esto.1778* Docker Desktop y tiempos de ejecución de contenedores similares pueden interceptar el tráfico saliente. Ciérrelos y reintente para descartar esto.


1897* Inicie una nueva sesión con `claude --remote-control` para crear una nueva sesión de Remote Control1993* Inicie una nueva sesión con `claude --remote-control` para crear una nueva sesión de Remote Control

1898* Para otros mensajes de inicio de Remote Control, consulte [Solucionar problemas de Remote Control](/docs/es/remote-control#troubleshooting)1994* Para otros mensajes de inicio de Remote Control, consulte [Solucionar problemas de Remote Control](/docs/es/remote-control#troubleshooting)

1899 1995 

1900Si el servidor informa en su lugar que la sesión anterior se ha ido, no ve este mensaje. Claude Code inicia una nueva sesión en su lugar o muestra [`Previous session is unavailable — run /remote-control to start a new one`](/docs/es/remote-control#previous-session-is-unavailable), dependiendo del [registro de reconexión de la conversación](/docs/es/remote-control#resume-outcomes). De v2.1.227 a v2.1.231, Claude Code mostró un mensaje que comienza con `Remote Control could not resume the previous session under the current login` en su lugar, y [las versiones anteriores se comportaron de manera diferente nuevamente](/docs/es/remote-control#reconnect-history).1996Si el servidor informa en su lugar que la sesión anterior se ha ido, no ve este mensaje. Claude Code inicia una nueva sesión en su lugar o muestra [`Previous session is unavailable — run /remote-control to start a new one`](/docs/es/remote-control#previous-session-is-unavailable).

1901 1997 

1902<h3 id="sessions-ended-while-this-machine-was-offline">1998<h3 id="sessions-ended-while-this-machine-was-offline">

1903 Las sesiones terminaron mientras esta máquina estaba sin conexión1999 Las sesiones terminaron mientras esta máquina estaba sin conexión


1931* Ejecute `/feedback` para enviar la transcripción con una descripción de lo que sucedió. Consulte [Reportar un error](#report-an-error) si `/feedback` no está disponible en su entorno2027* Ejecute `/feedback` para enviar la transcripción con una descripción de lo que sucedió. Consulte [Reportar un error](#report-an-error) si `/feedback` no está disponible en su entorno

1932* Si otras solicitudes también están fallando, verifique su conexión de red y consulte [No se puede conectar a la API](#unable-to-connect-to-api)2028* Si otras solicitudes también están fallando, verifique su conexión de red y consulte [No se puede conectar a la API](#unable-to-connect-to-api)

1933 2029 

2030<h3 id="couldnt-send-feedback">

2031 No se pudo enviar comentarios

2032</h3>

2033 

2034Envió un informe desde el diálogo [`/feedback`, `/bug`, o `/share`](/docs/es/commands#all-commands) y la carga a Anthropic falló. El diálogo mantiene su texto para que pueda reintentar.

2035 

2036```text theme={null}

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

2038```

2039 

2040El texto después del prefijo nombra lo que falló:

2041 

2042* **`: not signed in. Run /login, then retry.`**: el diálogo se carga solo cuando Claude Code encontró credenciales de Anthropic cuando se abrió, y ninguna era utilizable en el momento en que envió. Por ejemplo, cerró sesión en esta máquina mientras tanto, o su inicio de sesión ya no pudo ser actualizado.

2043* **Un paréntesis**: `(server returned <status>)` es el código de respuesta del servicio; `(request timed out)` y `(couldn't reach the service)` son fallos de red. Cuando Claude Code no puede nombrar una razón, el paréntesis está ausente.

2044 

2045En la [cola de borradores de comentarios](/docs/es/tools-reference#sendfeedback-tool-behavior), el mismo fallo termina con `The draft is still queued. Try again later.` en su lugar, y el borrador permanece en la cola para otro intento.

2046 

2047**Qué hacer:**

2048 

2049* Para la redacción no firmada, ejecute `/login` y envíe nuevamente

2050* De lo contrario, envíe nuevamente; si otras solicitudes también están fallando, verifique su conexión de red y consulte [No se puede conectar a la API](#unable-to-connect-to-api)

2051* Si sigue fallando, presente el informe en [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), como dice el mensaje

2052 

2053Antes de v2.1.281, cada envío falló con este mensaje una vez que un **Stop** de Remote Control o un mensaje urgente entre sesiones había llegado mientras el diálogo estaba abierto. En esas versiones, cierre el diálogo, reabralo, y envíe nuevamente.

2054 

2055***

2056 

2057title: "Errores de solicitud"

2058description: "Errores relacionados con el contenido de su solicitud, incluyendo límites de contexto, tamaño de solicitud y problemas de modelo."

2059------------------------------------------------------------------------------------------------------------------------------------------------

2060 

1934<h2 id="request-errors">2061<h2 id="request-errors">

1935 Errores de solicitud2062 Errores de solicitud

1936</h2>2063</h2>


2185* Elimine o [desactive](/docs/es/mcp#disable-a-server-without-removing-it) el servidor MCP que declara el esquema inválido. El error nombra la herramienta solo por posición. En v2.1.216 o posterior, verifique el registro de cada servidor para una línea que nombre una herramienta cuyo esquema de entrada sería rechazado. Si ningún registro nombra una, desactive los servidores uno a la vez.2312* Elimine o [desactive](/docs/es/mcp#disable-a-server-without-removing-it) el servidor MCP que declara el esquema inválido. El error nombra la herramienta solo por posición. En v2.1.216 o posterior, verifique el registro de cada servidor para una línea que nombre una herramienta cuyo esquema de entrada sería rechazado. Si ningún registro nombra una, desactive los servidores uno a la vez.

2186* Si mantiene el servidor, corrija el `input_schema` de la herramienta. El esquema debe ser un esquema JSON válido, y los nombres de propiedad de nivel superior deben tener entre 1 y 64 caracteres de largo y usar solo letras ASCII y dígitos, `_`, `.` y `-`. Consulte [Tools with invalid input schemas](/docs/es/mcp#tools-with-invalid-input-schemas).2313* Si mantiene el servidor, corrija el `input_schema` de la herramienta. El esquema debe ser un esquema JSON válido, y los nombres de propiedad de nivel superior deben tener entre 1 y 64 caracteres de largo y usar solo letras ASCII y dígitos, `_`, `.` y `-`. Consulte [Tools with invalid input schemas](/docs/es/mcp#tools-with-invalid-input-schemas).

2187 2314 

2315<h3 id="tool-use-name-over-200-characters">

2316 tool\_use.name superior a 200 caracteres

2317</h3>

2318 

2319Una llamada de herramienta en el historial de conversación lleva un nombre más largo que los 200 caracteres que la API acepta en una solicitud:

2320 

2321```text theme={null}

2322API Error: 400 ... tool_use.name: String should have at most 200 characters

2323```

2324 

2325Claude Code corta tal nombre a 200 caracteres cuando la respuesta llega y cuando carga una conversación guardada, por lo que la llamada falla con un error de herramienta ordinario `No such tool available` y la conversación continúa sin este error de API.

2326 

2327**Qué hacer:**

2328 

2329* Ejecute `claude update`, luego reanude la conversación. La versión actualizada repara el nombre demasiado largo cuando carga la transcripción, por lo que una conversación que estaba atascada funciona de nuevo.

2330 

2331Antes de v2.1.281, el nombre demasiado largo permanecía en el historial y la API rechazaba cada solicitud que reenviaba la conversación, incluyendo `/compact` y `--resume`, por lo que este error se repetía y la conversación estaba atascada.

2332 

2188<h3 id="theres-an-issue-with-the-selected-model">2333<h3 id="theres-an-issue-with-the-selected-model">

2189 Hay un problema con el modelo seleccionado2334 Hay un problema con el modelo seleccionado

2190</h3>2335</h3>


2216Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2361Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2217```2362```

2218 2363 

2219La sugerencia final nombra el alias o ID de modelo más cercano. Cuando nada es lo suficientemente cercano, dice `Run /model to see available models.` en su lugar.2364La sugerencia final nombra el alias o ID de modelo más cercano. Cuando nada es lo suficientemente cercano, dice `Run /model to see available models.` en su lugar. En una sesión que la [aplicación de escritorio](/docs/es/desktop) inicia para usted, la sugerencia sin coincidencia dice `Switch to a different model.`

2220 2365 

2221Claude Code produce este error localmente en el momento en que se solicita el cambio, antes de que se realice ninguna solicitud de API. Se aplica cuando un modelo se establece a través del método [Agent SDK](/docs/es/agent-sdk/typescript) `setModel()`, por una aplicación como la [aplicación de escritorio](/docs/es/desktop) que ejecuta la CLI de Claude Code para usted, o cuando elige un modelo desde un dispositivo conectado a través de [Remote Control](/docs/es/remote-control). Antes de v2.1.260, la verificación no cubría las selecciones de Remote Control, por lo que Claude Code aplicaba la selección y la siguiente solicitud fallaba con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2366Claude Code produce este error localmente en el momento en que se solicita el cambio, antes de que se realice ninguna solicitud de API. Se aplica cuando un modelo se establece a través del método [Agent SDK](/docs/es/agent-sdk/typescript) `setModel()`, por una aplicación como la [aplicación de escritorio](/docs/es/desktop) que ejecuta la CLI de Claude Code para usted, o cuando elige un modelo desde un dispositivo conectado a través de [Remote Control](/docs/es/remote-control). Antes de v2.1.260, la verificación no cubría las selecciones de Remote Control, por lo que Claude Code aplicaba la selección y la siguiente solicitud fallaba con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).

2222 2367 


2245* Si escribió un ID completo, verifíquelo contra el catálogo de modelos de su proveedor. Un modelo recién lanzado puede estar disponible en la API de Anthropic antes de que su proveedor o región lo ofrezca.2390* Si escribió un ID completo, verifíquelo contra el catálogo de modelos de su proveedor. Un modelo recién lanzado puede estar disponible en la API de Anthropic antes de que su proveedor o región lo ofrezca.

2246* Antes de v2.1.265, `/model` también rechazaba la ortografía del alias `opusplan[1m]` con este error. En esas versiones, actualice Claude Code, o establezca el modelo en [settings](/docs/es/model-config#setting-your-model) o con `--model` en su lugar.2391* Antes de v2.1.265, `/model` también rechazaba la ortografía del alias `opusplan[1m]` con este error. En esas versiones, actualice Claude Code, o establezca el modelo en [settings](/docs/es/model-config#setting-your-model) o con `--model` en su lugar.

2247 2392 

2393<h3 id="api-error-model-not-changed">

2394 Error de API al verificar el modelo seleccionado

2395</h3>

2396 

2397Eligió un modelo con `/model <name>`, o una aplicación conectada a la sesión solicitó el cambio. La API rechazó la solicitud mínima que Claude Code envía para verificar el modelo, por una razón que no tiene entrada propia, como un límite de velocidad o un error del servidor. La sesión mantiene su modelo actual, y el mensaje termina diciendo así:

2398 

2399```text theme={null}

2400API error: 429 <the server's explanation> · model not changed

2401```

2402 

2403El medio del mensaje es el estado HTTP y la explicación propia del servidor.

2404 

2405**Qué hacer:**

2406 

2407* Actúe sobre la explicación del servidor; para un límite de velocidad o un estado 5xx, espere y elija el modelo de nuevo

2408* Los rechazos con su propia redacción están cubiertos por las entradas circundantes, como [Model not found](#model-not-found) y [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)

2409 

2248<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2410<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2249 Claude Opus no está disponible con el plan Claude Pro2411 Claude Opus no está disponible con el plan Claude Pro

2250</h3>2412</h3>


2255Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.2417Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.

2256```2418```

2257 2419 

2420En una sesión que la aplicación de escritorio Claude inicia, el mensaje dice que `sign out and sign in again` en lugar de nombrar los comandos.

2421 

2258**Qué hacer:**2422**Qué hacer:**

2259 2423 

2260* Ejecute `/model` y seleccione un modelo que su plan incluya2424* Ejecute `/model` y seleccione un modelo que su plan incluya

2261* Si actualizó su plan recientemente y aún ve esto, ejecute `/logout` y luego `/login`. El token almacenado refleja su plan en el momento en que inició sesión, por lo que actualizar en la web no tiene efecto en una sesión existente hasta que se reautentique.2425* Si actualizó su plan recientemente y aún ve esto, ejecute `/logout` y luego `/login`. El token almacenado refleja su plan en el momento en que inició sesión, por lo que actualizar en claude.ai no tiene efecto en una sesión existente hasta que se reautentique.

2262* Consulte [claude.com/pricing](https://claude.com/pricing) para ver qué modelos incluye cada plan2426* Consulte [claude.com/pricing](https://claude.com/pricing) para ver qué modelos incluye cada plan

2263 2427 

2264<h3 id="claude-code-does-not-support-this-model">2428<h3 id="claude-code-does-not-support-this-model">


2287 El modelo está restringido por la configuración de su organización2451 El modelo está restringido por la configuración de su organización

2288</h3>2452</h3>

2289 2453 

2290Su administrador de organización ha deshabilitado este modelo en la consola de administración de claude.ai, o está excluido por una lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) en la configuración administrada. Cuando el modelo restringido se estableció con `--model`, `ANTHROPIC_MODEL` o la configuración `model`, Claude Code sustituye un modelo permitido y continúa. Escribir `/model <name>` para un modelo restringido se rechaza con `Run /model to choose a different model.` y la sesión mantiene su modelo actual. El aviso de sustitución también puede aparecer a mitad de sesión después de que un administrador desactive el modelo en el que se ejecuta una sesión en la consola de administración de claude.ai.2454Su administrador de organización ha deshabilitado este modelo en la consola de administración de claude.ai, o está excluido por la configuración administrada a través de una lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) o una lista [`deniedModels`](/docs/es/model-config#block-specific-models-or-versions). El aviso aparece al inicio cuando `--model`, `ANTHROPIC_MODEL` o la configuración `model` nombró el modelo restringido, y nombra el modelo que la sesión usa en su lugar. Si la configuración administrada no deja ningún modelo permitido para que la sesión use, consulte [Managed settings block the default model](#managed-settings-block-the-default-model). El aviso de sustitución también puede aparecer a mitad de sesión después de que un administrador desactive el modelo en el que se ejecuta una sesión en la consola de administración de claude.ai.

2291 2455 

2292```text theme={null}2456```text theme={null}

2293Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.2457Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

2294```2458```

2295 2459 

2460Escribir `/model <name>` para un modelo restringido se rechaza y la sesión mantiene su modelo actual. Para un modelo deshabilitado en la consola de administración, el rechazo dice `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` Para un modelo que la configuración administrada excluye, dice `Model '<name>' is not available. Your organization restricts model selection.`

2461 

2296Un aviso prefijado con un nombre de agente, habilidad o comando significa que la restricción se aplicó a ese [modelo solicitado del subagente](/docs/es/sub-agents#choose-a-model): el subagente se ejecuta en el modelo sustituido y el modelo de su sesión no cambia. Antes de v2.1.223, Claude Code mostraba el aviso solo para subagentes lanzados con la herramienta Agent.2462Un aviso prefijado con un nombre de agente, habilidad o comando significa que la restricción se aplicó a ese [modelo solicitado del subagente](/docs/es/sub-agents#choose-a-model): el subagente se ejecuta en el modelo sustituido y el modelo de su sesión no cambia. Antes de v2.1.223, Claude Code mostraba el aviso solo para subagentes lanzados con la herramienta Agent.

2297 2463 

2298Claude Code trata un alias de familia de modelo, uno de `opus`, `sonnet`, `haiku` o `fable`, como una solicitud de esa familia en lugar de su versión más nueva. En la API de Anthropic y en [Claude Platform on AWS](/docs/es/claude-platform-on-aws), un alias de familia restringido se resuelve a la versión más nueva de la familia que su organización y la lista de permitidos `availableModels` permiten, y el aviso de sustitución nombra esa versión. Claude Code rechaza `/model <alias>` solo cuando cada versión de la familia está restringida. Antes de v2.1.205, un alias de familia se sustituía o rechazaba basándose solo en su versión más nueva, incluso cuando una versión anterior de la misma familia estaba permitida.2464Claude Code trata un alias de familia de modelo, uno de `opus`, `sonnet`, `haiku` o `fable`, como una solicitud de esa familia en lugar de su versión más nueva. En la API de Anthropic y en [Claude Platform on AWS](/docs/es/claude-platform-on-aws), un alias de familia restringido se resuelve a la versión más nueva de la familia que la configuración de su organización permite, y el aviso de sustitución nombra esa versión. Claude Code rechaza `/model <alias>` solo cuando cada versión de la familia está restringida. Antes de v2.1.205, un alias de familia se sustituía o rechazaba basándose solo en su versión más nueva, incluso cuando una versión anterior de la misma familia estaba permitida.

2299 2465 

2300**Qué hacer:**2466**Qué hacer:**

2301 2467 


2354 2520 

2355**Qué hacer:**2521**Qué hacer:**

2356 2522 

2357* Ejecute `claude update` y reinicie Claude Code. Opus 4.7 necesita v2.1.111 o posterior. Opus 4.8 necesita v2.1.154 o posterior. Sonnet 5 necesita v2.1.197 o posterior. Opus 5 necesita v2.1.219 o posterior. Opus 5.5 necesita v2.1.280 o posterior2523* Ejecute `claude update` y reinicie Claude Code. Opus 4.7 necesita v2.1.111 o posterior. Opus 4.8 necesita v2.1.154 o posterior. Sonnet 5 necesita v2.1.197 o posterior. Opus 5 necesita v2.1.219 o posterior. Opus 5.5 necesita v2.1.280 o posterior. Sonnet 5.5 necesita v2.1.284 o posterior

2358* Si no puede actualizar, ejecute `/model` y seleccione Opus 4.6 o Sonnet 4.6 en su lugar2524* Si no puede actualizar, ejecute `/model` y seleccione Opus 4.6 o Sonnet 4.6 en su lugar

2359* Si encuentra esto en el [Agent SDK](/docs/es/agent-sdk/overview), actualice el paquete SDK en su lugar. Opus 4.8 necesita TypeScript SDK v0.3.154 o posterior y Python SDK v0.2.88 o posterior. Sonnet 5 necesita TypeScript SDK v0.3.197 o posterior. Opus 5 necesita TypeScript SDK v0.3.219 o posterior. Opus 5.5 necesita TypeScript SDK v0.3.280 o posterior2525* Si encuentra esto en el [Agent SDK](/docs/es/agent-sdk/overview), actualice el paquete SDK en su lugar. Opus 4.8 necesita TypeScript SDK v0.3.154 o posterior y Python SDK v0.2.88 o posterior. Sonnet 5 necesita TypeScript SDK v0.3.197 o posterior. Opus 5 necesita TypeScript SDK v0.3.219 o posterior. Opus 5.5 necesita TypeScript SDK v0.3.280 o posterior. Sonnet 5.5 necesita TypeScript SDK v0.3.284 o posterior

2360 2526 

2361<h3 id="effort-isnt-available-with-thinking-turned-off">2527<h3 id="effort-isnt-available-with-thinking-turned-off">

2362 El esfuerzo no está disponible con el pensamiento desactivado2528 El esfuerzo no está disponible con el pensamiento desactivado


2368API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)2534API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)

2369```2535```

2370 2536 

2537La sugerencia después de `·` varía según la sesión: en una sesión no interactiva dice `use --effort high (or the effortLevel setting)`, y en una sesión que la aplicación de escritorio Claude inicia dice `you can lower effort to High`.

2538 

2371**Qué hacer:**2539**Qué hacer:**

2372 2540 

2373* [Baje el nivel de esfuerzo](/docs/es/model-config#set-the-effort-level) a `high` o inferior.2541* [Baje el nivel de esfuerzo](/docs/es/model-config#set-the-effort-level) a `high` o inferior.


2413* Si está usando Opus 4.7 u Opus 4.8, ejecute `claude update` primero. Las versiones anteriores a v2.1.156 pueden activar este error durante el uso normal de herramientas, y `/rewind` no lo borra.2581* Si está usando Opus 4.7 u Opus 4.8, ejecute `claude update` primero. Las versiones anteriores a v2.1.156 pueden activar este error durante el uso normal de herramientas, y `/rewind` no lo borra.

2414* Ejecute `/rewind`, o presione Esc dos veces, para retroceder a un punto de control antes del turno corrupto y continuar desde allí. Consulte [Checkpointing](/docs/es/checkpointing) para cómo se crean y restauran los puntos de control.2582* Ejecute `/rewind`, o presione Esc dos veces, para retroceder a un punto de control antes del turno corrupto y continuar desde allí. Consulte [Checkpointing](/docs/es/checkpointing) para cómo se crean y restauran los puntos de control.

2415 2583 

2584<h3 id="invalid-data-in-redacted-thinking-block">

2585 Datos inválidos en bloque redacted\_thinking

2586</h3>

2587 

2588La API rechazó la solicitud con un 400 porque no pudo aceptar un bloque `redacted_thinking` que un turno anterior en el historial de conversación lleva.

2589 

2590```text theme={null}

2591API Error: 400 ... Invalid `data` in `redacted_thinking` block

2592```

2593 

2594Claude Code deja el pensamiento anterior de la conversación fuera de la solicitud y reintenta una vez, por lo que la sesión continúa sin mostrar el error. Antes de v2.1.282, Claude Code mantenía el bloque rechazado, y cada turno posterior fallaba con el mismo error.

2595 

2596**Qué hacer:**

2597 

2598* Si está en v2.1.281 o anterior y cada turno falla con este error, ejecute `claude update` y reanude la sesión

2599* Si el error persiste, ejecute `/clear` para comenzar una conversación que no lleve el bloque

2600 

2416<h3 id="unsupported-tool-content-removed">2601<h3 id="unsupported-tool-content-removed">

2417 Contenido de herramienta no compatible eliminado2602 Contenido de herramienta no compatible eliminado

2418</h3>2603</h3>


2458La API rechazó la solicitud con un 400 porque el historial de conversación contiene contenido de búsqueda web alojado que no puede descifrar. La redacción nombra el campo que no puede leer:2643La API rechazó la solicitud con un 400 porque el historial de conversación contiene contenido de búsqueda web alojado que no puede descifrar. La redacción nombra el campo que no puede leer:

2459 2644 

2460```text theme={null}2645```text theme={null}

2461API Error: 400 messages.21.content.0: Invalid `encrypted_content` in `search_result` block2646API Error: 400 ... Invalid `encrypted_content` in `search_result` block

2462API Error: 400 messages.21.content.3.citations.0: Invalid `encrypted_index` in `text` block2647API Error: 400 ... Invalid `encrypted_index` in `text` block

2463API Error: 400 Failed to decrypt web search result content2648API Error: 400 ... Failed to decrypt web search result content

2649API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block

2464```2650```

2465 2651 

2466Los resultados de la [herramienta de búsqueda web](/docs/es/tools-reference#websearch-tool-behavior) alojada de la API llevan campos encriptados que solo la API puede leer. La API rechaza una solicitud que reproduce contenido que no puede descifrar, como contenido producido para una organización diferente.2652Los resultados de la [herramienta de búsqueda web alojada](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) de la API llevan campos encriptados que solo la API puede leer. El `encrypted_stdout` nombra la salida de un programa de ejecución de código alojado que leyó tales resultados, que la API también encripta. La API rechaza una solicitud que reproduce contenido que no puede descifrar, como contenido producido para una organización diferente.

2467 2653 

2468La propia [herramienta WebSearch](/docs/es/tools-reference#websearch-tool-behavior) de Claude Code registra los resultados de búsqueda como texto sin formato, por lo que estos bloques generalmente llegan a una conversación a través de un proxy o [puerta de enlace LLM](/docs/es/llm-gateway) que ejecutó búsqueda web alojada en sí.2654La propia [herramienta WebSearch](/docs/es/tools-reference#websearch-tool-behavior) de Claude Code registra los resultados de búsqueda como texto sin formato, por lo que estos bloques generalmente llegan a una conversación a través de un proxy o [puerta de enlace LLM](/docs/es/llm-gateway) que ejecutó búsqueda web alojada en sí.

2469 2655 

2470Los bloques rechazados permanecen en el historial de conversación, por lo que cada turno posterior y `/compact` fallan de la misma manera.2656Para las tres redacciones de búsqueda web, Claude Code deja las llamadas de búsqueda, resultados y citas fuera de lo que envía y reintenta la solicitud una vez, por lo que la sesión continúa sin mostrar el error. La redacción `encrypted_stdout` no tiene tal recuperación, por lo que ese mensaje aún le llega. Antes de v2.1.282, Claude Code mantenía los bloques de búsqueda web rechazados también, y cada turno posterior y `/compact` fallaban de la misma manera.

2471 2657 

2472**Qué hacer:**2658**Qué hacer:**

2473 2659 

2474* Ejecute `/clear` o comience una nueva sesión; la nueva conversación no lleva los bloques rechazados2660* Si está en v2.1.281 o anterior y cada turno falla con una de las redacciones de búsqueda web, ejecute `claude update` y reanude la sesión

2661* Si el error persiste, o el mensaje nombra `encrypted_stdout`, ejecute `/rewind` para retroceder a un punto de control antes del turno que agregó el contenido, o ejecute `/clear` para comenzar una conversación que no lo lleve

2475* Si ejecuta Claude Code detrás de un proxy o puerta de enlace, informe el error a quien lo opera2662* Si ejecuta Claude Code detrás de un proxy o puerta de enlace, informe el error a quien lo opera

2476 2663 

2477<h3 id="usage-policy-refusal">2664<h3 id="usage-policy-refusal">

2478 Rechazo de política de uso2665 Rechazo de política de uso

2479</h3>2666</h3>

2480 2667 

2481La API se negó a responder porque el contenido en la conversación activó una verificación de [Política de uso](https://www.anthropic.com/legal/aup). El mensaje incluye un ID de solicitud que puede citar al soporte si cree que el rechazo es incorrecto.2668La API se negó a responder porque el contenido en la conversación activó una verificación de [Política de uso](https://www.anthropic.com/legal/aup).

2669 

2670El mensaje incluye un ID de solicitud y un ID de mensaje que puede citar al soporte si cree que el rechazo es incorrecto.

2482 2671 

2483```text theme={null}2672```text theme={null}

2484API Error: Opus 4.6 can't help with this. Start a new session to continue.2673API Error: Opus 4.6 can't help with this. Start a new session to continue.


2508API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2697API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2509```2698```

2510 2699 

2511El mensaje vincula al [Programa de verificación de ciberseguridad](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que otorga acceso para trabajo de ciberseguridad legítimo. En Opus 5.5, que requiere v2.1.280 o posterior, el mensaje abre con `Opus 5.5's safeguards flagged this session` en su lugar. Cuando la categoría marcada tiene un modelo alternativo disponible, Claude Code [cambia de modelos](/docs/es/model-config#automatic-model-fallback) en lugar de mostrar este error.2700El mensaje vincula al [Programa de verificación de ciberseguridad](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que otorga acceso para trabajo de ciberseguridad legítimo. En Opus 5.5 y Sonnet 5.5, el mensaje abre con `<model>'s safeguards flagged this session` en su lugar. Cuando la categoría marcada tiene un modelo alternativo disponible, Claude Code [cambia de modelos](/docs/es/model-config#automatic-model-fallback) en lugar de mostrar este error.

2512 2701 

2513En [Amazon Bedrock](/docs/es/amazon-bedrock), [Plataforma de agentes de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una bandera de ciberseguridad produce el mensaje de [rechazo de política de uso](#usage-policy-refusal) en su lugar.2702En [Amazon Bedrock](/docs/es/amazon-bedrock), [Plataforma de agentes de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una bandera de ciberseguridad produce el mensaje de [rechazo de política de uso](#usage-policy-refusal) en su lugar.

2514 2703 


2594 Configuración de --agents inválida2783 Configuración de --agents inválida

2595</h3>2784</h3>

2596 2785 

2597El valor que pasó a `--agents` es inválido, por lo que `claude` sale con código 1 en lugar de iniciar la sesión. Cuando pasa `--safe-mode`, `--resume`, o `--continue`, o establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars#variables), Claude Code no verifica el valor e inicia la sesión. Antes de v2.1.242, Claude Code iniciaba la sesión de todas formas y omitía las definiciones que no podía cargar.2786El valor que pasó a `--agents` es inválido, por lo que `claude` sale con código 1 en lugar de iniciar la sesión. Cuando pasa `--safe-mode` o establece [`CLAUDE_CODE_SAFE_MODE`](/docs/es/env-vars#variables), Claude Code ignora `--agents` completamente. Con `--resume` o `--continue`, un valor JSON en línea no se verifica y la sesión se inicia; un valor leído de un archivo se verifica en cada lanzamiento. Antes de v2.1.242, Claude Code iniciaba la sesión de todas formas y omitía las definiciones que no podía cargar.

2598 2787 

2599```text theme={null}2788```text theme={null}

2600Error: Invalid --agents configuration:2789Error: Invalid --agents configuration:


2603 2792 

2604Lo que sigue a la primera línea depende de cómo falló el valor. Claude Code ejecuta estas comprobaciones en orden y se detiene en la primera que falla. Si su valor tiene dos tipos de problema, verá el segundo solo después de corregir el primero:2793Lo que sigue a la primera línea depende de cómo falló el valor. Claude Code ejecuta estas comprobaciones en orden y se detiene en la primera que falla. Si su valor tiene dos tipos de problema, verá el segundo solo después de corregir el primero:

2605 2794 

26061. Cuando el valor no se analiza como JSON, Claude Code imprime una línea `invalid JSON:` que lleva el mensaje propio del analizador JSON27951. Cuando el valor comienza con `{` pero no se analiza como JSON, o el contenido de un archivo `--agents` no se analiza, Claude Code imprime una línea `invalid JSON:` que lleva el mensaje propio del analizador JSON

26072. Cuando se analiza pero una definición de agente no coincide con el esquema para [subagentes definidos por CLI](/docs/es/sub-agents#choose-the-subagent-scope), Claude Code imprime una línea por problema27962. Cuando se analiza pero una definición de agente no coincide con el esquema para [subagentes definidos por CLI](/docs/es/sub-agents#choose-the-subagent-scope), Claude Code imprime una línea por problema

26083. Cuando un nombre de agente comienza con `-`, Claude Code imprime `<name>: agent names must not start with '-'`27973. Cuando un nombre de agente comienza con `-`, Claude Code imprime `<name>: agent names must not start with '-'`

2609 2798 

2610Cuando hay más de 20 líneas de problema, Claude Code imprime las primeras 20 y reemplaza el resto con `…and N more`.2799Cuando hay más de 20 líneas de problema, Claude Code imprime las primeras 20 y reemplaza el resto con `…and N more`.

2611 2800 

2801Con `--print`, `--agents` también acepta [la ruta a un archivo JSON](/docs/es/sub-agents#choose-the-subagent-scope) en lugar del objeto en línea. Antes de v2.1.281, `--agents` aceptaba solo JSON en línea y trataba una ruta de archivo como JSON inválido. La forma de archivo tiene rechazos propios, impresos en lugar de este mensaje, incluidos estos:

2802 

2803* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code leyó el valor como una ruta de archivo en una sesión interactiva. Pase las definiciones como JSON en línea, o agregue `-p` para leerlas de un archivo.

2804* **`Error: --agents file not found: <path>`**: no existe ningún archivo en esa ruta. Un valor que no comienza con `{` y no es JSON válido se lee como una ruta, por lo que JSON en línea que su shell alteró puede fallar de esta manera también. Verifique la ruta o las comillas y ejecute el comando nuevamente.

2805 

2612**Qué hacer:**2806**Qué hacer:**

2613 2807 

2614* Corrija cada problema que enumera el mensaje, luego ejecute el comando nuevamente. Consulte [los campos que toma un subagente definido por CLI](/docs/es/sub-agents#choose-the-subagent-scope).2808* Corrija cada problema que enumera el mensaje, luego ejecute el comando nuevamente. Consulte [los campos que toma un subagente definido por CLI](/docs/es/sub-agents#choose-the-subagent-scope).


2756 Espacio de trabajo no confiable al iniciar Remote Control2950 Espacio de trabajo no confiable al iniciar Remote Control

2757</h3>2951</h3>

2758 2952 

2759Inició el modo servidor de [Remote Control](/docs/es/remote-control) con `claude remote-control` o su alias `claude rc` en un directorio que no ha confiado. El comando no muestra el diálogo de confianza del espacio de trabajo en sí, por lo que sale con código 1 y nombra la solución:2953Inició el modo servidor de [Remote Control](/docs/es/remote-control) con `claude remote-control` o su alias `claude rc` en un directorio que no ha confiado, y el comando no pudo preguntarle si confiar en él. Este mensaje aparece cuando la entrada estándar o la salida estándar del comando no es una terminal, por ejemplo porque una de ellas se redirige o se canaliza. El comando sale con código 1:

2760 2954 

2761```text theme={null}2955```text theme={null}

2762Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.2956Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

2763```2957```

2764 2958 

2959Dos variantes que también comienzan con `Error: Workspace not trusted.` aparecen en una terminal también demasiado pequeña para mostrar qué confiar en el directorio activa, o una que no reportó su tamaño. Amplíe la ventana o cambie a una ventana de terminal normal, luego ejecute `claude rc` nuevamente.

2960 

2765En su directorio de inicio el mensaje es diferente, porque el diálogo de confianza del espacio de trabajo nunca guarda confianza para el directorio de inicio, por lo que aceptarlo allí no puede satisfacer esta verificación. Antes de v2.1.214, el directorio de inicio mostraba el mensaje anterior, cuyo consejo no puede tener éxito allí.2961En su directorio de inicio el mensaje es diferente, porque el diálogo de confianza del espacio de trabajo nunca guarda confianza para el directorio de inicio, por lo que aceptarlo allí no puede satisfacer esta verificación. Antes de v2.1.214, el directorio de inicio mostraba el mensaje anterior, cuyo consejo no puede tener éxito allí.

2766 2962 

2767```text theme={null}2963```text theme={null}

2768Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).2964Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

2769```2965```

2770 2966 

2967Si responde `n` o presiona Enter en la [pregunta `Trust <directory>?`](/docs/es/remote-control#requirements), el comando imprime un mensaje `Remote Control did not start` que nombra el directorio y sale con código 1. Ejecute `claude rc` nuevamente para responder `y`.

2968 

2771**Qué hacer:**2969**Qué hacer:**

2772 2970 

2773* Ejecute `claude` en el directorio, acepte el [diálogo de confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), luego ejecute `claude remote-control` nuevamente2971* Confíe en el directorio desde una terminal primero: ejecute `claude rc` allí y responda `y`, o ejecute `claude` allí y acepte el [diálogo de confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust), luego ejecute su comando original nuevamente

2774* En su directorio de inicio, cambie a un directorio de proyecto e inicie Remote Control allí2972* En su directorio de inicio, cambie a un directorio de proyecto e inicie Remote Control allí

2775 2973 

2974Antes de v2.1.284, el comando nunca preguntó, incluso en una terminal.

2975 

2776<h3 id="not-carried-over-to-the-sessions-remote-control-starts">2976<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

2777 No se trasladó a las sesiones que inicia Remote Control2977 No se trasladó a las sesiones que inicia Remote Control

2778</h3>2978</h3>


3269* Para una sesión interactiva, abra el [selector de sesión](/docs/es/sessions#use-the-session-picker) con `claude --resume` y presione `Ctrl+A` para ampliarlo a cada proyecto en esta máquina, luego seleccione la sesión3469* Para una sesión interactiva, abra el [selector de sesión](/docs/es/sessions#use-the-session-picker) con `claude --resume` y presione `Ctrl+A` para ampliarlo a cada proyecto en esta máquina, luego seleccione la sesión

3270* Las sesiones creadas con `claude -p` o el [Agent SDK](/docs/es/agent-sdk/overview) no aparecen en el selector, por lo que vuelva a verificar el ID contra el `session_id` que su ejecución original imprimió3470* Las sesiones creadas con `claude -p` o el [Agent SDK](/docs/es/agent-sdk/overview) no aparecen en el selector, por lo que vuelva a verificar el ID contra el `session_id` que su ejecución original imprimió

3271 3471 

3472<h3 id="windows-reported-an-error-ebadf">

3473 Windows reportó un error (EBADF) cuando Claude Code leyó el archivo de transcripción de esta sesión

3474</h3>

3475 

3476Reanudó una sesión en Windows, su archivo de [transcripción](/docs/es/sessions#where-transcripts-are-stored) guardado se abrió normalmente, y la lectura falló con el error del sistema EBADF. El error del sistema no dice por qué la lectura falló, por lo que el mensaje sugiere causas probables y qué intentar:

3477 

3478```text theme={null}

3479Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3480```

3481 

3482El mensaje sigue la línea de fallo propio del comando, como `Failed to resume session <session-id>`. Un comando `claude --resume` o [`claude -p`](/docs/es/headless) sale con código 1 después de mostrarlo. Después de `/resume` dentro de una sesión, su sesión actual sigue ejecutándose.

3483 

3484**Qué hacer:**

3485 

3486* Excluya la carpeta que contiene sus transcripciones de sesión del software que escanea o intercepta lecturas de archivos, como herramientas de seguridad, cifrado o gestión de puntos finales. Las transcripciones viven bajo `%USERPROFILE%\.claude\projects` de forma predeterminada, o bajo el directorio que [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) nombra

3487* Si no puede agregar una exclusión, agregue Claude Code a las aplicaciones permitidas de ese software en su lugar

3488* Reanude la sesión nuevamente

3489 

3490Antes de v2.1.282, el fallo vino sin explicación: `claude --resume <session-id>` terminó en `Failed to resume session <session-id>`, y una ejecución `-p` imprimió solo el texto de error del sistema, como `Failed to resume session: EBADF: bad file descriptor, read`.

3491 

3272<h3 id="cannot-switch-renderers-in-this-session">3492<h3 id="cannot-switch-renderers-in-this-session">

3273 No se puede cambiar renderizadores en esta sesión3493 No se puede cambiar renderizadores en esta sesión

3274</h3>3494</h3>


3452* Cambie el nombre del marketplace a un nombre que no deletree un nombre reservado y agréguelo nuevamente3672* Cambie el nombre del marketplace a un nombre que no deletree un nombre reservado y agréguelo nuevamente

3453* Para la advertencia de entrada ignorada, ejecute el comando `claude plugin marketplace remove` que proporciona, o elimine la entrada de `~/.claude/plugins/known_marketplaces.json`3673* Para la advertencia de entrada ignorada, ejecute el comando `claude plugin marketplace remove` que proporciona, o elimine la entrada de `~/.claude/plugins/known_marketplaces.json`

3454 3674 

3675<h3 id="claude-code-refuses-the-marketplace-name">

3676 Claude Code refuses the marketplace name

3677</h3>

3678 

3679Un marketplace registrado cuyo nombre [suplanta un marketplace oficial de Anthropic](/docs/es/plugins/marketplace-reference#reserved-names) según las reglas que esa sección enumera.

3680 

3681Si un marketplace fue registrado bajo tal nombre antes de que la verificación lo bloqueara, el marketplace y los plugins instalados desde él dejan de cargarse, porque Claude Code verifica el nombre cada vez que lee el catálogo del marketplace. Cuando el nombre imita uno oficial, `claude plugin list` y la pestaña **Errors** de `/plugin` informan cada plugin afectado con un mensaje que comienza:

3682 

3683```text theme={null}

3684Claude Code refuses the marketplace name "anthropic-plugins-v2"

3685```

3686 

3687Para un nombre que imita, el error del marketplace en sí dice `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own` en su lugar. `claude plugin marketplace add` rechaza cualquier nombre que suplante con `Marketplace name impersonates an official Anthropic/Claude marketplace`.

3688 

3689Antes de v2.1.282, `claude plugin list` y `/plugin` informaban los plugins de un nombre que imita como fallidos al cargar también, sin nombrar el nombre del marketplace como la causa.

3690 

3691**Qué hacer:**

3692 

3693* Ejecute `claude plugin marketplace remove <name>`. Esto también desinstala los plugins instalados desde el marketplace y elimina sus datos guardados

3694* Para mantener el marketplace en su lugar, espere hasta que su mantenedor lo renombre, luego ejecute `claude plugin marketplace update <name>`

3695* Si publica el marketplace, cámbielo de nombre en su `marketplace.json`; los usuarios luego actualizan el marketplace en lugar de eliminarlo

3696 

3455<h3 id="marketplace-is-already-added-from-a-different-source">3697<h3 id="marketplace-is-already-added-from-a-different-source">

3456 Marketplace is already added from a different source3698 Marketplace is already added from a different source

3457</h3>3699</h3>


3521 Path escapes plugin directory3763 Path escapes plugin directory

3522</h3>3764</h3>

3523 3765 

3524Una ruta de componente de plugin, declarada en el `plugin.json` del plugin o en su [entrada de marketplace](/docs/es/plugins/marketplace-reference#plugin-entries), se resuelve fuera del directorio del plugin. Claude Code descarta esa ruta y carga el resto del plugin. El nombre del componente en el mensaje, como `commands` o `hooks`, nombra el campo que declaró la ruta.3766Un componente de plugin cuya ruta está declarada en el `plugin.json` del plugin o en su [entrada de marketplace](/docs/es/plugins/marketplace-reference#plugin-entries), se resuelve fuera del directorio del plugin. Claude Code descarta esa ruta y carga el resto del plugin. El nombre del componente en el mensaje, como `commands` o `hooks`, nombra el campo que declaró la ruta.

3525 3767 

3526```text theme={null}3768```text theme={null}

3527commands path escapes plugin directory: ./../shared.md3769commands path escapes plugin directory: ./../shared.md


3654 3896 

3655* Pida a un administrador de su organización claude.ai que cambie el estado requerido del plugin en claude.ai3897* Pida a un administrador de su organización claude.ai que cambie el estado requerido del plugin en claude.ai

3656 3898 

3899<h3 id="plugin-was-not-uninstalled">

3900 Plugin was not uninstalled

3901</h3>

3902 

3903Ejecutó [`claude plugin uninstall`](/docs/es/plugins/cli-reference#plugin-uninstall), o eligió **Uninstall** en la pestaña **Installed** de `/plugin`, y la desinstalación se detuvo con un mensaje que comienza `"<plugin>" was not uninstalled:`.

3904 

3905Cuando Claude Code eliminó la entrada del plugin de `enabledPlugins` y leyó los archivos de configuración de ese ámbito nuevamente, ya sea el plugin seguía activado allí, o un archivo que podría activarlo no se pudo leer o verificar. Eliminar las opciones guardadas del plugin, secretos y datos mientras una entrada de configuración podría activarlo nuevamente los perdería, por lo que la desinstalación se detiene en su lugar: el plugin permanece instalado y nada que guardó se elimina.

3906 

3907```text theme={null}

3908✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.

3909```

3910 

3911El medio del mensaje nombra el archivo y la causa:

3912 

3913* `it is still switched on in <file>, although the settings change reported no error`: la escritura de configuración informó éxito pero la entrada aún está allí cuando se lee el archivo nuevamente

3914* `it is still switched on in <file>, and the settings change failed (<error>)`: el archivo no se pudo guardar, por la razón entre paréntesis

3915* `<file> is there and could not be read`: el archivo existe pero no se pudo leer como configuración, por ejemplo porque no es JSON válido, por lo que aún puede activar el plugin

3916* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`: Claude Code no leyó el archivo de configuración del proyecto o local porque el archivo, o la carpeta `.claude` que lo contiene, es un enlace que conduce a una ubicación de red, o porque no pudo examinar esa ruta

3917 

3918`claude plugin uninstall` sale con código 1, y con `--json` el resultado lleva `failureCode: "settings_still_on"`. `/plugin` muestra el mismo mensaje.

3919 

3920**Qué hacer:**

3921 

3922* Siga la última oración del mensaje: repare o reemplace el archivo de configuración que nombra, o elimine la entrada del plugin de `enabledPlugins` en ese archivo usted mismo, luego ejecute la desinstalación nuevamente

3923 

3657<h2 id="tool-errors">3924<h2 id="tool-errors">

3658 Errores de herramientas3925 Errores de herramientas

3659</h2>3926</h2>


3703* Si Claude debe poder cambiar el archivo, elimine o reduzca la regla de denegación `Read` en `/permissions` o en [configuración](/docs/es/settings-reference#permission-settings)3970* Si Claude debe poder cambiar el archivo, elimine o reduzca la regla de denegación `Read` en `/permissions` o en [configuración](/docs/es/settings-reference#permission-settings)

3704* Si el archivo debe permanecer intacto, mantenga la regla y agregue una regla de denegación `Edit` para la misma ruta para bloquear también la herramienta NotebookEdit3971* Si el archivo debe permanecer intacto, mantenga la regla y agregue una regla de denegación `Edit` para la misma ruta para bloquear también la herramienta NotebookEdit

3705 3972 

3973<h3 id="path-cannot-contain-null-bytes">

3974 Path cannot contain null bytes

3975</h3>

3976 

3977Una llamada de herramienta de archivo con argumento de ruta o patrón contenía un byte nulo, que los sistemas de archivos y herramientas de búsqueda no pueden aceptar. Read, Write, Edit, NotebookEdit, Glob, y Grep verifican esto, y el mensaje nombra la herramienta y el argumento:

3978 

3979```text theme={null}

3980Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

3981```

3982 

3983La llamada de herramienta falla, Claude ve el error, y el turno continúa.

3984 

3985**Qué hacer:**

3986 

3987* Nada de su parte: el error se devuelve a Claude como el resultado de la herramienta, y el mensaje en sí le dice a Claude que elimine el byte nulo e intente de nuevo

3988 

3989Antes de v2.1.281, un byte nulo en una ruta Read, Write, Edit, o NotebookEdit terminaba todo el turno con un error que nombraba `Path contains null bytes`, y la herramienta nunca se ejecutaba.

3990 

3706<h3 id="subagent-type-is-required">3991<h3 id="subagent-type-is-required">

3707 subagent\_type is required3992 subagent\_type is required

3708</h3>3993</h3>


3883 4168 

3884* `its symlink resolution changed after permission was checked`: un enlace simbólico a lo largo de la ruta, o en una raíz de búsqueda Grep o Glob, fue reemplazado entre la verificación de permiso y la operación. En un rechazo de lectura, la frase entre paréntesis nombra qué comparación falló.4169* `its symlink resolution changed after permission was checked`: un enlace simbólico a lo largo de la ruta, o en una raíz de búsqueda Grep o Glob, fue reemplazado entre la verificación de permiso y la operación. En un rechazo de lectura, la frase entre paréntesis nombra qué comparación falló.

3885* `its parent-directory symlink resolution changed after permission was checked`: un directorio por el que pasa la ruta de escritura ya no se resuelve a la ubicación aprobada4170* `its parent-directory symlink resolution changed after permission was checked`: un directorio por el que pasa la ruta de escritura ya no se resuelve a la ubicación aprobada

4171* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code no pudo seguir la ruta a una ubicación final en el disco, por ejemplo porque los enlaces simbólicos en ella forman un bucle

3886* `it is a symbolic link. Write to the link's target path instead`: un enlace simbólico se encuentra en la ubicación de escritura aprobada en sí, por ejemplo un `CLAUDE.md` que es un enlace simbólico a `AGENTS.md`; el mensaje dirige a Claude a la ruta de destino del enlace4172* `it is a symbolic link. Write to the link's target path instead`: un enlace simbólico se encuentra en la ubicación de escritura aprobada en sí, por ejemplo un `CLAUDE.md` que es un enlace simbólico a `AGENTS.md`; el mensaje dirige a Claude a la ruta de destino del enlace

3887* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: la misma condición detectada cuando otro escritor abre el archivo, como una escritura a un `.mcp.json` enlazado simbólicamente4173* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: la misma condición detectada cuando otro escritor abre el archivo, como una escritura a un `.mcp.json` enlazado simbólicamente

3888* `Refusing to write into symlinked directory: <path>`: el directorio que contiene el archivo es en sí mismo un enlace simbólico, por ejemplo el directorio `.claude/` de un proyecto vinculado a otra ubicación4174* `Refusing to write into symlinked directory: <path>`: el directorio que contiene el archivo es en sí mismo un enlace simbólico, por ejemplo el directorio `.claude/` de un proyecto vinculado a otra ubicación


3901 4187 

3902Antes de v2.1.251, Claude Code volvía a verificar la resolución de una ruta solo para escrituras de archivo, por lo que un enlace reemplazado después de la verificación de permiso podría redirigir una lectura o búsqueda a una ubicación diferente sin un mensaje. De estos rechazos, solo el rechazo de escritura del directorio principal, a través de enlace simbólico y directorio enlazado simbólicamente aparecen en versiones anteriores.4188Antes de v2.1.251, Claude Code volvía a verificar la resolución de una ruta solo para escrituras de archivo, por lo que un enlace reemplazado después de la verificación de permiso podría redirigir una lectura o búsqueda a una ubicación diferente sin un mensaje. De estos rechazos, solo el rechazo de escritura del directorio principal, a través de enlace simbólico y directorio enlazado simbólicamente aparecen en versiones anteriores.

3903 4189 

4190Antes de v2.1.280, el rechazo `where it leads on disk could not be determined` no aparecía.

4191 

3904<h3 id="task-output-swap-refused">4192<h3 id="task-output-swap-refused">

3905 Task output swap refused4193 Task output swap refused

3906</h3>4194</h3>


3926* O verifique el directorio de su proyecto bajo el directorio temporal de Claude Code, `/private/tmp/claude-501/-Users-you-my-project` en el mensaje de ejemplo. Si esa ruta es un enlace simbólico, o un directorio que no debería estar allí, elimine el enlace o directorio en sí en lugar del destino del enlace, y reinicie Claude Code4214* O verifique el directorio de su proyecto bajo el directorio temporal de Claude Code, `/private/tmp/claude-501/-Users-you-my-project` en el mensaje de ejemplo. Si esa ruta es un enlace simbólico, o un directorio que no debería estar allí, elimine el enlace o directorio en sí en lugar del destino del enlace, y reinicie Claude Code

3927* Si el rechazo se repite, un proceso está reemplazando, vinculando o eliminando entradas bajo el directorio temporal de Claude Code mientras la sesión se ejecuta. Configure [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) en un directorio que nada más administre y reinicie4215* Si el rechazo se repite, un proceso está reemplazando, vinculando o eliminando entradas bajo el directorio temporal de Claude Code mientras la sesión se ejecuta. Configure [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) en un directorio que nada más administre y reinicie

3928 4216 

4217<h3 id="disk-quota-or-temp-filesystem-is-full">

4218 Disk quota or temp filesystem is full

4219</h3>

4220 

4221Claude Code guarda la salida de cada comando Bash y PowerShell en un archivo bajo su directorio temporal. Cuando un comando sale con un código distinto de cero y sin salida en absoluto, Claude Code verifica si el sistema de archivos que contiene ese archivo se quedó sin espacio o inodos, o si su cuota de disco en él está agotada. Si es así, un diagnóstico aparece en el resultado del comando en lugar de la salida vacía:

4222 

4223```text wrap theme={null}

4224Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.

4225```

4226 

4227El mensaje nombra lo que se agotó:

4228 

4229* `Your disk quota is full ... (EDQUOT)`: su propia cuota en ese sistema de archivos está agotada. Una cuota puede estar llena mientras el sistema de archivos aún muestra espacio libre

4230* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: el sistema de archivos, o su cuota en él, no tiene espacio restante

4231* `Command output was lost: the temp filesystem at ... is full` o `... is out of inodes`: el sistema de archivos tiene casi ningún espacio libre restante, o se está quedando sin inodos

4232 

4233**Qué hacer:**

4234 

4235* Elimine archivos que ya no necesita en el sistema de archivos que contiene el directorio temporal de Claude Code. Para `EDQUOT`, elimine archivos que cuenten contra su propia cuota. Para `out of inodes`, elimine muchos archivos en lugar de unos pocos grandes, ya que cada archivo toma un inodo sin importar su tamaño

4236* O reinicie Claude Code con [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) configurado en un directorio en un sistema de archivos con espacio

4237* Luego pida a Claude que ejecute el comando de nuevo. La salida que imprimió se perdió, no se truncó

4238 

3929<h3 id="the-source-file-is-not-valid-utf-8-text">4239<h3 id="the-source-file-is-not-valid-utf-8-text">

3930 The source file is not valid UTF-8 text4240 The source file is not valid UTF-8 text

3931</h3>4241</h3>


3987 Errores de sesión en segundo plano4297 Errores de sesión en segundo plano

3988</h2>4298</h2>

3989 4299 

3990Las [sesiones en segundo plano](/docs/es/agent-view) se ejecutan sin su propia terminal interactiva, por lo que los comandos que necesitan una se comportan de manera diferente allí. Estos mensajes aparecen en la transcripción de una sesión en segundo plano, en la terminal que se adjunta a una, en la sesión o shell desde la que se envía, o, para las [entradas de worktree-guard](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) a continuación, en cualquier sesión aislada en un worktree o ejecutando un subagente aislado en worktree; cuando un mensaje es específico de una superficie, su entrada lo indica.4300Las [sesiones en segundo plano](/docs/es/agent-view) se ejecutan sin su propia terminal interactiva, por lo que los comandos que necesitan una se comportan de manera diferente allí. Estos mensajes aparecen en la transcripción de una sesión en segundo plano, en la terminal que se conecta a una, en la sesión o shell desde la que se envía, o, para las [entradas de protección de worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) a continuación, en cualquier sesión aislada en un worktree o ejecutando un subagente aislado en worktree; cuando un mensaje es específico de una superficie, su entrada lo indica.

3991 4301 

3992<h3 id="commands-refused-in-a-background-session">4302<h3 id="commands-refused-in-a-background-session">

3993 Comandos rechazados en una sesión en segundo plano4303 Comandos rechazados en una sesión en segundo plano

3994</h3>4304</h3>

3995 4305 

3996Los comandos que abren un diálogo interactivo no pueden hacerlo mientras no hay terminal adjunta a una sesión en segundo plano. `/install-github-app`, la lista de configuración `/mcp`, y las acciones de autenticación en el menú del servidor MCP responden con un mensaje, y la sesión aparece bajo **Needs input** en [agent view](/docs/es/agent-view) para que pueda encontrarla, adjuntarla y ejecutar el comando nuevamente. Mientras una terminal está adjunta, estos comandos funcionan normalmente.4306Los comandos que abren un diálogo interactivo no pueden hacerlo mientras no hay terminal conectada a una sesión en segundo plano. `/install-github-app`, la lista de configuración `/mcp`, y las acciones de autenticación en el menú del servidor MCP responden con un mensaje, y la sesión aparece bajo **Needs input** en [agent view](/docs/es/agent-view) para que pueda encontrarla, conectarse y ejecutar el comando nuevamente. Mientras una terminal está conectada, estos comandos funcionan normalmente.

3997 4307 

3998Antes de v2.1.216, la sesión no aparecía bajo **Needs input** después de uno de estos rechazos. En v2.1.213 a v2.1.215, los comandos aún funcionaban mientras una terminal estaba adjunta, y el mensaje de rechazo le indicaba que adjuntara y ejecutara el comando nuevamente. De v2.1.208 a v2.1.212, Claude Code los rechazaba incluso mientras una terminal estaba adjunta, con un mensaje como `Can't open MCP settings in a background session`; en esas versiones, ejecute el comando desde una sesión `claude` regular en su lugar, o actualice. Antes de v2.1.208, abrían su diálogo dentro de la sesión en segundo plano. En v2.1.208 solamente, Claude Code también rechazó el selector `/model` en una sesión en segundo plano, y `/upgrade` imprimió la URL de actualización en lugar de abrir un navegador.4308Antes de v2.1.216, la sesión no aparecía bajo **Needs input** después de uno de estos rechazos. En v2.1.213 a v2.1.215, los comandos seguían funcionando mientras una terminal estaba conectada, y el mensaje de rechazo le indicaba que se conectara y ejecutara el comando nuevamente. De v2.1.208 a v2.1.212, Claude Code los rechazaba incluso mientras una terminal estaba conectada, con un mensaje como `Can't open MCP settings in a background session`; en esas versiones, ejecute el comando desde una sesión `claude` normal en su lugar, o actualice. Antes de v2.1.208, abrían su diálogo dentro de la sesión en segundo plano. En v2.1.208 solamente, Claude Code también rechazó el selector `/model` en una sesión en segundo plano, y `/upgrade` imprimió la URL de actualización en lugar de abrir un navegador.

3999 4309 

4000La redacción nombra el comando. La lista de configuración `/mcp` informa:4310La redacción nombra el comando. La lista de configuración `/mcp` reporta:

4001 4311 

4002```text theme={null}4312```text theme={null}

4003Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use `/mcp enable|disable|reconnect <server>` to steer without the panel.4313Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use `/mcp enable|disable|reconnect <server>` to steer without the panel.


4005 4315 

4006**Qué hacer:**4316**Qué hacer:**

4007 4317 

4008* Adjunte a la sesión desde agent view, donde aparece en **Needs input**, y ejecute el comando nuevamente4318* Conéctese a la sesión desde agent view, donde aparece en **Needs input**, y ejecute el comando nuevamente

4009* O use la forma que el mensaje nombra, como `/mcp reconnect <server>`, `/mcp enable`, o `/mcp disable`, que funcionan sin adjuntar4319* O use la forma que el mensaje nombra, como `/mcp reconnect <server>`, `/mcp enable`, o `/mcp disable`, que funcionan sin conectarse

4010 4320 

4011<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">4321<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">

4012 Escritura o comando bloqueado porque la ruta no se puede resolver de forma segura4322 Escritura o comando bloqueado porque la ruta no se puede resolver de forma segura

4013</h3>4323</h3>

4014 4324 

4015Claude dirigió un archivo o directorio de trabajo a través de una ortografía que el [worktree-isolation guard](/docs/es/agent-view#how-file-edits-are-isolated) no puede resolver a una ubicación verificable. El guard verifica escrituras y directorios de trabajo de comandos en [cualquier sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), interactiva o en segundo plano, y en [subagentes aislados en worktree](/docs/es/worktrees#isolate-subagents-with-worktrees). Resuelve enlaces simbólicos antes de verificar que la operación no llegue al checkout compartido, y cuando la resolución falla, bloquea la operación en lugar de permitir que llegue allí. El mensaje nombra las formas de ruta que rechaza y cómo reintentar:4325Claude dirigió un archivo o directorio de trabajo a través de una ortografía que el [protector de aislamiento de worktree](/docs/es/agent-view#how-file-edits-are-isolated) no puede resolver a una ubicación verificable. El protector verifica escrituras y directorios de trabajo de comandos en [cualquier sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), interactiva o en segundo plano, y en [subagentes aislados en worktree](/docs/es/worktrees#isolate-subagents-with-worktrees). Resuelve enlaces simbólicos antes de verificar que la operación no llegue al checkout compartido, y cuando la resolución falla, bloquea la operación en lugar de permitir que llegue allí. El mensaje nombra las formas de ruta que rechaza y cómo reintentar:

4016 4326 

4017```text theme={null}4327```text theme={null}

4018This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.4328This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.

4019```4329```

4020 4330 

4021Un comando bloqueado informa la misma causa para su directorio de trabajo y termina con `re-run the command from its direct symlink-free path`. Antes de v2.1.217, el guard comparaba ortografías de ruta sin resolver enlaces simbólicos, por lo que estas ortografías no se bloqueaban y una escritura enrutada a través de un enlace simbólico podría llegar al checkout compartido.4331Un comando bloqueado reporta la misma causa para su directorio de trabajo y termina con `re-run the command from its direct symlink-free path`. Antes de v2.1.217, el protector comparaba ortografías de ruta sin resolver enlaces simbólicos, por lo que estas ortografías no se bloqueaban y una escritura enrutada a través de un enlace simbólico podría llegar al checkout compartido.

4022 4332 

4023**Qué hacer:**4333**Qué hacer:**

4024 4334 


4029 Escritura o comando bloqueado porque la ruta nombra una ubicación de red4339 Escritura o comando bloqueado porque la ruta nombra una ubicación de red

4030</h3>4340</h3>

4031 4341 

4032Claude dirigió un archivo o directorio de trabajo a través de una ruta que nombra una unidad que no está en su máquina, un recurso compartido UNC como `\\server\share\file` o una ruta de automontaje `/net`, mientras que el checkout de la sesión está en un disco local. El mismo [worktree-isolation guard](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) no puede verificar que tal ruta se mantenga fuera del checkout compartido, por lo que bloquea la operación. Aislar la sesión en un worktree no levanta el bloqueo. El mensaje nombra la forma de ruta a usar en su lugar:4342Claude dirigió un archivo o directorio de trabajo a través de una ruta que nombra una unidad que no está en su máquina, una compartición UNC como `\\server\share\file` o una ruta de automontaje `/net`, mientras que el checkout de la sesión está en un disco local. El mismo [protector de aislamiento de worktree](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) no puede verificar que tal ruta se mantenga fuera del checkout compartido, por lo que bloquea la operación. Aislar la sesión en un worktree no levanta el bloqueo. El mensaje nombra la forma de ruta a usar en su lugar:

4033 4343 

4034```text theme={null}4344```text theme={null}

4035This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.4345This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.

4036```4346```

4037 4347 

4038Un comando bloqueado informa la misma causa para su directorio de trabajo y termina con `re-run the command from its local, plainly-spelled path`. Antes de v2.1.217, el guard comparaba solo texto de ruta, por lo que dirigir un archivo dentro del checkout a través de una ruta UNC o `/net` no se bloqueaba.4348Un comando bloqueado reporta la misma causa para su directorio de trabajo y termina con `re-run the command from its local, plainly-spelled path`. Antes de v2.1.217, el protector comparaba solo texto de ruta, por lo que dirigir un archivo dentro del checkout a través de una ruta UNC o `/net` no se bloqueaba.

4039 4349 

4040**Qué hacer:**4350**Qué hacer:**

4041 4351 

4042* Generalmente nada: Claude reintenta con la ortografía local que el mensaje solicita4352* Generalmente nada: Claude reintenta con la ortografía local que el mensaje solicita

4043* Si el archivo está en un recurso compartido de red en lugar de un archivo local deletreado con una ruta de red, está fuera del espacio de trabajo local de la sesión; edítelo desde una sesión interactiva regular en su lugar4353* Si el archivo está en una compartición de red en lugar de un archivo local deletreado con una ruta de red, está fuera del espacio de trabajo local de la sesión; edítelo desde una sesión interactiva normal en su lugar

4044 4354 

4045<h3 id="command-blocked-by-the-worktree-isolation-checks">4355<h3 id="command-blocked-by-the-worktree-isolation-checks">

4046 Comando bloqueado por las comprobaciones de aislamiento de worktree4356 Comando bloqueado por las verificaciones de aislamiento de worktree

4047</h3>4357</h3>

4048 4358 

4049Claude ejecutó un comando Bash o Monitor en una [sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), y Claude Code lo rechazó por una de dos razones:4359Claude ejecutó un comando Bash o Monitor en una [sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), y Claude Code lo rechazó por una de dos razones:

4050 4360 

4051* El comando apunta git al checkout principal.4361* El comando apunta git al checkout principal.

4052* Claude Code no puede verificar a partir del texto del comando que cualquier git que ejecute el comando permanezca dentro del worktree. Un comando que nunca nombra git aún puede ser rechazado por esta razón, porque expandir una indirección de variable como `${!name}` o ejecutar una sustitución de función Bash como `${ command; }` produce un valor en tiempo de ejecución que puede ser un comando en sí.4362* Claude Code no puede verificar a partir del texto del comando que cualquier git que ejecute el comando se mantenga dentro del worktree. Un comando que nunca nombra git aún puede ser rechazado por esta razón, porque expandir una indirección de variable como `${!name}` o ejecutar una sustitución de función Bash como `${ command; }` produce un valor en tiempo de ejecución que en sí mismo puede ser un comando.

4053 4363 

4054El medio del mensaje nombra lo que no se pudo verificar:4364El medio del mensaje nombra lo que no se pudo verificar:

4055 4365 


4067 Esta sesión no tiene transcripción guardada4377 Esta sesión no tiene transcripción guardada

4068</h3>4378</h3>

4069 4379 

4070Se adjuntó a una [sesión en segundo plano](/docs/es/agent-view) detenida que fue enviada a segundo plano desde otra conversación con `←` o `/background` y se detuvo antes de que su primera respuesta terminara. Hasta que esa primera respuesta termine, la conversación aún vive solo en la sesión desde la que fue enviada a segundo plano, por lo que `claude attach` rechaza iniciar la sesión detenida en lugar de comenzar una conversación en blanco bajo el mismo ID de sesión. El mensaje termina con el comando `claude respawn` para esta sesión:4380Se conectó a una [sesión en segundo plano](/docs/es/agent-view) detenida que fue enviada a segundo plano desde otra conversación con `←` o `/background` y se detuvo antes de que su primera respuesta terminara. Hasta que esa primera respuesta termine, la conversación aún vive solo en la sesión desde la que fue enviada a segundo plano, por lo que `claude attach` rechaza iniciar la sesión detenida en lugar de comenzar una conversación en blanco bajo el mismo ID de sesión. El mensaje termina con el comando `claude respawn` para esta sesión:

4071 4381 

4072```text theme={null}4382```text theme={null}

4073This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4383This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4074```4384```

4075 4385 

4076Abrir la misma fila de sesión en [agent view](/docs/es/agent-view) muestra `Press enter again to restart this session fresh` debajo de la lista en su lugar, y un segundo `Enter` en la fila reinicia la sesión con una conversación vacía. Antes de v2.1.212, abrir la fila mostró el mensaje de rechazo sin forma de reiniciar desde agent view. Antes de v2.1.211, abrir la sesión detenida iniciaba silenciosamente esa conversación en blanco y podría volver a ejecutar el prompt original de la sesión.4386Abrir la fila de la misma sesión en [agent view](/docs/es/agent-view) muestra `Press enter again to restart this session fresh` debajo de la lista en su lugar, y un segundo `Enter` en la fila reinicia la sesión con una conversación vacía. Antes de v2.1.212, abrir la fila mostraba el mensaje de rechazo sin forma de reiniciar desde agent view. Antes de v2.1.211, abrir la sesión detenida iniciaba silenciosamente esa conversación en blanco y podría volver a ejecutar el prompt original de la sesión.

4077 4387 

4078**Qué hacer:**4388**Qué hacer:**

4079 4389 

4080* La conversación que envió a segundo plano está intacta: reanúdela con [`claude --resume`](/docs/es/sessions) o continúe trabajando en ella4390* La conversación que envió a segundo plano está intacta: reanúdela con [`claude --resume`](/docs/es/sessions) o continúe trabajando en ella

4081* Para iniciar la sesión detenida de nuevo, ejecute `claude respawn <id>` con el ID del mensaje, o presione `Enter` dos veces en su fila en agent view4391* Para iniciar la sesión detenida de todas formas, ejecute `claude respawn <id>` con el ID del mensaje, o presione `Enter` dos veces en su fila en agent view

4082* Si la sesión terminó una respuesta y aún ve este rechazo en una versión anterior a v2.1.214, una carpeta ilegible en `~/.claude/projects` podría hacer que el escaneo de transcripción pierda la conversación guardada; actualice a v2.1.214 o posterior, que tolera carpetas ilegibles durante el escaneo4392* Si la sesión terminó una respuesta y aún ve este rechazo en una versión anterior a v2.1.214, una carpeta ilegible en `~/.claude/projects` podría hacer que el escaneo de transcripción pierda la conversación guardada; actualice a v2.1.214 o posterior, que tolera carpetas ilegibles durante el escaneo

4083 4393 

4084<h3 id="this-session-is-running-in-another-terminal">4394<h3 id="this-session-is-running-in-another-terminal">


4107 La conversación guardada de esta sesión ya no está en el disco4417 La conversación guardada de esta sesión ya no está en el disco

4108</h3>4418</h3>

4109 4419 

4110Abrió una [sesión en segundo plano](/docs/es/agent-view) que terminó mientras el servicio en segundo plano estaba apagado, y [transcript cleanup](/docs/es/settings-reference#cleanupperioddays) ha eliminado desde entonces su conversación guardada, por ejemplo después de que la máquina estuvo apagada durante semanas. Abrir tal fila normalmente [reanuda su conversación guardada](/docs/es/agent-view#sessions-show-as-failed-after-shutdown). Sin nada que reanudar, Claude Code rechaza en lugar de volver a ejecutar el prompt original de la sesión sin preguntar:4420Abrió una [sesión en segundo plano](/docs/es/agent-view) que terminó mientras el servicio en segundo plano estaba apagado, y [la limpieza de transcripción](/docs/es/settings-reference#cleanupperioddays) ha eliminado desde entonces su conversación guardada, por ejemplo después de que la máquina estuvo apagada durante semanas. Abrir tal fila normalmente [reanuda su conversación guardada](/docs/es/agent-view#sessions-show-as-failed-after-shutdown). Sin nada que reanudar, Claude Code rechaza en lugar de volver a ejecutar el prompt original de la sesión sin preguntar:

4111 4421 

4112```text theme={null}4422```text theme={null}

4113This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.4423This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.


4117 4427 

4118**Qué hacer:**4428**Qué hacer:**

4119 4429 

4120* Ejecute `claude rm <id>` para eliminar la fila. Cuando se aplica uno de los [casos mantenidos](/docs/es/agent-view#what-deleting-a-session-removes), `claude rm` mantiene la fila y el worktree en su lugar e indica la razón4430* Ejecute `claude rm <id>` para eliminar la fila. Cuando se aplica uno de los [casos mantenidos](/docs/es/agent-view#what-deleting-a-session-removes), `claude rm` mantiene la fila y el worktree en su lugar y nombra la razón

4121* Para ejecutar el prompt original de la sesión nuevamente como una conversación nueva, ejecute `claude respawn <id>`4431* Para ejecutar el prompt original de la sesión nuevamente como una conversación nueva, ejecute `claude respawn <id>`

4122 4432 

4123Antes de v2.1.248, abrir tal fila volvía a ejecutar el prompt original de la sesión en lugar de rechazar, trayendo una tarea de hace semanas al primer plano.4433Antes de v2.1.248, abrir tal fila volvía a ejecutar el prompt original de la sesión en lugar de rechazar, trayendo una tarea de hace semanas al primer plano.


4134 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef4444 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4135```4445```

4136 4446 

4137Cuando Claude Code no puede resumir los commits, la línea de detalle dice `The worktree has unpushed commits` en su lugar. En [agent view](/docs/es/agent-view), la fila de la sesión muestra `not deleted` con la misma razón.4447Cuando Claude Code no puede resumir los commits, la línea de detalle lee `The worktree has unpushed commits` en su lugar. En [agent view](/docs/es/agent-view), la fila de la sesión muestra `not deleted` con la misma razón.

4138 4448 

4139Los commits en un remoto no bloquean la eliminación. Tampoco lo hacen los commits en la copia local de la rama predeterminada de su remoto `origin`, siempre que esa rama esté desprotegida en su checkout principal, el directorio del repositorio en sí en lugar de un worktree.4449Los commits en un remoto no bloquean la eliminación. Tampoco los commits en la copia local de la rama predeterminada de su remoto `origin`, siempre que esa rama esté desprotegida en su checkout principal, el directorio del repositorio en sí en lugar de un worktree.

4140 4450 

4141**Qué hacer:**4451**Qué hacer:**

4142 4452 

4143* Para mantener los commits, envíe la rama del worktree, o mérjela en la rama predeterminada desprotegida en su checkout principal, luego elimine la sesión nuevamente4453* Para mantener los commits, envíe la rama del worktree, o fusionela en la rama predeterminada desprotegida en su checkout principal, luego elimine la sesión nuevamente

4144* Para descartar los commits, ejecute el comando `claude rm <id> --discard-unpushed` que el mensaje imprimió, o presione `Ctrl+X` dos veces en la fila de la sesión en agent view nuevamente. Esto elimina la sesión y el worktree junto con su rama, los commits no enviados y cualquier cambio no confirmado. Si el worktree ha ganado un commit desde el rechazo, Claude Code lo mantiene nuevamente y muestra el estado actualizado4454* Para descartar los commits, ejecute el comando `claude rm <id> --discard-unpushed` que el mensaje imprimió, o presione `Ctrl+X` dos veces en la fila de la sesión en agent view nuevamente. Esto elimina la sesión y el worktree junto con su rama, los commits no enviados, y cualquier cambio no confirmado. Si el worktree ha ganado un commit desde el rechazo, Claude Code lo mantiene nuevamente y muestra el estado actualizado

4145* Cuando el mensaje dice que el worktree también está registrado por otra sesión terminada, eliminar nuevamente no lo descarta: envíe los commits, luego elimine la sesión nuevamente4455* Cuando el mensaje dice que el worktree también está registrado por otra sesión terminada, eliminar nuevamente no lo descarta: envíe los commits, luego elimine la sesión nuevamente

4146 4456 

4147Antes de v2.1.268, `claude rm` ponía el resumen de commits en la línea `kept` en sí. Cuando `claude rm` no podía resumir los commits, la línea `kept` decía `worktree has commits that are not pushed anywhere` en lugar del resumen.4457Antes de v2.1.268, `claude rm` ponía el resumen de commits en la línea `kept` en sí. Cuando `claude rm` no podía resumir los commits, la línea `kept` leía `worktree has commits that are not pushed anywhere` en lugar del resumen.

4148 4458 

4149Antes de v2.1.260, el mensaje no nombraba la rama ni los commits, y eliminar nuevamente se rechazaba de la misma manera: eliminar la sesión sin enviar significaba eliminar el worktree usted mismo con `git worktree remove --force <path>`, luego ejecutar `claude rm <id>` nuevamente.4459Antes de v2.1.260, el mensaje no nombraba la rama o los commits, y eliminar nuevamente se rechazaba de la misma manera: eliminar la sesión sin enviar significaba eliminar el worktree usted mismo con `git worktree remove --force <path>`, luego ejecutar `claude rm <id>` nuevamente.

4150 4460 

4151Antes de v2.1.248, la rama predeterminada desprotegida en su checkout principal no contaba: una rama que ya había fusionado allí aún activaba este rechazo hasta que sus commits llegaran a un remoto.4461Antes de v2.1.248, la rama predeterminada desprotegida en su checkout principal no contaba: una rama que ya había fusionado allí aún activaba este rechazo hasta que sus commits llegaran a un remoto.

4152 4462 

4153<h3 id="terminal-host-process-died">4463<h3 id="terminal-host-process-died">

4154 El proceso host de terminal murió4464 El proceso host de la terminal murió

4155</h3>4465</h3>

4156 4466 

4157Cada terminal de [sesión en segundo plano](/docs/es/agent-view) se ejecuta en un proceso host bajo el servicio en segundo plano, y ese proceso murió mientras el servicio aún mantenía su conexión, por lo que no se pudo acceder a la sesión.4467Cada terminal de [sesión en segundo plano](/docs/es/agent-view) se ejecuta en un proceso host bajo el servicio en segundo plano, y ese proceso murió mientras el servicio aún mantenía su conexión, por lo que no se pudo acceder a la sesión.


4172 4482 

4173La conversación se guarda de cualquier forma.4483La conversación se guarda de cualquier forma.

4174 4484 

4175Una fila que ejecuta un [comando shell](/docs/es/agent-view#run-a-shell-command) en su lugar muestra `terminal host process died — its output is gone; the command was not run again`, y `claude attach` imprime `This command's terminal host process died — its output is gone and the command was not run again`. Claude Code nunca vuelve a ejecutar el comando por usted.4485Una fila que ejecuta un [comando shell](/docs/es/agent-view#run-a-shell-command) en su lugar muestra `terminal host process died — its output is gone; the command was not run again`, y `claude attach` imprime `This command's terminal host process died — its output is gone and the command was not run again`. Claude Code nunca vuelve a ejecutar el comando para usted.

4176 4486 

4177**Qué hacer:**4487**Qué hacer:**

4178 4488 


4200Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).4510Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).

4201```4511```

4202 4512 

4203Claude Code nunca reinicia una fila que ejecuta un [comando shell](/docs/es/agent-view#run-a-shell-command) por usted, porque un reinicio volvería a ejecutar el comando.4513Claude Code nunca reinicia una fila que ejecuta un [comando shell](/docs/es/agent-view#run-a-shell-command) para usted, porque un reinicio volvería a ejecutar el comando.

4204 4514 

4205**Qué hacer:**4515**Qué hacer:**

4206 4516 


4223**Qué hacer:**4533**Qué hacer:**

4224 4534 

4225* Si no detuvo la sesión, abra su fila nuevamente en agent view o ejecute `claude respawn <id>` para reiniciarla4535* Si no detuvo la sesión, abra su fila nuevamente en agent view o ejecute `claude respawn <id>` para reiniciarla

4226* Si la detuvo usted mismo, nada queda por hacer: la sesión permanece detenida4536* Si la detuvo usted mismo, no queda nada por hacer: la sesión permanece detenida

4227 4537 

4228<h3 id="session-agent-no-longer-available">4538<h3 id="session-agent-no-longer-available">

4229 Agente de sesión ya no disponible4539 Agente de sesión ya no disponible


4249 Errores del lanzador CLAUDE\_CODE\_PROCESS\_WRAPPER4559 Errores del lanzador CLAUDE\_CODE\_PROCESS\_WRAPPER

4250</h3>4560</h3>

4251 4561 

4252[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/es/corporate-launcher) está configurado, y su valor no se puede usar, por lo que Claude Code rechaza iniciar el proceso afectado en lugar de ejecutarlo sin el lanzador. Los problemas de configuración se informan con un mensaje que comienza con el nombre de la variable y establece la razón, por ejemplo:4562[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/es/corporate-launcher) está configurado, y su valor no se puede usar, por lo que Claude Code rechaza iniciar el proceso afectado en lugar de ejecutarlo sin el lanzador. Los problemas de configuración se reportan con un mensaje que comienza con el nombre de la variable y establece la razón, por ejemplo:

4253 4563 

4254```text theme={null}4564```text theme={null}

4255CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4565CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4256```4566```

4257 4567 

4258Un lanzador que se inicia pero sale sin reemplazarse a sí mismo con Claude Code falla la sesión que estaba iniciando, y la fila de la sesión en agent view informa que el lanzador `must exec, not daemonize`, seguido de cualquier cosa que el lanzador imprimió. Una sesión que no puede iniciarse o alcanzar el servicio en segundo plano debido al lanzador informa el problema del lanzador como la razón dentro de `Couldn't reach the background service (...)`.4568Un lanzador que se inicia pero sale sin reemplazarse a sí mismo con Claude Code falla la sesión que estaba iniciando, y la fila de la sesión en agent view reporta que el lanzador `must exec, not daemonize`, seguido de cualquier cosa que el lanzador imprimió. Una sesión que no puede iniciarse o alcanzar el servicio en segundo plano debido al lanzador reporta el problema del lanzador como la razón dentro de `Couldn't reach the background service (...)`.

4259 4569 

4260**Qué hacer:**4570**Qué hacer:**

4261 4571 


4283 4593 

4284**Qué hacer:**4594**Qué hacer:**

4285 4595 

4286* Si el mensaje dice `Couldn't start the session`, actualice a v2.1.212 o posterior. En versiones anteriores también puede ejecutar `claude daemon run` en una terminal separada primero, luego iniciar la sesión en segundo plano nuevamente. Ese comando ejecuta el servicio en segundo plano en el primer plano de la terminal, por lo que el servicio dura solo mientras esa terminal permanece abierta.4596* Si el mensaje lee `Couldn't start the session`, actualice a v2.1.212 o posterior. En versiones anteriores también puede ejecutar `claude daemon run` en una terminal separada primero, luego iniciar la sesión en segundo plano nuevamente. Ese comando ejecuta el servicio en segundo plano en el primer plano de la terminal, por lo que el servicio dura solo mientras esa terminal permanece abierta.

4287* Si una instalación npm estaba reemplazando el binario, espere a que termine, luego inicie la sesión en segundo plano nuevamente4597* Si una instalación npm estaba reemplazando el binario, espere a que termine, luego inicie la sesión en segundo plano nuevamente

4288* Si el error aparece en v2.1.212 o posterior mientras no se ejecuta ninguna instalación npm, pida al administrador de Windows que permita el ejecutable de Claude Code en la política de restricción4598* Si el error aparece en v2.1.212 o posterior mientras no se ejecuta ninguna instalación npm, pida al administrador de Windows que permita el ejecutable de Claude Code en la política de restricción

4289* Si el servicio en segundo plano se detiene cuando cierra la terminal, Claude Code lo inició sin PowerShell. Instale PowerShell 7, o pida al administrador que desbloquee PowerShell, para que el servicio pueda sobrevivir a la terminal.4599* Si el servicio en segundo plano se detiene cuando cierra la terminal, Claude Code lo inició sin PowerShell. Instale PowerShell 7, o pida al administrador que desbloquee PowerShell, para que el servicio pueda sobrevivir a la terminal.


4300 4610 

4301Cuando inicia una sesión con `/background` o `claude --bg`, la misma razón aparece dentro de `Couldn't reach the background service (...)`. Durante la misma ventana de reinstalación el error puede nombrar otro código en su lugar, como `ENOENT` o `ENOEXEC`, o `EUNKNOWN` o `EPERM` en Windows; un `EUNKNOWN` que persiste en reintentos tiene una [causa diferente](#eunknown-when-starting-a-background-session).4611Cuando inicia una sesión con `/background` o `claude --bg`, la misma razón aparece dentro de `Couldn't reach the background service (...)`. Durante la misma ventana de reinstalación el error puede nombrar otro código en su lugar, como `ENOENT` o `ENOEXEC`, o `EUNKNOWN` o `EPERM` en Windows; un `EUNKNOWN` que persiste en reintentos tiene una [causa diferente](#eunknown-when-starting-a-background-session).

4302 4612 

4303En una instalación npm, Claude Code espera a que la reinstalación termine y reintenta por su cuenta: hasta diez segundos, y hasta dos minutos mientras una instalación npm de Claude Code aún se está ejecutando visiblemente en la máquina, lo que cubre otro proceso Claude Code descargando una actualización. Cuando la instalación supera esa espera, el fallo nombra la actualización en lugar del código de error desnudo:4613En una instalación npm, Claude Code espera a que la reinstalación termine y reintenta por su cuenta: hasta diez segundos, y hasta dos minutos mientras una instalación npm de Claude Code aún se está ejecutando visiblemente en la máquina, lo que cubre otro proceso Claude Code descargando una actualización. Cuando la instalación supera esa espera, el fallo nombra la actualización en lugar del código de error simple:

4304 4614 

4305```text theme={null}4615```text theme={null}

4306Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes4616Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes


4314* Si el error persiste mientras no se ejecuta ninguna instalación npm, su usuario no puede ejecutar el binario instalado. Verifique sus permisos y los de su directorio, o reinstale Claude Code.4624* Si el error persiste mientras no se ejecuta ninguna instalación npm, su usuario no puede ejecutar el binario instalado. Verifique sus permisos y los de su directorio, o reinstale Claude Code.

4315 4625 

4316<h3 id="background-service-exited-before-it-became-reachable">4626<h3 id="background-service-exited-before-it-became-reachable">

4317 El servicio en segundo plano salió antes de que se volviera alcanzable4627 El servicio en segundo plano salió antes de que fuera alcanzable

4318</h3>4628</h3>

4319 4629 

4320El proceso que Claude Code inició como el [servicio en segundo plano](/docs/es/agent-view#the-supervisor-process) salió antes de aceptar conexiones, por lo que Claude Code no pudo abrir su sesión. Cuando el servicio imprimió un error antes de salir, la razón entre paréntesis da el código de salida o señal y la primera línea que el servicio imprimió, que nombra qué lo detuvo:4630El proceso que Claude Code inició como el [servicio en segundo plano](/docs/es/agent-view#the-supervisor-process) salió antes de aceptar conexiones, por lo que Claude Code no pudo abrir su sesión. Cuando el servicio imprimió un error antes de salir, la razón entre paréntesis da el código de salida o señal y la primera línea que el servicio imprimió, que nombra lo que lo detuvo:

4321 4631 

4322```text theme={null}4632```text theme={null}

4323Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'4633Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'


4325 4635 

4326Cuando abre una sesión desde [agent view](/docs/es/agent-view), la misma razón sigue a `Couldn't start the background service —`. Cuando el servicio no imprimió nada antes de salir, el mensaje dice `nothing on stderr` en su lugar.4636Cuando abre una sesión desde [agent view](/docs/es/agent-view), la misma razón sigue a `Couldn't start the background service —`. Cuando el servicio no imprimió nada antes de salir, el mensaje dice `nothing on stderr` en su lugar.

4327 4637 

4328Claude Code informa el fallo con la línea de error del servicio. Antes de v2.1.246, el fallo aparecía solo después de una espera de 45 segundos, como `background service did not become reachable within 45s`, sin la línea de error del servicio.4638Claude Code reporta el fallo con la línea de error del servicio. Antes de v2.1.246, el fallo aparecía solo después de una espera de 45 segundos, como `background service did not become reachable within 45s`, sin la línea de error del servicio.

4329 4639 

4330Dos razones entrecomilladas tienen causas conocidas:4640Dos razones entrecomilladas tienen causas conocidas:

4331 4641 


4341 El directorio de trabajo ya no existe al iniciar una sesión en segundo plano4651 El directorio de trabajo ya no existe al iniciar una sesión en segundo plano

4342</h3>4652</h3>

4343 4653 

4344Intentó iniciar una [sesión en segundo plano](/docs/es/agent-view) en un directorio que ya no existe. Esto sucede cuando envía desde agent view o ejecuta `/background` después de que el directorio en el que estaba trabajando fue eliminado o movido. También sucede cuando se adjunta a o reinicia una sesión cuyo proceso ha salido y cuyo directorio se ha ido, porque el nuevo proceso comenzaría en ese mismo directorio. Claude Code no inicia la sesión, y el mensaje nombra el directorio faltante:4654Intentó iniciar una [sesión en segundo plano](/docs/es/agent-view) en un directorio que ya no existe. Claude Code no inicia la sesión, y el mensaje nombra el directorio faltante:

4345 4655 

4346```text theme={null}4656```text theme={null}

4347Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4657Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4353 4663 

4354* Recree el directorio que el mensaje nombra, o envíe desde un directorio que existe, luego intente nuevamente4664* Recree el directorio que el mensaje nombra, o envíe desde un directorio que existe, luego intente nuevamente

4355 4665 

4666<h3 id="workspace-not-trusted-when-dispatching-a-background-session">

4667 Espacio de trabajo no confiable al enviar una sesión en segundo plano

4668</h3>

4669 

4670Inició o reinició una [sesión en segundo plano](/docs/es/agent-view) en un directorio que no ha [confiado](/docs/es/permissions#project-allow-rules-and-workspace-trust), y el diálogo de confianza del espacio de trabajo no pudo aparecer para preguntarle. Claude Code no inicia la sesión:

4671 

4672```text theme={null}

4673Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4674```

4675 

4676Desde una terminal en el directorio de la sesión, el mismo comando muestra el diálogo de confianza en su lugar e inicia la sesión una vez que acepta. Este mensaje aparece donde no puede haber diálogo, como en un script, o cuando reinicia una sesión desde un directorio diferente al suyo.

4677 

4678Dos variantes nombran una causa diferente:

4679 

4680* **`The home directory is trusted one session at a time`**: el directorio de la sesión es su directorio de inicio. Claude Code nunca guarda confianza para el directorio de inicio, por lo que aceptar el diálogo allí en una sesión anterior no cuenta.

4681* **`<path> could not be resolved on disk`**: Claude Code no pudo encontrar el directorio de la sesión en el disco.

4682 

4683**Qué hacer:**

4684 

4685* Ejecute `claude` en el directorio que el mensaje nombra y acepte el diálogo de confianza, luego ejecute el comando nuevamente

4686* Para el mensaje del directorio de inicio, ejecute el comando desde una terminal en su directorio de inicio para que el diálogo pueda aparecer, o inicie la sesión desde un directorio de proyecto en su lugar

4687* Para el mensaje `could not be resolved on disk`, recree el directorio, o inicie una nueva sesión desde un directorio que existe

4688 

4356<h2 id="wrapper-and-ide-errors">4689<h2 id="wrapper-and-ide-errors">

4357 Errores de wrapper e IDE4690 Errores de wrapper e IDE

4358</h2>4691</h2>


4585* Acorte el frontmatter `description` de sus archivos de agente, o pida a Claude que los recorte por usted.4918* Acorte el frontmatter `description` de sus archivos de agente, o pida a Claude que los recorte por usted.

4586* Elimine los archivos de agente que ya no utiliza.4919* Elimine los archivos de agente que ya no utiliza.

4587 4920 

4921<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

4922 Una skill, comando o flujo de trabajo no se cargó porque su nombre está reservado

4923</h3>

4924 

4925Una carpeta de skill, un frontmatter `name`, un archivo o subcarpeta en `.claude/commands/`, o un [flujo de trabajo guardado](/docs/es/workflows#save-the-workflow-for-reuse) utiliza el nombre `anthropic-skills` o un nombre que comienza con `anthropic-skills:`. Claude Code [reserva ese nombre para skills sincronizadas desde claude.ai](/docs/es/skills#names-reserved-for-synced-skills) y no carga ese elemento.

4926 

4927Claude Code muestra esta advertencia como un aviso de inicio en la vista de conversación en lugar de en stderr:

4928 

4929```text theme={null}

4930Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account

4931```

4932 

4933El aviso nombra qué cambiar para el primer elemento que rechazó: una carpeta o archivo para renombrar, una línea `name:` para editar, o un flujo de trabajo para renombrar. Cuando se rechazó más de un elemento, el aviso termina con un recuento como `· 2 more`, y el [registro de depuración](/docs/es/debug-your-config) nombra cada uno.

4934 

4935**Qué hacer:**

4936 

4937* Renombre el elemento que nombra el aviso, o edite la línea `name:` a la que apunta, luego reinicie la sesión.

4938 

4939Antes de v2.1.282, Claude Code cargaba skills y comandos con estos nombres.

4940 

4588<h3 id="workspace-has-not-been-trusted">4941<h3 id="workspace-has-not-been-trusted">

4589 El espacio de trabajo no ha sido confiable4942 El espacio de trabajo no ha sido confiable

4590</h3>4943</h3>


4631 La configuración remota administrada no se pudo cargar4984 La configuración remota administrada no se pudo cargar

4632</h3>4985</h3>

4633 4986 

4634Su sesión es elegible para [configuración administrada por servidor](/docs/es/server-managed-settings), pero Claude Code no pudo obtenerla, por lo que muestra esta advertencia en sesiones interactivas. La causa entre paréntesis nombra lo que falló, como `network error`, `request timed out` o `authentication rejected (401)`, y el resto de la línea dice qué política ejecuta la sesión:4987Su sesión es elegible para [configuración administrada por servidor](/docs/es/server-managed-settings), pero Claude Code no pudo obtenerla o no pudo aplicar lo que el servidor devolvió, por lo que muestra esta advertencia en sesiones interactivas.

4988 

4989La causa entre paréntesis nombra lo que falló, como `network error`, `request timed out` o `authentication rejected (401)`. La causa `no setting in the server response could be applied as written` significa que el servidor respondió pero ninguna de las configuraciones que devolvió pasó [validación](/docs/es/server-managed-settings#invalid-entries-in-delivered-settings). Antes de v2.1.282, esta causa decía `server returned invalid settings`.

4990 

4991El resto de la línea dice qué política ejecuta la sesión:

4635 4992 

4636* **Configuración almacenada en caché de una obtención anterior exitosa**: Claude Code ejecuta la sesión en esa política almacenada en caché, excepto las [variables de entorno retenidas](/docs/es/server-managed-settings#fetch-and-caching-behavior), y la línea dice `using cached policy`.4993* **Configuración almacenada en caché de una obtención anterior exitosa**: Claude Code ejecuta la sesión en esa política almacenada en caché, excepto las [variables de entorno retenidas](/docs/es/server-managed-settings#fetch-and-caching-behavior), y la línea dice `using cached policy`.

4637* **Sin caché**: Claude Code ejecuta la sesión sin configuración administrada por servidor, y la línea dice `no remote policy applied`.4994* **Sin caché**: Claude Code ejecuta la sesión sin configuración administrada por servidor, y la línea dice `no remote policy applied`.


4639**Qué hacer:**4996**Qué hacer:**

4640 4997 

4641* Actúe sobre la causa que nombra el mensaje: para una causa de red, verifique que esta máquina pueda alcanzar `api.anthropic.com`; para una causa de autenticación, verifique su inicio de sesión con `/status`4998* Actúe sobre la causa que nombra el mensaje: para una causa de red, verifique que esta máquina pueda alcanzar `api.anthropic.com`; para una causa de autenticación, verifique su inicio de sesión con `/status`

4999* Para `no setting in the server response could be applied as written`, pida a su administrador que corrija la configuración en el servidor

4642* Ejecute `/status` o `claude doctor` para el diagnóstico completo5000* Ejecute `/status` o `claude doctor` para el diagnóstico completo

4643 5001 

4644Antes de v2.1.248, Claude Code reportaba una obtención de configuración fallida solo en el registro de depuración.5002Antes de v2.1.248, Claude Code reportaba una obtención de configuración fallida solo en el registro de depuración.


4658* Inicie Claude Code de nuevo y apruebe el diálogo para continuar bajo la configuración de su organización. Un diálogo rechazado no se recuerda, por lo que aparece de nuevo en el siguiente inicio.5016* Inicie Claude Code de nuevo y apruebe el diálogo para continuar bajo la configuración de su organización. Un diálogo rechazado no se recuerda, por lo que aparece de nuevo en el siguiente inicio.

4659* Si no está seguro acerca de una configuración que enumera el diálogo, pregunte a quien mantenga la configuración administrada de su organización antes de aprobar5017* Si no está seguro acerca de una configuración que enumera el diálogo, pregunte a quien mantenga la configuración administrada de su organización antes de aprobar

4660 5018 

5019<h3 id="managed-settings-block-the-default-model">

5020 La configuración administrada bloquea el modelo predeterminado

5021</h3>

5022 

5023Su [configuración administrada](/docs/es/managed-settings) de la organización bloquea el modelo al que se resuelve la opción Predeterminada y cada modelo al que podría reducirse. Una sesión que comenzaría en la opción Predeterminada se cierra al iniciar en lugar de ejecutar un modelo bloqueado. Qué mensaje ve depende de la configuración que lo bloquea. Cuando una lista [`deniedModels`](/docs/es/model-config#block-specific-models-or-versions) lo bloquea, el mensaje dice:

5024 

5025```text theme={null}

5026Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

5027```

5028 

5029Cuando una lista `availableModels` con [`availableModelsMatch`](/docs/es/settings-reference#availablemodelsmatch) establecido en `"exact"` la omite, el mensaje dice:

5030 

5031```text theme={null}

5032Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update "availableModels".

5033```

5034 

5035**Qué hacer:**

5036 

5037* Si administra la configuración, agregue un modelo que sus usuarios puedan ejecutar a `availableModels`, o estreche las entradas `deniedModels` que bloquean cada alternativa. [Block specific models or versions](/docs/es/model-config#block-specific-models-or-versions) describe cómo la opción Predeterminada se reduce

5038* Si no las administra, envíe el mensaje a su administrador. Sus propios archivos de configuración no pueden ampliar una lista `availableModels` o `deniedModels` administrada

5039 

4661<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5040<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

4662 El servidor MCP está bloqueado por la política administrada empresarial5041 El servidor MCP está bloqueado por la política administrada empresarial

4663</h3>5042</h3>


4927 5306 

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

4929* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible5308* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible

4930* El [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en Fable 5.1, Fable 5, Opus 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción5309* El [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción

4931 5310 

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

4933 5312 

Details

219</table>219</table>

220 220 

221<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> En Google Cloud's Agent Platform, la búsqueda web está disponible para modelos Claude 4 y posteriores.<br />221<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> En Google Cloud's Agent Platform, la búsqueda web está disponible para modelos Claude 4 y posteriores.<br />

222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> En estos proveedores, el modo automático admite solo Claude Sonnet 5, Opus 4.7 o posterior, y los modelos Fable. Consulte [Configuración de Auto mode](/docs/es/auto-mode-config). El modo de permiso inicial integrado en estos proveedores es Manual. Consulte [en qué modo comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in). En v2.1.158 a v2.1.206, el modo automático en estos proveedores también requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 eliminó el requisito.<br />222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> En estos proveedores, el modo automático admite solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior, y los modelos Fable. Consulte [Configuración de Auto mode](/docs/es/auto-mode-config). Para el modo de permiso en el que comienza una sesión en estos proveedores, consulte [En qué modo comienza una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in). En v2.1.158 a v2.1.206, el modo automático en estos proveedores también requería establecer `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 eliminó el requisito.<br />

223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeto a su acuerdo con el proveedor de nube.<br />223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Sujeto a su acuerdo con el proveedor de nube.<br />

224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Panel y API solamente. [Métricas de contribución](/docs/es/analytics#enable-contribution-metrics) requiere una organización Team o Enterprise de claude.ai.<br />224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Panel y API solamente. [Métricas de contribución](/docs/es/analytics#enable-contribution-metrics) requiere una organización Team o Enterprise de claude.ai.<br />

225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requiere Claude Code v2.1.224 o posterior en macOS y Linux, incluido Linux dentro de WSL 2. En Windows nativo, requiere Claude Code v2.1.234 o posterior. Con autenticación de clave API, la mensajería es solo en la misma máquina. En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform y Microsoft Foundry, la mensajería es solo en la misma máquina y requiere Claude Code v2.1.248 o posterior. Claude puede encontrar sus sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web) y sus sesiones en otras máquinas solo desde una sesión que está conectada a [Remote Control](/docs/es/remote-control). Para conectarse, necesita un inicio de sesión de claude.ai y los otros [requisitos de Remote Control](/docs/es/remote-control#requirements). Consulte [Mensajería de sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines).225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Requiere Claude Code v2.1.224 o posterior en macOS y Linux, incluido Linux dentro de WSL 2. En Windows nativo, requiere Claude Code v2.1.234 o posterior. Con autenticación de clave API, la mensajería es solo en la misma máquina. En Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform y Microsoft Foundry, la mensajería es solo en la misma máquina y requiere Claude Code v2.1.248 o posterior. Claude puede encontrar sus [sesiones en la nube](/docs/es/claude-code-on-the-web) y sus sesiones en otras máquinas solo desde una sesión que está conectada a [Remote Control](/docs/es/remote-control). Para conectarse, necesita un inicio de sesión de claude.ai y los otros [requisitos de Remote Control](/docs/es/remote-control#requirements). Consulte [Mensajería de sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines).

226 226 

227<Note>227<Note>

228 Si se autentica a través de una [puerta de enlace LLM](/docs/es/llm-gateway), la disponibilidad de características coincide con el proveedor subyacente al que la puerta de enlace reenvía, excepto por las características que Claude Code desactiva. Siempre que `ANTHROPIC_BASE_URL` apunte a un host distinto de `api.anthropic.com`, Claude Code desactiva características como [Remote Control](/docs/es/remote-control#requirements) y [configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability), sea lo que sea que la puerta de enlace reenvíe. Algunas características solo de Anthropic, como [Advisor](/docs/es/advisor), funcionan solo si la puerta de enlace reenvía solicitudes intactas a la API de Anthropic.228 Si se autentica a través de una [puerta de enlace LLM](/docs/es/llm-gateway), la disponibilidad de características coincide con el proveedor subyacente al que la puerta de enlace reenvía, excepto por las características que Claude Code desactiva. Siempre que `ANTHROPIC_BASE_URL` apunte a un host distinto de `api.anthropic.com`, Claude Code desactiva características como [Remote Control](/docs/es/remote-control#requirements) y [configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability), sea lo que sea que la puerta de enlace reenvíe. Algunas características solo de Anthropic, como [Advisor](/docs/es/advisor), funcionan solo si la puerta de enlace reenvía solicitudes intactas a la API de Anthropic.


243 **Soporte parcial:**243 **Soporte parcial:**

244 244 

245 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)245 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

246 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5, Opus 4.7 o posterior, y modelos Fable solamente246 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5 o posterior, Opus 4.7 o posterior, y modelos Fable solamente

247 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>247 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

248 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de AWS248 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de AWS

249 249 


269 269 

270 * [Desktop](/docs/es/desktop): a través de [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) o [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)270 * [Desktop](/docs/es/desktop): a través de [configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) o [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

271 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): modelos Claude 4 y posteriores271 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): modelos Claude 4 y posteriores

272 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5, Opus 4.7 o posterior, y modelos Fable solamente272 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5 o posterior, Opus 4.7 o posterior, y modelos Fable solamente

273 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>273 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

274 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Google Cloud274 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Google Cloud

275 275 


283 283 

284 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)284 * [Desktop](/docs/es/desktop): solo a través de [Claude Desktop en 3P](https://claude.com/docs/third-party/claude-desktop/overview)

285 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): [implementaciones hospedadas en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) solamente285 * [Búsqueda web](/docs/es/tools-reference#websearch-tool-behavior): [implementaciones hospedadas en Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) solamente

286 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5, Opus 4.7 o posterior, y modelos Fable solamente286 * [Auto mode](/docs/es/auto-mode-config): Sonnet 5 o posterior, Opus 4.7 o posterior, y modelos Fable solamente

287 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>287 * [Mensajería entre sesiones](/docs/es/cross-session-messaging): entre sus sesiones en esta máquina solamente <sup><a href="#fn5">5</a></sup>

288 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Azure288 * [Zero Data Retention](/docs/es/zero-data-retention): sujeto a su acuerdo de Azure

289 289 

fullscreen.md +3 −1

Details

104* **Haga clic en una opción en un menú de selección múltiple** para alternarla, y haga clic en el botón de envío para confirmar sus opciones. Hacer clic en una fila de texto libre, como la fila `Other` en una pregunta de opción múltiple, enfoca su campo de entrada para que pueda escribir una respuesta. Requiere Claude Code v2.1.208 o posterior.104* **Haga clic en una opción en un menú de selección múltiple** para alternarla, y haga clic en el botón de envío para confirmar sus opciones. Hacer clic en una fila de texto libre, como la fila `Other` en una pregunta de opción múltiple, enfoca su campo de entrada para que pueda escribir una respuesta. Requiere Claude Code v2.1.208 o posterior.

105* **Haga clic en un valor de configuración en el panel `/config`** para cambiarlo, y desplácese por la lista de configuración con la rueda del ratón. Requiere Claude Code v2.1.271 o posterior.105* **Haga clic en un valor de configuración en el panel `/config`** para cambiarlo, y desplácese por la lista de configuración con la rueda del ratón. Requiere Claude Code v2.1.271 o posterior.

106* **Desplace un menú de selección o selección múltiple con la rueda del ratón** cuando tenga más opciones de las que muestra a la vez, como la lista `/model` en una ventana de terminal corta. La rueda desplaza la lista mientras el puntero está sobre sus opciones. Requiere Claude Code v2.1.280 o posterior.106* **Desplace un menú de selección o selección múltiple con la rueda del ratón** cuando tenga más opciones de las que muestra a la vez, como la lista `/model` en una ventana de terminal corta. La rueda desplaza la lista mientras el puntero está sobre sus opciones. Requiere Claude Code v2.1.280 o posterior.

107* **Desplace una lista que se desborda con su barra de desplazamiento.** En paneles de lista como `/skills`, `/mcp` y la lista Instalado de `/plugin`, aparece una barra de desplazamiento junto a una lista con más filas de las que caben mientras el puntero está sobre ella. Haga clic en la pista para saltar a ese punto, o arrastre el pulgar. Requiere Claude Code v2.1.281 o posterior.

107* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic de nuevo para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.108* **Haga clic en un resultado de herramienta contraído** para expandirlo y ver la salida completa. Haga clic de nuevo para contraerlo. La llamada de herramienta y su resultado se expanden juntos. Solo los mensajes que tienen más para mostrar son clicables.

108 * Hacer clic también expande la salida de un comando shell `!`, ya sea un resultado truncado anterior o la fila de progreso en vivo mientras se ejecuta el comando. Requiere Claude Code v2.1.257 o posterior.109 * Hacer clic también expande la salida de un comando shell `!`, ya sea un resultado truncado anterior o la fila de progreso en vivo mientras se ejecuta el comando. Requiere Claude Code v2.1.257 o posterior.

110 * Hacer clic también expande una línea `Message from @<sender>` atenuada cuando el remitente es un [compañero de equipo](/docs/es/agent-teams) u otro agente ejecutándose en su sesión. La línea de un mensaje de [una de sus otras sesiones](/docs/es/cross-session-messaging#what-a-message-looks-like) también muestra la primera línea del mensaje y no es clicable, así que presione `Ctrl+o` para leer esa.

109* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las URLs simples `http://` y `https://` se abren en su navegador, y las rutas de archivo en la salida de herramientas, como las que se imprimen después de un Edit o Write, se abren en su aplicación predeterminada. Un clic simple sin el modificador no abre enlaces, coincidiendo con el comportamiento de terminal nativo.111* **Mantenga presionado `Cmd` en macOS, o `Ctrl` en Linux y Windows, y haga clic en una URL o ruta de archivo** para abrirla. Las URLs simples `http://` y `https://` se abren en su navegador, y las rutas de archivo en la salida de herramientas, como las que se imprimen después de un Edit o Write, se abren en su aplicación predeterminada. Un clic simple sin el modificador no abre enlaces, coincidiendo con el comportamiento de terminal nativo.

110 * Claude Code renderiza una ruta de red (UNC), como `\\server\share\file.ts`, como texto sin formato sin enlace, porque abrir una ruta de red puede enviar sus credenciales de Windows al host que nombra.112 * Claude Code renderiza una ruta de red (UNC), como `\\server\share\file.ts`, como texto sin formato sin enlace, porque abrir una ruta de red puede enviar sus credenciales de Windows al host que nombra.

111 * Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo del ratón del terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code recibe un clic simple. En Ghostty, y en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando.113 * Algunos terminales de macOS reenvían `Cmd`+clic a la aplicación en ejecución en lugar de abrir el enlace ellos mismos, y el protocolo del ratón del terminal no tiene forma de codificar la tecla `Cmd`, por lo que Claude Code recibe un clic simple. En Ghostty, y en Warp en macOS, Claude Code detecta esto y permite que un clic simple en un enlace lo abra, y mantener presionado `Cmd` sigue funcionando.


290CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude292CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude

291```293```

292 294 

293Con la captura del ratón deshabilitada, el desplazamiento por teclado con `PgUp`, `PgDn`, `Ctrl+Home` y `Ctrl+End` sigue funcionando, y su terminal maneja la selección de forma nativa. Pierde la capacidad de hacer clic para posicionar el cursor, hacer clic para expandir la salida de herramientas, hacer clic en URL y desplazamiento de rueda dentro de Claude Code.295Con la captura del ratón deshabilitada, el desplazamiento por teclado con `PgUp`, `PgDn`, `Ctrl+Home` y `Ctrl+End` sigue funcionando, y su terminal maneja la selección de forma nativa. Pierde la capacidad de hacer clic para posicionar el cursor, hacer clic para expandir, hacer clic en URL y desplazamiento de rueda dentro de Claude Code.

294 296 

295Para mantener el desplazamiento de rueda pero desactivar el manejo de clic, arrastre y desplazamiento, establezca `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1` en su lugar. Requiere Claude Code v2.1.195 o posterior. `CLAUDE_CODE_DISABLE_MOUSE` tiene prioridad cuando ambas variables están establecidas.297Para mantener el desplazamiento de rueda pero desactivar el manejo de clic, arrastre y desplazamiento, establezca `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1` en su lugar. Requiere Claude Code v2.1.195 o posterior. `CLAUDE_CODE_DISABLE_MOUSE` tiene prioridad cuando ambas variables están establecidas.

296 298 

Details

252 El inicio de sesión falla con `Unable to get organization UUID`252 El inicio de sesión falla con `Unable to get organization UUID`

253</h3>253</h3>

254 254 

255Las sesiones en la nube requieren una organización de Equipo o Empresa. Inicie sesión con `/login` usando su cuenta de organización. Si se autentica con una clave de API en su lugar, las sesiones en la nube fallan antes con un mensaje pidiéndole que ejecute `/login`.255Inicie sesión con `/login` usando su cuenta de organización. Si se autentica con una clave de API en su lugar, las sesiones en la nube fallan antes con un mensaje pidiéndole que ejecute `/login`.

256 256 

257<h2 id="related-resources">257<h2 id="related-resources">

258 Recursos relacionados258 Recursos relacionados

glossary.md +28 −1

Details

72 Auto mode72 Auto mode

73</h3>73</h3>

74 74 

75Un [permission mode](#permission-mode) donde un modelo clasificador separado revisa acciones en lugar de usted, por lo que Claude Code ejecuta la mayoría de ellas sin solicitarle. Claude Code aún le solicita antes de acciones que coincidan con sus reglas de solicitud explícita. En los planes Pro, Max y Team, auto mode es el [permission mode de inicio integrado](/docs/es/permission-modes#which-mode-a-session-starts-in) para sesiones interactivas de terminal y VS Code. El clasificador bloquea la escalada de alcance, la infraestructura no confiable y la [prompt injection](#prompt-injection). Los resultados de herramientas se eliminan de lo que ve, por lo que el contenido hostil en un archivo o página web no puede manipularlo directamente.75Un [permission mode](#permission-mode) donde un modelo clasificador separado revisa acciones en lugar de usted, por lo que Claude Code ejecuta la mayoría de ellas sin solicitarle. Claude Code aún le solicita antes de acciones que coincidan con sus reglas de solicitud explícita. Con Claude Code v2.1.283 o posterior, auto mode es el [permission mode de inicio integrado](/docs/es/permission-modes#which-mode-a-session-starts-in) para sesiones interactivas de terminal y VS Code, y en versiones anteriores solo en planes Pro, Max y Team. El clasificador bloquea la escalada de alcance, la infraestructura no confiable y la [prompt injection](#prompt-injection). Los resultados de herramientas se eliminan de lo que ve, por lo que el contenido hostil en un archivo o página web no puede manipularlo directamente.

76 76 

77Más información: [Eliminate prompts with auto mode](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)77Más información: [Eliminate prompts with auto mode](/docs/es/permission-modes#eliminate-prompts-with-auto-mode)

78 78 


428 428 

429Más información: [Platforms and integrations](/docs/es/platforms)429Más información: [Platforms and integrations](/docs/es/platforms)

430 430 

431<h3 id="system-prompt">

432 System prompt

433</h3>

434 

435Las instrucciones que Claude Code envía antes de su conversación en cada solicitud, cubriendo cómo Claude usa herramientas, se comporta de manera segura y formatea sus respuestas. Puede agregar al system prompt con `--append-system-prompt` o reemplazarlo con `--system-prompt`. El system prompt es la primera capa del [prompt cache](/docs/es/prompt-caching#how-the-cache-is-organized).

436 

437Sus archivos [CLAUDE.md](#claude-md) y las instrucciones de su [output style](#output-style) no son parte del system prompt. Claude Code los entrega en la conversación como [system reminders](#system-reminder).

438 

439Más información: [System prompt flags](/docs/es/cli-reference#system-prompt-flags)

440 

441<h3 id="system-reminder">

442 System reminder

443</h3>

444 

445Un mensaje que Claude Code, como el [harness](#agentic-harness), agrega a la conversación para dar contexto a Claude. Usted no envía system reminders por sí mismo. Claude Code los inserta mientras se ejecuta una sesión, por ejemplo cuando la sesión comienza, cuando un hook devuelve texto, o cuando un archivo cambia en el disco. Claude los lee junto con sus mensajes. Los siguientes llegan a Claude como system reminders:

446 

447* Sus archivos [CLAUDE.md](#claude-md)

448* Las instrucciones de su [output style](#output-style)

449* Texto que un [hook](#hook) devuelve como `additionalContext`

450* La lista de [skills](#skill) disponibles

451* Una nota de que un archivo que Claude leyó anteriormente ha cambiado en el disco

452* Las líneas de atribución de commit y pull request

453 

454En una solicitud de API registrada, un system reminder aparece envuelto en etiquetas `<system-reminder>` dentro de un mensaje de usuario, o en algunos modelos como un mensaje separado con el rol `system`.

455 

456Más información: [Context Claude Code adds outside the system prompt](/docs/es/agent-sdk/modifying-system-prompts#context-claude-code-adds-outside-the-system-prompt)

457 

431<h2 id="t">458<h2 id="t">

432 T459 T

433</h2>460</h2>

goal.md +1 −1

Details

155 155 

156Si un turno falla en un error que no se borrará hasta que lo corrija, Claude Code borra el objetivo e imprime una advertencia nombrando la causa. La advertencia comienza con `Goal cleared after an unrecoverable error` y termina con `Run /goal again to continue`. Corrija la causa, luego [establezca el objetivo nuevamente](#set-a-goal) con `/goal <condition>`. Cuatro tipos de fallo borran el objetivo:156Si un turno falla en un error que no se borrará hasta que lo corrija, Claude Code borra el objetivo e imprime una advertencia nombrando la causa. La advertencia comienza con `Goal cleared after an unrecoverable error` y termina con `Run /goal again to continue`. Corrija la causa, luego [establezca el objetivo nuevamente](#set-a-goal) con `/goal <condition>`. Cuatro tipos de fallo borran el objetivo:

157 157 

158* Un fallo de autenticación, cuando Claude Code gestiona sus propias credenciales. Cuando un host las gestiona por usted, como la aplicación de escritorio, la extensión de VS Code o una [sesión en la nube](/docs/es/claude-code-on-the-web), Claude Code deja el objetivo activo porque el host restaura el acceso por su cuenta.158* Un fallo de autenticación, cuando Claude Code gestiona sus propias credenciales. Cuando un host las gestiona por usted, como la aplicación de escritorio o una [sesión en la nube](/docs/es/claude-code-on-the-web), Claude Code deja el objetivo activo porque el host restaura el acceso por su cuenta.

159* Un saldo de crédito agotado159* Un saldo de crédito agotado

160* Un desbordamiento de contexto que [auto-compact](/docs/es/model-config#set-the-auto-compact-window) no pudo borrar160* Un desbordamiento de contexto que [auto-compact](/docs/es/model-config#set-the-auto-compact-window) no pudo borrar

161* Un modelo que no está disponible161* Un modelo que no está disponible

headless.md +27 −19

Details

35Claude Code sale con código 0 en caso de éxito y con un código distinto de cero cuando la ejecución falla, por lo que sus scripts pueden ramificarse según el estado de salida. Si pasa una bandera inválida, Claude Code reporta el error a stderr antes de que comience la ejecución. Cuando ocurre una falla dentro de la ejecución, como autenticación faltante, Claude Code imprime la falla como resultado en stdout.35Claude Code sale con código 0 en caso de éxito y con un código distinto de cero cuando la ejecución falla, por lo que sus scripts pueden ramificarse según el estado de salida. Si pasa una bandera inválida, Claude Code reporta el error a stderr antes de que comience la ejecución. Cuando ocurre una falla dentro de la ejecución, como autenticación faltante, Claude Code imprime la falla como resultado en stdout.

36 36 

37<h3 id="start-faster-with-bare-mode">37<h3 id="start-faster-with-bare-mode">

38 Comenzar más rápido con modo bare38 Comience más rápido con modo bare

39</h3>39</h3>

40 40 

41Agregue `--bare` para reducir el tiempo de inicio omitiendo el descubrimiento automático de hooks, skills, comandos personalizados, [subagentes](/docs/es/sub-agents), plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Sin él, `claude -p` carga el mismo [contexto](/docs/es/how-claude-code-works#the-context-window) que una sesión interactiva, incluyendo cualquier cosa configurada en el directorio de trabajo o `~/.claude`.41Agregue `--bare` para reducir el tiempo de inicio omitiendo el descubrimiento automático de hooks, skills, comandos personalizados, [subagentes](/docs/es/sub-agents), plugins instalados, servidores MCP, memoria automática y CLAUDE.md. Sin él, `claude -p` carga el mismo [contexto](/docs/es/how-claude-code-works#the-context-window) que cargaría una sesión interactiva, incluido cualquier elemento configurado en el directorio de trabajo o `~/.claude`.

42 42 

43El modo bare es útil para CI y scripts donde necesita el mismo resultado en cada máquina. Un hook en el `~/.claude` de un compañero de equipo o un servidor MCP en el `.mcp.json` del proyecto no se ejecutarán, porque el modo bare nunca los lee. Un directorio que nombre con `--add-dir` es una excepción parcial: el modo bare carga skills de su carpeta `.claude/skills/`, pero aún omite sus carpetas `.claude/commands/` y `.claude/agents/`. [Skills de directorios adicionales](/docs/es/skills#skills-from-additional-directories) cubre qué se carga y qué no.43El modo bare es útil para CI y scripts donde necesita el mismo resultado en cada máquina. Un hook en `~/.claude` de un compañero de equipo o un servidor MCP en `.mcp.json` del proyecto no se ejecutará, porque el modo bare nunca los lee. Un directorio que nombre con `--add-dir` es una excepción parcial: el modo bare carga skills de su carpeta `.claude/skills/`, pero aún omite sus carpetas `.claude/commands/` y `.claude/agents/`. [Skills de directorios adicionales](/docs/es/skills#skills-from-additional-directories) cubre lo que sí y no se carga.

44 44 

45Sin `--bare`, una sesión `-p` ejecuta los hooks en el `.claude/settings.json` de un proyecto y conecta los servidores en su `.mcp.json`, incluso en una carpeta que nunca ha confiado. Una sesión `-p` no muestra diálogo de confianza del espacio de trabajo ni solicitud de aprobación por servidor. [Lo que se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) cubre cada tipo de contenido del repositorio bajo `-p` y cómo mantenerlo fuera.45Sin `--bare`, una sesión `-p` ejecuta los hooks en `.claude/settings.json` de un proyecto y conecta los servidores en su `.mcp.json`, incluso en una carpeta que nunca ha confiado. Una sesión `-p` no muestra diálogo de confianza del espacio de trabajo ni solicitud de aprobación por servidor. [Lo que se ejecuta antes de confiar en una carpeta](/docs/es/permissions#what-runs-before-you-trust-a-folder) cubre cada tipo de contenido del repositorio bajo `-p` y cómo mantenerlo fuera.

46 46 

47Este ejemplo ejecuta una tarea de resumen única en modo bare y aprueba previamente la herramienta Read para que la llamada se complete sin una solicitud de permiso. Establezca `ANTHROPIC_API_KEY` antes de ejecutarlo, porque el modo bare no usa su inicio de sesión de suscripción:47Este ejemplo ejecuta una tarea de resumen única en modo bare y aprueba previamente la herramienta Read para que la llamada se complete sin un aviso de permiso. Establezca `ANTHROPIC_API_KEY` antes de ejecutarlo, porque el modo bare no usa su inicio de sesión de suscripción:

48 48 

49```bash theme={null}49```bash theme={null}

50claude --bare -p "Summarize README.md" --allowedTools "Read"50claude --bare -p "Summarize README.md" --allowedTools "Read"

51```51```

52 52 

53En modo bare, Claude Code nunca lee credenciales OAuth ni el llavero del sistema. Para la API de Anthropic, establezca `ANTHROPIC_API_KEY` en el entorno, con una clave creada en la [Consola de Claude](https://platform.claude.com), o proporcione un `apiKeyHelper` en el JSON de `--settings`. Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry continúan leyendo sus credenciales de proveedor habituales como de costumbre.53En modo bare, Claude Code nunca lee credenciales OAuth ni el llavero del sistema. Para la API de Anthropic, establezca `ANTHROPIC_API_KEY` en el entorno, con una clave creada en la [Consola de Claude](https://platform.claude.com), o proporcione un `apiKeyHelper` en el JSON `--settings`. Amazon Bedrock, la Plataforma de Agentes de Google Cloud y Microsoft Foundry continúan leyendo sus propias credenciales de proveedor como de costumbre.

54 54 

55En modo bare Claude tiene acceso a las herramientas Bash, lectura de archivos y edición de archivos. Pase cualquier contexto que necesite con una bandera:55En modo bare, Claude tiene acceso a las herramientas Bash, lectura de archivos y edición de archivos. Pase cualquier contexto que necesite con una bandera:

56 56 

57| Para cargar | Utilice |57| Para cargar | Usar |

58| - | - |58| - | - |

59| Adiciones de indicación del sistema | `--append-system-prompt`, `--append-system-prompt-file` |59| Adiciones de solicitud del sistema | `--append-system-prompt`, `--append-system-prompt-file` |

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

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

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


70 Tareas en segundo plano al salir70 Tareas en segundo plano al salir

71</h3>71</h3>

72 72 

73Si Claude inicia una [tarea Bash en segundo plano](/docs/es/tools-reference#bash-tool-behavior) durante una ejecución de `claude -p`, por ejemplo un servidor de desarrollo o una compilación de vigilancia, ese shell se termina aproximadamente cinco segundos después de que Claude haya devuelto su resultado final y stdin se haya cerrado. El período de gracia permite que una tarea que finaliza justo después del resultado aún entregue su salida.73Si Claude inicia una [tarea Bash en segundo plano](/docs/es/tools-reference#bash-tool-behavior) durante una ejecución `claude -p`, por ejemplo un servidor de desarrollo o una compilación de vigilancia, ese shell se termina aproximadamente cinco segundos después de que Claude ha devuelto su resultado final y stdin se ha cerrado. El período de gracia permite que una tarea que finaliza justo después del resultado aún entregue su salida.

74 74 

75Si Claude inicia un [subagente](/docs/es/sub-agents) en segundo plano o flujo de trabajo, `claude -p` en su lugar permanece abierto hasta que ese trabajo se complete, porque su resultado es parte de la salida final.75Si Claude inicia un [subagente](/docs/es/sub-agents) en segundo plano o un flujo de trabajo, `claude -p` en su lugar permanece abierto hasta que ese trabajo se complete, porque su resultado es parte de la salida final.

76 76 

77De forma predeterminada, la espera termina después de 10 minutos de espera inactiva continua, por lo que un subagente o flujo de trabajo atascado no puede mantener el proceso abierto indefinidamente. En ese punto, Claude Code detiene lo que aún se está ejecutando y descarta su resultado parcial. Para cambiar el límite, establezca [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/es/env-vars), o establézcalo en `0` para esperar sin uno.77De forma predeterminada, la espera finaliza después de 10 minutos de espera inactiva continua, por lo que un subagente o flujo de trabajo atascado no puede mantener el proceso abierto indefinidamente. En ese punto, Claude Code detiene lo que aún se está ejecutando y descarta su resultado parcial. Para cambiar el límite, establezca [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/es/env-vars), o establézcalo en `0` para esperar sin uno.

78 78 

79Si Claude inicia una vigilancia de [Monitor](/docs/es/tools-reference#monitor-tool) durante una ejecución de `claude -p`, Claude Code espera la vigilancia hasta que se agote el tiempo de espera o el límite de diez minutos termine la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que la vigilancia reporta. De forma predeterminada, una vigilancia se agota cinco minutos después de que Claude la inicia.79Si Claude inicia una vigilancia de [Monitor](/docs/es/tools-reference#monitor-tool) durante una ejecución `claude -p`, Claude Code espera la vigilancia hasta que agote el tiempo de espera o el límite de diez minutos finalice la espera, lo que ocurra primero. Mientras espera, Claude continúa respondiendo a lo que reporta la vigilancia. De forma predeterminada, una vigilancia agota el tiempo de espera cinco minutos después de que Claude la inicia.

80 80 

81<h3 id="stop-a-run-with-sigterm">81<h3 id="stop-a-run-with-sigterm">

82 Detener una ejecución con SIGTERM82 Detener una ejecución con SIGTERM

83</h3>83</h3>

84 84 

85Si detiene una ejecución de `claude -p` con SIGTERM, por ejemplo con `kill` o desde un supervisor de procesos, Claude Code sale con código 143. Claude Code deja el turno que estaba en progreso sin terminar y no registra ningún resultado para él. Para terminar el turno en su lugar, envíe SIGINT, o llame a `interrupt()` del Agent SDK, antes de detener el proceso.85Si detiene una ejecución `claude -p` con SIGTERM, por ejemplo con `kill` o desde un supervisor de procesos, Claude Code sale con código 143. Claude Code deja el turno que estaba en progreso sin terminar y no registra ningún resultado para él. Para terminar el turno en su lugar, envíe SIGINT, o llame a `interrupt()` del Agent SDK, antes de detener el proceso.

86 86 

87En SIGTERM, Claude Code termina el árbol de procesos de cualquier comando Bash que aún se esté ejecutando. Claude Code luego ejecuta los hooks [`SessionEnd`](/docs/es/hooks#sessionend) y sale. Al salir, Claude Code no inicia ninguna nueva llamada de herramienta, no envía ninguna nueva solicitud de modelo y no ejecuta ningún hook que no sea `SessionEnd`. Si la ejecución estaba en medio de un comando o esperando una respuesta a una solicitud de permiso cuando llegó la señal, Claude Code maneja ese paso de la siguiente manera:87En SIGTERM, Claude Code termina el árbol de procesos de cualquier comando Bash que aún se esté ejecutando. Claude Code luego ejecuta [hooks `SessionEnd`](/docs/es/hooks#sessionend) y sale. Al salir, Claude Code no inicia ninguna nueva llamada de herramienta, no envía ninguna nueva solicitud de modelo y no ejecuta ningún hook que no sea `SessionEnd`. Si la ejecución estaba en medio de un comando o esperando una respuesta a un aviso de permiso cuando llegó la señal, Claude Code maneja ese paso de la siguiente manera:

88 88 

89* **Ejecutando un comando**: Claude Code registra el comando como eliminado en la sesión.89* **Ejecutando un comando**: Claude Code registra el comando como terminado en la sesión.

90* **Esperando una respuesta a una solicitud de permiso**: si envía SIGTERM al proceso, Claude Code deja la solicitud sin responder. Si su programa cierra la sesión a través del Agent SDK, el SDK termina la entrada de Claude Code antes de enviar cualquier señal, y Claude Code cancela la solicitud tan pronto como la entrada termina.90* **Esperando una respuesta a un aviso de permiso**: si envía SIGTERM al proceso, Claude Code deja el aviso sin responder. Si su programa cierra la sesión a través del Agent SDK, el SDK finaliza la entrada de Claude Code antes de enviar cualquier señal, y Claude Code cancela el aviso tan pronto como finaliza la entrada.

91 91 

92Cuando [reanuda la sesión](#continue-conversations), Claude Code continúa el turno que SIGTERM dejó sin terminar.92Cuando [reanuda la sesión](#continue-conversations), Claude Code deja el turno interrumpido tal como está, y su siguiente solicitud impulsa la conversación. Para que Claude Code continúe el turno interrumpido al reanudar, establezca [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/es/env-vars).

93 

94<h3 id="if-the-working-directory-is-deleted">

95 Si el directorio de trabajo se elimina

96</h3>

97 

98Si el directorio de trabajo de una sesión `claude -p` o Agent SDK se elimina durante la sesión, la sesión continúa ejecutándose. Cuando un turno comienza mientras falta el directorio, Claude Code emite un [mensaje de advertencia](/docs/es/agent-sdk/typescript#sdkinformationalmessage) en la salida `stream-json`, y los comandos de shell fallan hasta que el directorio exista nuevamente.

93 99 

94<h2 id="examples">100<h2 id="examples">

95 Ejemplos101 Ejemplos


255| Campo | Tipo | Descripción |261| Campo | Tipo | Descripción |

256| - | - | - |262| - | - | - |

257| `plugins` | matriz | plugins que se cargaron exitosamente, cada uno con `name` y `path` |263| `plugins` | matriz | plugins que se cargaron exitosamente, cada uno con `name` y `path` |

258| `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 |264| `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. Un plugin que no se cargó está ausente de `plugins`. La clave se omite cuando no hay errores |

265 

266Cuando un directorio o archivo `--plugin-dir` en sí falla al cargarse, su entrada `plugin_errors` incluye la ruta absoluta resuelta como `path`. Úselo para saber cuál de varios valores `--plugin-dir` falló. El campo `path` requiere Claude Code v2.1.283 o posterior.

259 267 

260Utilice los campos del servidor MCP de la misma manera. Cuando pasa [`--mcp-config`](/docs/es/cli-reference#cli-flags) con `-p`, Claude Code espera a que los servidores aún pendientes se completen antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos de forma predeterminada. Un servidor remoto con una [lista de herramientas en caché](/docs/es/agent-sdk/mcp#connection-timing) omite la espera, muestra `pending` en `system/init` y se conecta en su primera llamada de herramienta. La espera requiere Claude Code v2.1.221 o posterior.268Utilice los campos del servidor MCP de la misma manera. Cuando pasa [`--mcp-config`](/docs/es/cli-reference#cli-flags) con `-p`, Claude Code espera a que los servidores aún pendientes se completen antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos de forma predeterminada. Un servidor remoto con una [lista de herramientas en caché](/docs/es/agent-sdk/mcp#connection-timing) omite la espera, muestra `pending` en `system/init` y se conecta en su primera llamada de herramienta. La espera requiere Claude Code v2.1.221 o posterior.

261 269 

hooks.md +365 −375

Details

421 421 

422* **[Hooks de comando](#command-hook-fields)** (`type: "command"`): ejecutan un comando de shell. Tu script recibe la [entrada JSON](#hook-input-and-output) del evento en stdin y comunica resultados de vuelta a través de códigos de salida y stdout.422* **[Hooks de comando](#command-hook-fields)** (`type: "command"`): ejecutan un comando de shell. Tu script recibe la [entrada JSON](#hook-input-and-output) del evento en stdin y comunica resultados de vuelta a través de códigos de salida y stdout.

423* **[Hooks HTTP](#http-hook-fields)** (`type: "http"`): envían la entrada JSON del evento como una solicitud HTTP POST a una URL. El punto final comunica resultados de vuelta a través del cuerpo de respuesta utilizando el mismo [formato de salida JSON](#json-output) que los hooks de comando.423* **[Hooks HTTP](#http-hook-fields)** (`type: "http"`): envían la entrada JSON del evento como una solicitud HTTP POST a una URL. El punto final comunica resultados de vuelta a través del cuerpo de respuesta utilizando el mismo [formato de salida JSON](#json-output) que los hooks de comando.

424* **[Hooks de herramienta MCP](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): llaman a una herramienta en un [servidor MCP](/docs/es/mcp) ya conectado. La salida de texto de la herramienta se trata como stdout de hook de comando.424* **[Hooks de herramienta MCP](#mcp-tool-hook-fields)** (`type: "mcp_tool"`): llaman a una herramienta en un [servidor MCP](/docs/es/mcp) configurado. La salida de texto de la herramienta se trata como stdout de hook de comando.

425* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): envían un prompt a un modelo Claude para evaluación de un solo turno. El modelo devuelve su decisión como JSON. Consulta [Hooks basados en prompt](#prompt-based-hooks).425* **[Hooks de prompt](#prompt-and-agent-hook-fields)** (`type: "prompt"`): envían un prompt a un modelo Claude para evaluación de un solo turno. El modelo devuelve su decisión como JSON. Consulta [Hooks basados en prompt](#prompt-based-hooks).

426* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): generan un subagente que puede usar herramientas como Read, Grep y Glob para verificar condiciones antes de devolver una decisión. Los hooks de agente son experimentales y pueden cambiar. Consulta [Hooks basados en agente](#agent-based-hooks).426* **[Hooks de agente](#prompt-and-agent-hook-fields)** (`type: "agent"`): generan un subagente que puede usar herramientas como Read, Grep y Glob para verificar condiciones antes de devolver una decisión. Los hooks de agente son experimentales y pueden cambiar. Consulta [Hooks basados en agente](#agent-based-hooks).

427 427 


474| `command` | sí | Comando de shell a ejecutar. Con `args`, el ejecutable a generar directamente. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |474| `command` | sí | Comando de shell a ejecutar. Con `args`, el ejecutable a generar directamente. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |

475| `args` | no | Lista de argumentos. Cuando está presente, `command` se resuelve como un ejecutable y se genera directamente con `args` como el vector de argumentos, sin shell involucrado. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |475| `args` | no | Lista de argumentos. Cuando está presente, `command` se resuelve como un ejecutable y se genera directamente con `args` como el vector de argumentos, sin shell involucrado. Consulta [Forma exec y forma shell](#exec-form-and-shell-form) |

476| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulta [Ejecutar hooks en segundo plano](#run-hooks-in-the-background) |476| `async` | no | Si es `true`, se ejecuta en segundo plano sin bloquear. Consulta [Ejecutar hooks en segundo plano](#run-hooks-in-the-background) |

477| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un recordatorio del sistema para que pueda reaccionar a un fallo de fondo de larga duración |477| `asyncRewake` | no | Si es `true`, se ejecuta en segundo plano y despierta a Claude en código de salida 2. El stderr del hook, o stdout si stderr está vacío, se muestra a Claude como un [recordatorio del sistema](/docs/es/glossary#system-reminder) para que pueda reaccionar a un fallo de fondo de larga duración |

478| `shell` | no | Shell a usar para este hook. Acepta `"bash"` o `"powershell"`. Por defecto es `"bash"`, o `"powershell"` en Windows cuando Git Bash no está instalado. Establecer `"powershell"` ejecuta el comando a través de PowerShell en Windows. No requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL` ya que los hooks generan PowerShell directamente. Se ignora cuando `args` está establecido |478| `shell` | no | Shell a usar para este hook. Acepta `"bash"` o `"powershell"`. Por defecto es `"bash"`, o `"powershell"` en Windows cuando Git Bash no está instalado. Establecer `"powershell"` ejecuta el comando a través de PowerShell en Windows. No requiere `CLAUDE_CODE_USE_POWERSHELL_TOOL` ya que los hooks generan PowerShell directamente. Se ignora cuando `args` está establecido |

479 479 

480<a id="exec-form-and-shell-form" />480<a id="exec-form-and-shell-form" />


571 571 

572| Campo | Requerido | Descripción |572| Campo | Requerido | Descripción |

573| :- | :- | :- |573| :- | :- | :- |

574| `server` | sí | Nombre de un servidor MCP configurado. Para un [servidor incluido en plugin](/docs/es/mcp#plugin-provided-mcp-servers), este es el nombre con alcance `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:db`, no la clave del servidor desnuda. El servidor debe estar ya conectado; el hook nunca activa un flujo OAuth o de conexión |574| `server` | sí | Nombre de un servidor MCP configurado. Para un [servidor incluido en plugin](/docs/es/mcp#plugin-provided-mcp-servers), este es el nombre con alcance `plugin:<plugin-name>:<server-name>`, como `plugin:my-plugin:db`, no la clave del servidor desnuda |

575| `tool` | sí | Nombre de la herramienta a llamar en ese servidor |575| `tool` | sí | Nombre de la herramienta a llamar en ese servidor |

576| `input` | no | Argumentos pasados a la herramienta. Los valores de cadena soportan sustitución de `${path}` de la [entrada JSON](#hook-input-and-output) del hook, como `"${tool_input.file_path}"` |576| `input` | no | Argumentos pasados a la herramienta. Los valores de cadena soportan sustitución de `${path}` de la [entrada JSON](#hook-input-and-output) del hook, como `"${tool_input.file_path}"` |

577 577 

578Claude Code lee el contenido de texto de la herramienta de la misma manera que lee stdout de hook de comando, siguiendo la [regla de análisis bajo código de salida 0](#exit-code-0). Si el servidor nombrado no está conectado, o la herramienta devuelve `isError: true`, el hook produce un error sin bloqueo y la ejecución continúa.

579 

580Este ejemplo llama a la herramienta `security_scan` en el servidor MCP `my_server` después de cada `Write` o `Edit`, pasando la ruta del archivo editado:578Este ejemplo llama a la herramienta `security_scan` en el servidor MCP `my_server` después de cada `Write` o `Edit`, pasando la ruta del archivo editado:

581 579 

582```json theme={null}580```json theme={null}


599}597}

600```598```

601 599 

602Un hook `mcp_tool` puede ejecutarse solo después de que Claude Code haya puesto los servidores MCP de la sesión disponibles para los hooks. `SessionStart` y `Setup` pueden activarse antes de ese punto:600<h5 id="how-the-tool’s-result-is-read">

601 Cómo se lee el resultado de la herramienta

602</h5>

603 603 

604* **Al lanzar**: `SessionStart` se activa antes de que los servidores estén disponibles, incluso cuando lanzas con `--continue` o `--resume`. Claude Code omite los hooks `mcp_tool` del evento sin llamar a sus herramientas, y el [registro de depuración](#debug-hooks) registra `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`.604Claude Code lee el contenido de texto de la herramienta de la misma manera que lee stdout de hook de comando, siguiendo la [regla de análisis bajo código de salida 0](#exit-code-0). Si la herramienta devuelve `isError: true`, el hook produce un error sin bloqueo y la ejecución continúa.

605* **Más tarde en una sesión en ejecución**: después de `/clear` o una compactación, `SessionStart` se activa de nuevo con los servidores ya disponibles, y sus hooks `mcp_tool` se ejecutan.

606* **En `Setup`**: `Setup` siempre se activa antes de que los servidores estén disponibles, por lo que Claude Code omite sus hooks `mcp_tool` cada vez y registra el mismo mensaje nombrando `Setup`.

607 605 

608Por ejemplo, esta configuración llama a la herramienta `load_context` en el servidor MCP `my_server` desde un hook `SessionStart` sin matcher, por lo que se aplica a cada fuente de `SessionStart`:606<h5 id="when-the-server-is-still-connecting">

607 Cuando el servidor aún se está conectando

608</h5>

609 609 

610```json theme={null}610En eventos donde un hook puede bloquear o cambiar el resultado, como `PreToolUse` o `Stop`, Claude Code espera a que se conecte un servidor antes de llamar a la herramienta, durante como máximo [`MCP_TIMEOUT`](/docs/es/env-vars) y dentro del propio [`timeout`](#common-fields) del hook. En eventos observacionales, como `Notification` o `SessionEnd`, no espera.

611{611 

612 "hooks": {612Un servidor que muestra el estado [`cached`](/docs/es/mcp#server-status-detail) se conecta cuando el hook llama a su herramienta. Si el servidor no está conectado en ese punto, el hook produce un error sin bloqueo y la ejecución continúa. El hook nunca inicia un flujo OAuth, por lo que [autentica el servidor desde `/mcp`](/docs/es/mcp#authenticate-with-remote-mcp-servers) primero.

613 "SessionStart": [613 

614 {614<h5 id="events-that-fire-before-mcp-servers-are-available">

615 "hooks": [615 Eventos que se activan antes de que los servidores MCP estén disponibles

616 {616</h5>

617 "type": "mcp_tool",

618 "server": "my_server",

619 "tool": "load_context"

620 }

621 ]

622 }

623 ]

624 }

625}

626```

627 617 

628Cuando ejecutas `claude`, Claude Code omite este hook, nunca llama a `load_context` y escribe el mensaje `no MCP client context` en el registro de depuración. Ejecuta `/clear` en esa misma sesión y el hook se ejecuta y llama a `load_context`. Un hook `type: "command"` en `SessionStart` se ejecuta al lanzar, por lo que usa uno para cualquier cosa que la sesión necesite desde su primer turno.618`SessionStart` al lanzar, incluso con `--continue` o `--resume`, y cada evento `Setup` se activan antes de que los servidores MCP de la sesión estén disponibles para los hooks. Claude Code omite sus hooks `mcp_tool` sin llamar a la herramienta, y el [registro de depuración](#debug-hooks) registra `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`, o el mismo mensaje nombrando `Setup`. Cuando `SessionStart` se activa de nuevo más tarde en la sesión, después de `/clear` o una compactación, sus hooks `mcp_tool` se ejecutan. Para cualquier cosa que la sesión necesite al lanzar, usa un hook `type: "command"` en `SessionStart` en su lugar.

629 619 

630<h4 id="prompt-and-agent-hook-fields">620<h4 id="prompt-and-agent-hook-fields">

631 Campos de hook de prompt y agente621 Campos de hook de prompt y agente


636| Campo | Requerido | Descripción |626| Campo | Requerido | Descripción |

637| :- | :- | :- |627| :- | :- | :- |

638| `prompt` | sí | Texto de prompt a enviar al modelo. Usa `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Escapa con una barra invertida para incluir texto literal: `\$1.00` se renderiza como `$1.00` |628| `prompt` | sí | Texto de prompt a enviar al modelo. Usa `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Escapa con una barra invertida para incluir texto literal: `\$1.00` se renderiza como `$1.00` |

639| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |629| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad de fondo](/docs/es/costs#background-token-usage) |

640 630 

641<h3 id="reference-scripts-by-path">631<h3 id="reference-scripts-by-path">

642 Referencia de scripts por ruta632 Referencia de scripts por ruta


791| `prompt_id` | UUID que identifica el prompt del usuario que se está procesando actualmente. Coincide con el [atributo `prompt.id` en eventos de OpenTelemetry](/docs/es/monitoring-usage#event-correlation-attributes), para que pueda correlacionar la salida del hook con la telemetría de un único prompt. Ausente hasta la primera entrada del usuario. Requiere Claude Code v2.1.196 o posterior |781| `prompt_id` | UUID que identifica el prompt del usuario que se está procesando actualmente. Coincide con el [atributo `prompt.id` en eventos de OpenTelemetry](/docs/es/monitoring-usage#event-correlation-attributes), para que pueda correlacionar la salida del hook con la telemetría de un único prompt. Ausente hasta la primera entrada del usuario. Requiere Claude Code v2.1.196 o posterior |

792| `transcript_path` | Ruta al JSON de conversación. El archivo de transcripción se escribe de forma asincrónica y puede rezagarse con respecto a la conversación en memoria, por lo que es posible que aún no incluya los mensajes más recientes del turno actual cuando se activa un hook. Los hooks que necesitan el texto del asistente final del turno actual deben usar `last_assistant_message` en [Stop](#stop) y [SubagentStop](#subagentstop) en lugar de leer la transcripción |782| `transcript_path` | Ruta al JSON de conversación. El archivo de transcripción se escribe de forma asincrónica y puede rezagarse con respecto a la conversación en memoria, por lo que es posible que aún no incluya los mensajes más recientes del turno actual cuando se activa un hook. Los hooks que necesitan el texto del asistente final del turno actual deben usar `last_assistant_message` en [Stop](#stop) y [SubagentStop](#subagentstop) en lugar de leer la transcripción |

793| `cwd` | Directorio de trabajo actual cuando se invoca el hook |783| `cwd` | Directorio de trabajo actual cuando se invoca el hook |

794| `scratchpad_dir` | Ruta al directorio de scratchpad de la sesión, donde Claude mantiene archivos de trabajo temporales. Ausente cuando la sesión no tiene scratchpad o el directorio temporal no está disponible. Requiere Claude Code v2.1.257 o posterior |784| `scratchpad_dir` | Ruta al [directorio de scratchpad de la sesión](/docs/es/claude-directory#session-scratchpad-directory), donde Claude mantiene archivos de trabajo temporales. Ausente cuando la sesión no tiene scratchpad o el directorio temporal no está disponible. Requiere Claude Code v2.1.257 o posterior |

795| `permission_mode` | [Modo de permiso](/docs/es/permissions#permission-modes) actual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` o `"bypassPermissions"`. El modo etiquetado como **Manual** llega como `"default"`, nunca como `"manual"`, por lo que los scripts que coinciden con `"default"` siguen funcionando. No todos los eventos reciben este campo. Consulte el ejemplo JSON en cada sección [hook event](#hook-events) |785| `permission_mode` | [Modo de permiso](/docs/es/permissions#permission-modes) actual: `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, `"dontAsk"` o `"bypassPermissions"`. El modo etiquetado como **Manual** llega como `"default"`, nunca como `"manual"`, por lo que los scripts que coinciden con `"default"` siguen funcionando. No todos los eventos reciben este campo. Consulte el ejemplo JSON en cada sección [hook event](#hook-events) |

796| `effort` | Objeto con un campo `level` que contiene el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) en vigor cuando se ejecuta el hook: `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Si establece un nivel que el modelo activo no admite, `level` reporta el nivel que Claude Code ejecutó en su lugar; [Adjust effort level](/docs/es/model-config#adjust-effort-level) dice cómo lo elige. Ultracode no es un nivel distinto y se reporta como `"xhigh"`. El objeto coincide con el campo `effort` de la [línea de estado](/docs/es/statusline#available-data). Presente para eventos que se activan dentro de un contexto de uso de herramienta, como `PreToolUse`, `PostToolUse`, `Stop` y `SubagentStop`, cuando el modelo actual admite el parámetro de esfuerzo. El nivel también está disponible para comandos de hook y la herramienta Bash como la variable de entorno `$CLAUDE_EFFORT`. |786| `effort` | Objeto con un campo `level` que contiene el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) en vigor cuando se ejecuta el hook: `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Si establece un nivel que el modelo activo no admite, `level` reporta el nivel que Claude Code ejecutó en su lugar; [Adjust effort level](/docs/es/model-config#adjust-effort-level) dice cómo lo elige. El objeto coincide con el campo `effort` de la [línea de estado](/docs/es/statusline#available-data). Presente para eventos que se activan dentro de un contexto de uso de herramienta, como `PreToolUse`, `PostToolUse`, `Stop` y `SubagentStop`, cuando el modelo actual admite el parámetro de esfuerzo. El nivel también está disponible para comandos de hook y la herramienta Bash como la variable de entorno `$CLAUDE_EFFORT`. |

797| `hook_event_name` | Nombre del evento que se activó |787| `hook_event_name` | Nombre del evento que se activó |

798 788 

799Cuando se ejecuta con `--agent` o dentro de un subagente, se incluyen dos campos adicionales:789Cuando se ejecuta con `--agent` o dentro de un subagente, se incluyen dos campos adicionales:


1057 Agregar contexto para Claude1047 Agregar contexto para Claude

1058</h4>1048</h4>

1059 1049 

1060El campo `additionalContext` pasa una cadena de su hook a la ventana de contexto de Claude. Claude Code envuelve la cadena en un recordatorio del sistema e la inserta en la conversación en el punto donde se activó el hook. Claude lee el recordatorio en la siguiente solicitud del modelo, pero no aparece como un mensaje de chat en la interfaz.1050El campo `additionalContext` pasa una cadena de su hook a la ventana de contexto de Claude. Claude Code envuelve la cadena en un [recordatorio del sistema](/docs/es/glossary#system-reminder) e la inserta en la conversación en el punto donde se activó el hook. Claude lee el recordatorio en la siguiente solicitud del modelo, pero no aparece como un mensaje de chat en la interfaz.

1061 1051 

1062Devuelva `additionalContext` dentro de `hookSpecificOutput` junto al nombre del evento:1052Devuelva `additionalContext` dentro de `hookSpecificOutput` junto al nombre del evento:

1063 1053 


1179 Eventos de hooks1169 Eventos de hooks

1180</h2>1170</h2>

1181 1171 

1182Cada evento corresponde a un punto en el ciclo de vida de Claude Code donde los hooks pueden ejecutarse. Las secciones siguientes están ordenadas para coincidir con el ciclo de vida: desde la configuración de la sesión a través del bucle agéntico hasta el final de la sesión. Cada sección describe cuándo se dispara el evento, qué matchers admite, la entrada JSON que recibe y cómo controlar el comportamiento a través de la salida.1172Cada evento corresponde a un punto en el ciclo de vida de Claude Code donde los hooks pueden ejecutarse. Las secciones a continuación están ordenadas para coincidir con el ciclo de vida: desde la configuración de la sesión a través del bucle agéntico hasta el final de la sesión. Cada sección describe cuándo se dispara el evento, qué matchers admite, la entrada JSON que recibe y cómo controlar el comportamiento a través de la salida.

1183 1173 

1184<h3 id="sessionstart">1174<h3 id="sessionstart">

1185 SessionStart1175 SessionStart

1186</h3>1176</h3>

1187 1177 

1188Se ejecuta cuando Claude Code inicia una nueva sesión o reanuda una sesión existente. Útil para cargar contexto de desarrollo como problemas existentes o cambios recientes en su base de código, o configurar variables de entorno. Para contexto estático que no requiere un script, use [CLAUDE.md](/docs/es/memory) en su lugar.1178Se ejecuta cuando Claude Code inicia una nueva sesión o reanuda una sesión existente. Útil para cargar contexto de desarrollo como problemas existentes o cambios recientes en tu base de código, o configurar variables de entorno. Para contexto estático que no requiere un script, usa [CLAUDE.md](/docs/es/memory) en su lugar.

1189 1179 

1190SessionStart se ejecuta en cada sesión, así que mantenga estos hooks rápidos. Solo se admiten hooks `type: "command"` y `type: "mcp_tool"`. Consulte [Campos de hook de herramienta MCP](#mcp-tool-hook-fields) para saber cuándo se ejecutan los hooks `mcp_tool`.1180SessionStart se ejecuta en cada sesión, así que mantén estos hooks rápidos. Solo se admiten hooks `type: "command"` y `type: "mcp_tool"`. Consulta [Campos de hook de herramienta MCP](#mcp-tool-hook-fields) para saber cuándo se ejecutan los hooks `mcp_tool`.

1191 1181 

1192El valor del matcher corresponde a cómo se inició la sesión:1182El valor del matcher corresponde a cómo se inició la sesión:

1193 1183 


1199| `compact` | Compactación automática o manual |1189| `compact` | Compactación automática o manual |

1200| `fork` | Una nueva sesión bifurcada desde una existente: `--fork-session` con `--resume` o `--continue`, la copia de fondo `/fork`, o `/branch` |1190| `fork` | Una nueva sesión bifurcada desde una existente: `--fork-session` con `--resume` o `--continue`, la copia de fondo `/fork`, o `/branch` |

1201 1191 

1202Antes de v2.1.214, las sesiones bifurcadas reportaban la fuente `"resume"`.1192Antes de v2.1.214, las sesiones bifurcadas reportaban origen `"resume"`.

1203 1193 

1204Cuando inicia una sesión interactiva, reanuda una conversación al iniciar con `--continue` o `--resume`, o ejecuta `/clear`, los hooks SessionStart se ejecutan en segundo plano. Puede escribir de inmediato, y una conversación que reanudó aparece sin esperar a que se completen los hooks. La primera respuesta de Claude aún espera a que se completen los hooks, por lo que su contexto llega a Claude.1194Cuando inicias una sesión interactiva, reanudas una conversación al iniciar con `--continue` o `--resume`, o ejecutas `/clear`, los hooks SessionStart se ejecutan en segundo plano. Puedes escribir de inmediato, y una conversación que reanudaste aparece sin esperar a que se completen los hooks. La primera respuesta de Claude aún espera a que se completen los hooks, por lo que su contexto llega a Claude.

1205 1195 

1206Cuando cambia de conversación con `/resume` dentro de una sesión, el cambio espera a que se completen los hooks. Si ejecuta `/clear` o cambia a otra conversación mientras los hooks de fondo aún se están ejecutando, nada de lo que devuelven se aplica a la sesión.1196Cuando cambias de conversación con `/resume` dentro de una sesión, el cambio espera a que se completen los hooks. Si ejecutas `/clear` o cambias a otra conversación mientras los hooks de fondo aún se están ejecutando, nada de lo que devuelven se aplica a la sesión.

1207 1197 

1208La misma espera se aplica al iniciar, incluida una sesión reanudada: un prompt que envía mientras los hooks SessionStart aún se están ejecutando no llega a Claude hasta que se completen.1198La misma espera se aplica al iniciar, incluyendo una sesión reanudada: un prompt que envíes mientras los hooks SessionStart aún se están ejecutando no llega a Claude hasta que se completen.

1209 1199 

1210Durante cualquiera de estas esperas, presione `Esc` para recuperar el prompt en la entrada sin enviarlo. Los hooks continúan ejecutándose.1200Durante cualquiera de estas esperas, presiona `Esc` para recuperar el prompt en la entrada sin enviarlo. Los hooks siguen ejecutándose.

1211 1201 

1212<h4 id="sessionstart-input">1202<h4 id="sessionstart-input">

1213 Entrada de SessionStart1203 Entrada de SessionStart


1218| Campo | Descripción |1208| Campo | Descripción |

1219| :- | :- |1209| :- | :- |

1220| `source` | Cómo se inició la sesión: `"startup"` para nuevas sesiones, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear`, `"compact"` después de compactación, o `"fork"` para una nueva sesión bifurcada desde una existente |1210| `source` | Cómo se inició la sesión: `"startup"` para nuevas sesiones, `"resume"` para sesiones reanudadas, `"clear"` después de `/clear`, `"compact"` después de compactación, o `"fork"` para una nueva sesión bifurcada desde una existente |

1221| `model` | El identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando se restaura una sesión a través de recuperación de conversación, así que verifique el campo antes de leerlo |1211| `model` | El identificador del modelo activo. Puede omitirse, por ejemplo después de `/clear` o cuando se restaura una sesión a través de recuperación de conversación, así que verifica el campo antes de leerlo |

1222| `agent_type` | El nombre del agente, presente cuando inicia Claude Code con `claude --agent <name>` |1212| `agent_type` | El nombre del agente, presente cuando inicias Claude Code con `claude --agent <name>` |

1223| `session_title` | El título de sesión actual si ya está establecido, por ejemplo a través de `--name` o `/rename`. Un hook que emite `sessionTitle` puede verificar `session_title` primero para evitar sobrescribir un título que el usuario estableció explícitamente |1213| `session_title` | El título de la sesión actual si ya está establecido, por ejemplo a través de `--name` o `/rename`. Un hook que emite `sessionTitle` puede verificar `session_title` primero para evitar sobrescribir un título que el usuario estableció explícitamente |

1224 1214 

1225Cuando `source` es `"resume"` o `"fork"` y la transcripción contiene al menos una respuesta de Claude, los hooks SessionStart también reciben los cuatro campos siguientes. Su hook puede usarlos para reportar qué cuesta reanudar una conversación obsoleta antes de la primera solicitud, por ejemplo en un [`systemMessage`](#json-output). Estos campos requieren Claude Code v2.1.251 o posterior.1215Cuando `source` es `"resume"` o `"fork"` y la transcripción contiene al menos una respuesta de Claude, los hooks SessionStart también reciben los cuatro campos a continuación. Tu hook puede usarlos para reportar qué cuesta reanudar una conversación obsoleta antes de la primera solicitud, por ejemplo en un [`systemMessage`](#json-output). Estos campos requieren Claude Code v2.1.251 o posterior.

1226 1216 

1227| Campo | Descripción |1217| Campo | Descripción |

1228| :- | :- |1218| :- | :- |

1229| `seconds_since_last_response` | Segundos de reloj de pared desde la última respuesta en la transcripción reanudada |1219| `seconds_since_last_response` | Segundos de reloj de pared desde la última respuesta en la transcripción reanudada |

1230| `context_tokens` | Tokens que la primera solicitud de la sesión reanudada reenvía como su prompt |1220| `context_tokens` | Tokens que la primera solicitud de la sesión reanudada reenvía como su prompt |

1231| `prompt_cache_likely_expired` | `true` cuando la última respuesta es más antigua que la [duración de vida del caché de prompt](/docs/es/prompt-caching#cache-lifetime) de la sesión o una compactación posterior reemplazó la conversación en caché |1221| `prompt_cache_likely_expired` | `true` cuando la última respuesta es más antigua que la [duración del caché de prompt](/docs/es/prompt-caching#cache-lifetime) de la sesión o una compactación posterior reemplazó la conversación en caché |

1232| `estimated_cache_write_usd` | Costo estimado en dólares estadounidenses de escribir `context_tokens` en el caché de prompt en el modelo de la sesión, excluyendo la respuesta |1222| `estimated_cache_write_usd` | Costo estimado en dólares estadounidenses de escribir `context_tokens` en el caché de prompt en el modelo de la sesión, excluyendo la respuesta |

1233 1223 

1234Este ejemplo muestra la entrada para una sesión reanudada 90 minutos después de su última respuesta:1224Este ejemplo muestra la entrada para una sesión reanudada 90 minutos después de su última respuesta:


1252 Control de decisión de SessionStart1242 Control de decisión de SessionStart

1253</h4>1243</h4>

1254 1244 

1255Claude Code agrega stdout que [trata como texto plano](#exit-code-0) al contexto de Claude. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver estos campos específicos del evento:1245Claude Code añade stdout que [trata como texto plano](#exit-code-0) al contexto de Claude. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puedes devolver estos campos específicos del evento:

1256 1246 

1257| Campo | Descripción |1247| Campo | Descripción |

1258| :- | :- |1248| :- | :- |

1259| `additionalContext` | Cadena agregada al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulte [Agregar contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué poner en él |1249| `additionalContext` | Cadena añadida al contexto de Claude al inicio de la conversación, antes del primer prompt. Consulta [Añadir contexto para Claude](#add-context-for-claude) para saber cómo se entrega el texto y qué poner en él |

1260| `initialUserMessage` | Cadena utilizada como el primer mensaje del usuario de la sesión. Se aplica en [modo no interactivo](/docs/es/headless) con la bandera `-p`, donde se convierte en el primer turno incluso si no se proporciona ningún prompt. Si se proporciona un prompt, sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, esto crea el turno |1250| `initialUserMessage` | Cadena utilizada como el primer mensaje del usuario de la sesión. Se aplica en [modo no interactivo](/docs/es/headless) con la bandera `-p`, donde se convierte en el primer turno incluso si no se proporciona ningún prompt. Si se proporciona un prompt, lo sigue como el siguiente turno. A diferencia de `additionalContext`, que se adjunta a un turno existente, esto crea el turno |

1261| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Úselo para nombrar sesiones automáticamente desde la carpeta de inicio, rama de git o nombre de worktree. Se aplica cuando `source` es `"startup"`, `"resume"`, o `"fork"`; se ignora en `"clear"` y `"compact"` |1251| `sessionTitle` | Establece el título de la sesión, con el mismo efecto que `/rename`. Úsalo para nombrar sesiones automáticamente desde la carpeta de inicio, rama de git o nombre de worktree. Se aplica cuando `source` es `"startup"`, `"resume"`, o `"fork"`; se ignora en `"clear"` y `"compact"` |

1262| `watchPaths` | Matriz de rutas absolutas para observar eventos [FileChanged](#filechanged) durante esta sesión |1252| `watchPaths` | Array de rutas absolutas para observar eventos [FileChanged](#filechanged) durante esta sesión |

1263| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a escanear los directorios de [skill](/docs/es/skills) y comando después de que se completen los hooks SessionStart, por lo que las skills que instaló el hook están disponibles en la misma sesión, comenzando con el primer prompt |1253| `reloadSkills` | Booleano. Cuando es `true`, Claude Code vuelve a escanear los directorios de [skill](/docs/es/skills) y comando después de que se completen los hooks SessionStart, por lo que las skills que instaló el hook están disponibles en la misma sesión, comenzando con el primer prompt |

1264 1254 

1265```json theme={null}1255```json theme={null}


1272}1262}

1273```1263```

1274 1264 

1275Dado que stdout plano ya llega a Claude para este evento, un hook que solo carga contexto puede imprimir a stdout directamente sin construir JSON. Use la forma JSON cuando necesite combinar contexto con otros campos como `sessionTitle`.1265Dado que stdout plano ya llega a Claude para este evento, un hook que solo carga contexto puede imprimir a stdout directamente sin construir JSON. Usa la forma JSON cuando necesites combinar contexto con otros campos como `sessionTitle`.

1276 1266 

1277Use `reloadSkills` cuando un hook SessionStart instala o actualiza skills. El descubrimiento de skills normalmente se ejecuta antes de que se completen los hooks SessionStart, por lo que los archivos que el hook escribe en `~/.claude/skills/` o `.claude/skills/` de otro modo solo aparecerían en la siguiente sesión. Este ejemplo sincroniza un repositorio de skills compartido y solicita el re-escaneo:1267Usa `reloadSkills` cuando un hook SessionStart instala o actualiza skills. El descubrimiento de skills normalmente se ejecuta antes de que se completen los hooks SessionStart, por lo que los archivos que el hook escribe en `~/.claude/skills/` o `.claude/skills/` de otro modo solo aparecerían en la siguiente sesión. Este ejemplo sincroniza un repositorio de skills compartido y solicita el re-escaneo:

1278 1268 

1279```bash theme={null}1269```bash theme={null}

1280#!/bin/bash1270#!/bin/bash


1285echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1275echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1286```1276```

1287 1277 

1288La URL del repositorio es un marcador de posición; reemplácela con su propio repositorio de skills. Con el marcador de posición, el clon falla e imprime un mensaje `fatal:` a stderr. Stderr de un hook SessionStart que sale con 0 es solo informativo, por lo que la solicitud `reloadSkills` aún se aplica.1278La URL del repositorio es un marcador de posición; reemplázala con tu propio repositorio de skills. Con el marcador de posición, el clon falla e imprime un mensaje `fatal:` a stderr. Stderr de un hook SessionStart que sale con 0 es solo informativo, por lo que la solicitud `reloadSkills` aún se aplica.

1289 1279 

1290<h4 id="persist-environment-variables">1280<h4 id="persist-environment-variables">

1291 Persistir variables de entorno1281 Persistir variables de entorno

1292</h4>1282</h4>

1293 1283 

1294Los hooks SessionStart tienen acceso a la variable de entorno `CLAUDE_ENV_FILE`, que proporciona una ruta de archivo donde puede persistir variables de entorno para comandos Bash posteriores.1284Los hooks SessionStart tienen acceso a la variable de entorno `CLAUDE_ENV_FILE`, que proporciona una ruta de archivo donde puedes persistir variables de entorno para comandos Bash posteriores.

1295 1285 

1296Para establecer variables de entorno individuales, escriba declaraciones `export` en `CLAUDE_ENV_FILE`. Use append (`>>`) para preservar variables establecidas por otros hooks:1286Para establecer variables de entorno individuales, escribe declaraciones `export` en `CLAUDE_ENV_FILE`. Usa append (`>>`) para preservar variables establecidas por otros hooks:

1297 1287 

1298```bash theme={null}1288```bash theme={null}

1299#!/bin/bash1289#!/bin/bash


1307exit 01297exit 0

1308```1298```

1309 1299 

1310Para capturar todos los cambios de entorno de comandos de configuración, compare las variables exportadas antes y después:1300Para capturar todos los cambios de entorno de comandos de configuración, compara las variables exportadas antes y después:

1311 1301 

1312```bash theme={null}1302```bash theme={null}

1313#!/bin/bash1303#!/bin/bash


1334 Setup1324 Setup

1335</h3>1325</h3>

1336 1326 

1337Se dispara solo cuando inicia Claude Code con `--init-only`, o con `--init` o `--maintenance` en [modo no interactivo](/docs/es/headless) con la bandera `-p`. No se dispara al iniciar normalmente. Úselo para instalación de dependencias única o limpieza programada que dispara explícitamente desde CI o scripts, separado del inicio de sesión normal. Para inicialización por sesión, use [SessionStart](#sessionstart) en su lugar.1327Se dispara solo cuando inicias Claude Code con `--init-only`, o con `--init` o `--maintenance` en [modo no interactivo](/docs/es/headless) con la bandera `-p`. No se dispara en el inicio normal. Úsalo para instalación de dependencias única o limpieza programada que actives explícitamente desde CI o scripts, separado del inicio normal de sesión. Para inicialización por sesión, usa [SessionStart](#sessionstart) en su lugar.

1338 1328 

1339El valor del matcher corresponde a la bandera CLI que disparó el hook:1329El valor del matcher corresponde a la bandera CLI que activó el hook:

1340 1330 

1341| Matcher | Cuándo se dispara |1331| Matcher | Cuándo se dispara |

1342| :- | :- |1332| :- | :- |

1343| `init` | `claude --init-only` o `claude -p --init` |1333| `init` | `claude --init-only` o `claude -p --init` |

1344| `maintenance` | `claude -p --maintenance` |1334| `maintenance` | `claude -p --maintenance` |

1345 1335 

1346Cuando ejecuta `claude --init-only`, Claude Code ejecuta hooks Setup y hooks `SessionStart` con el matcher `startup`, luego sale sin iniciar una conversación.1336Cuando ejecutas `claude --init-only`, Claude Code ejecuta hooks Setup y hooks `SessionStart` con el matcher `startup`, luego sale sin iniciar una conversación.

1347 1337 

1348Cuando inicia o continúa una conversación con `-p`, también necesita proporcionar un prompt, como argumento o canalizando en stdin. Puede omitir el prompt cuando un hook `SessionStart` proporciona [`initialUserMessage`](#sessionstart-decision-control) o cuando reanuda una sesión con una [llamada de herramienta diferida](#defer-a-tool-call-for-later).1338Cuando inicias o continúas una conversación con `-p`, también necesitas proporcionar un prompt, como argumento o canalizando en stdin. Puedes omitir el prompt cuando un hook `SessionStart` proporciona [`initialUserMessage`](#sessionstart-decision-control) o cuando reanudas una sesión con una [llamada de herramienta diferida](#defer-a-tool-call-for-later).

1349 1339 

1350En caso de éxito, `--init-only` no imprime nada en la terminal. Para confirmar que los hooks se ejecutaron, comience con `claude --debug-file <path> --init-only`, reemplazando `<path>` con una ubicación de archivo de registro, y verifique el registro para las entradas de hook Setup y SessionStart.1340En caso de éxito, `--init-only` no imprime nada en la terminal. Para confirmar que los hooks se ejecutaron, comienza con `claude --debug-file <path> --init-only`, reemplazando `<path>` con una ubicación de archivo de registro, y verifica el registro para las entradas de hook Setup y SessionStart.

1351 1341 

1352Debido a que Setup no se dispara en cada inicio, un plugin que necesita una dependencia instalada no puede confiar solo en Setup. El patrón práctico es verificar la dependencia en el primer uso e instalar si falta, por ejemplo un hook o skill que prueba `${CLAUDE_PLUGIN_DATA}/node_modules` y ejecuta `npm install` si está ausente. Consulte el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data) para saber dónde almacenar las dependencias instaladas. Si distribuye su plugin a través de un marketplace, es posible que no necesite este patrón: Claude Code [instala automáticamente las dependencias del paquete Node.js elegibles](/docs/es/plugins/loading#node-js-package-dependencies) cuando almacena en caché el plugin.1342Debido a que Setup no se dispara en cada inicio, un plugin que necesita una dependencia instalada no puede confiar solo en Setup. El patrón práctico es verificar la dependencia en el primer uso e instalar si falta, por ejemplo un hook o skill que prueba `${CLAUDE_PLUGIN_DATA}/node_modules` y ejecuta `npm install` si está ausente. Consulta el [directorio de datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data) para saber dónde almacenar dependencias instaladas. Si distribuyes tu plugin a través de un marketplace, es posible que no necesites este patrón: Claude Code [instala automáticamente las dependencias de paquetes Node.js elegibles](/docs/es/plugins/loading#node-js-package-dependencies) cuando almacena en caché el plugin.

1353 1343 

1354<h4 id="setup-input">1344<h4 id="setup-input">

1355 Entrada de Setup1345 Entrada de Setup


1371 Control de decisión de Setup1361 Control de decisión de Setup

1372</h4>1362</h4>

1373 1363 

1374Los hooks Setup no pueden bloquear; la ejecución continúa en cualquier código de salida. En cada código de salida, Claude Code descarta los [campos de salida JSON](#json-output) de un hook Setup, como `systemMessage`, `continue`, y `hookSpecificOutput.additionalContext`. Con `-p`, la salida stdout, stderr y código de salida de un hook Setup aparecen en la salida de la ejecución solo como [eventos `hook_response`](/docs/es/headless#read-session-metadata) cuando inicia con `--output-format stream-json --verbose`.1364Los hooks Setup no pueden bloquear; la ejecución continúa en cualquier código de salida. En cada código de salida, Claude Code descarta los [campos de salida JSON](#json-output) de un hook Setup, como `systemMessage`, `continue`, y `hookSpecificOutput.additionalContext`. Con `-p`, la salida estándar, error estándar y código de salida de un hook Setup aparecen en la salida de la ejecución solo como [eventos `hook_response`](/docs/es/headless#read-session-metadata) cuando inicias con `--output-format stream-json --verbose`.

1375 1365 

1376Los hooks Setup tienen acceso a `CLAUDE_ENV_FILE`. Las variables escritas en ese archivo persisten en comandos Bash posteriores para la sesión, al igual que en [hooks SessionStart](#persist-environment-variables). Solo se ejecutan hooks `type: "command"` en `Setup`. Un hook `type: "mcp_tool"` en `Setup` siempre se omite, como se describe en [Campos de hook de herramienta MCP](#mcp-tool-hook-fields).1366Los hooks Setup tienen acceso a `CLAUDE_ENV_FILE`. Las variables escritas en ese archivo persisten en comandos Bash posteriores para la sesión, tal como en [hooks SessionStart](#persist-environment-variables). Solo se ejecutan hooks `type: "command"` en `Setup`. Un hook `type: "mcp_tool"` en `Setup` siempre se omite, como se describe en [Campos de hook de herramienta MCP](#mcp-tool-hook-fields).

1377 1367 

1378<h3 id="instructionsloaded">1368<h3 id="instructionsloaded">

1379 InstructionsLoaded1369 InstructionsLoaded


1381 1371 

1382Se dispara cuando se carga un archivo `CLAUDE.md` o `.claude/rules/*.md` en el contexto. Este evento se dispara al inicio de la sesión para archivos cargados con entusiasmo y nuevamente más tarde cuando se cargan archivos de forma perezosa, por ejemplo cuando Claude accede a un subdirectorio que contiene un `CLAUDE.md` anidado o cuando las reglas condicionales con frontmatter `paths:` coinciden. El hook no admite bloqueo o control de decisión. Se ejecuta de forma asincrónica con fines de observabilidad.1372Se dispara cuando se carga un archivo `CLAUDE.md` o `.claude/rules/*.md` en el contexto. Este evento se dispara al inicio de la sesión para archivos cargados con entusiasmo y nuevamente más tarde cuando se cargan archivos de forma perezosa, por ejemplo cuando Claude accede a un subdirectorio que contiene un `CLAUDE.md` anidado o cuando las reglas condicionales con frontmatter `paths:` coinciden. El hook no admite bloqueo o control de decisión. Se ejecuta de forma asincrónica con fines de observabilidad.

1383 1373 

1384Este evento no se dispara cuando Claude [lee `AGENTS.md` directamente](/docs/es/memory#agents-md) a través de la configuración **Project instructions**. Se dispara cuando un `CLAUDE.md` importa su `AGENTS.md`, con `load_reason` establecido en `include` como para cualquier otro archivo importado, y cuando `CLAUDE.md` es un symlink a él, como una carga normal de `CLAUDE.md`.1374Este evento no se dispara cuando Claude [lee `AGENTS.md` directamente](/docs/es/memory#agents-md) a través de la configuración **Instrucciones del proyecto**. Se dispara cuando un `CLAUDE.md` importa tu `AGENTS.md`, con `load_reason` establecido en `include` como para cualquier otro archivo importado, y cuando `CLAUDE.md` es un enlace simbólico a él, como una carga normal de `CLAUDE.md`.

1385 1375 

1386El matcher se ejecuta contra `load_reason`. Por ejemplo, use `"matcher": "session_start"` para dispararse solo para archivos cargados al inicio de la sesión, o `"matcher": "path_glob_match|nested_traversal"` para dispararse solo para cargas perezosas.1376El matcher se ejecuta contra `load_reason`. Por ejemplo, usa `"matcher": "session_start"` para dispararse solo para archivos cargados al inicio de la sesión, o `"matcher": "path_glob_match|nested_traversal"` para dispararse solo para cargas perezosas.

1387 1377 

1388<h4 id="instructionsloaded-input">1378<h4 id="instructionsloaded-input">

1389 Entrada de InstructionsLoaded1379 Entrada de InstructionsLoaded


1397| `memory_type` | Alcance del archivo: `"User"`, `"Project"`, `"Local"`, o `"Managed"` |1387| `memory_type` | Alcance del archivo: `"User"`, `"Project"`, `"Local"`, o `"Managed"` |

1398| `load_reason` | Por qué se cargó el archivo: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"`, o `"compact"`. El valor `"compact"` se dispara cuando los archivos de instrucciones se recargan después de un evento de compactación |1388| `load_reason` | Por qué se cargó el archivo: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"`, o `"compact"`. El valor `"compact"` se dispara cuando los archivos de instrucciones se recargan después de un evento de compactación |

1399| `globs` | Patrones de glob de ruta del frontmatter `paths:` del archivo, si los hay. Presente solo para cargas `path_glob_match` |1389| `globs` | Patrones de glob de ruta del frontmatter `paths:` del archivo, si los hay. Presente solo para cargas `path_glob_match` |

1400| `trigger_file_path` | Ruta al archivo cuyo acceso disparó esta carga, para cargas perezosas |1390| `trigger_file_path` | Ruta al archivo cuyo acceso activó esta carga, para cargas perezosas |

1401| `parent_file_path` | Ruta al archivo de instrucciones padre que incluyó este, para cargas `include` |1391| `parent_file_path` | Ruta al archivo de instrucciones padre que incluyó este, para cargas `include` |

1402 1392 

1403```json theme={null}1393```json theme={null}


1416 Control de decisión de InstructionsLoaded1406 Control de decisión de InstructionsLoaded

1417</h4>1407</h4>

1418 1408 

1419Los hooks InstructionsLoaded no tienen control de decisión. No pueden bloquear o modificar la carga de instrucciones. Claude Code descarta sus [campos de salida JSON](#json-output), como `systemMessage` y `continue`. Use este evento para auditoría de registros, seguimiento de cumplimiento u observabilidad.1409Los hooks InstructionsLoaded no tienen control de decisión. No pueden bloquear o modificar la carga de instrucciones. Claude Code descarta sus [campos de salida JSON](#json-output), como `systemMessage` y `continue`. Usa este evento para auditoría de registros, seguimiento de cumplimiento u observabilidad.

1420 1410 

1421<h3 id="userpromptsubmit">1411<h3 id="userpromptsubmit">

1422 UserPromptSubmit1412 UserPromptSubmit

1423</h3>1413</h3>

1424 1414 

1425Se ejecuta cuando el usuario envía un prompt, antes de que Claude lo procese. Esto le permite agregar contexto adicional basado en el prompt/conversación, validar prompts o bloquear ciertos tipos de prompts.1415Se ejecuta cuando el usuario envía un prompt, antes de que Claude lo procese. Esto te permite añadir contexto adicional basado en el prompt/conversación, validar prompts o bloquear ciertos tipos de prompts.

1426 1416 

1427Los hooks `UserPromptSubmit` tienen un tiempo de espera predeterminado de 30 segundos para tipos `command`, `http` y `mcp_tool`, más corto que el predeterminado de 600 segundos para esos tipos en la mayoría de otros eventos. Debido a que este hook se ejecuta antes de cada prompt y bloquea el procesamiento del modelo hasta que se completa, un hook atascado detiene la sesión. Si su hook necesita más tiempo, establezca el campo `timeout` en la entrada del hook.1417Los hooks `UserPromptSubmit` tienen un tiempo de espera predeterminado de 30 segundos para tipos `command`, `http`, y `mcp_tool`, más corto que el predeterminado de 600 segundos para esos tipos en la mayoría de otros eventos. Debido a que este hook se ejecuta antes de cada prompt y bloquea el procesamiento del modelo hasta que se completa, un hook atascado paraliza la sesión. Si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.

1428 1418 

1429Aparte de un hook de comando que ejecuta con [`async: true`](#run-hooks-in-the-background), un hook de comando, HTTP o herramienta MCP `UserPromptSubmit` que alcanza su tiempo de espera se cancela y su salida, incluido cualquier `additionalContext`, se descarta. El prompt aún llega a Claude sin ese contexto. La transcripción muestra un aviso que nombra el hook, el tiempo de espera que se disparó y que la salida se descartó.1419Aparte de un hook de comando que ejecutas con [`async: true`](#run-hooks-in-the-background), un hook `UserPromptSubmit` de comando, HTTP o herramienta MCP que alcanza su tiempo de espera se cancela y su salida, incluyendo cualquier `additionalContext`, se descarta. El prompt aún llega a Claude sin ese contexto. La transcripción muestra un aviso que nombra el hook, el tiempo de espera que se disparó y que la salida se descartó.

1430 1420 

1431Un hook de devolución de llamada [Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` que alcanza su tiempo de espera bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, porque una devolución de llamada allí puede actuar como una puerta de política que no debe fallar abierta. La sesión continúa. Antes de v2.1.208, un tiempo de espera de devolución de llamada en ese evento terminaba el turno con un error de ejecución.1421Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `UserPromptSubmit` que alcanza su tiempo de espera bloquea el prompt con un mensaje que nombra el hook y el tiempo de espera, porque un callback allí puede estar actuando como una puerta de política que no debe fallar abierta. La sesión continúa. Antes de v2.1.208, un tiempo de espera de callback en ese evento terminaba el turno con un error de ejecución.

1432 1422 

1433<h4 id="userpromptsubmit-input">1423<h4 id="userpromptsubmit-input">

1434 Entrada de UserPromptSubmit1424 Entrada de UserPromptSubmit

1435</h4>1425</h4>

1436 1426 

1437Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptSubmit reciben el campo `prompt` que contiene el texto que el usuario envió. El contenido pegado que se colapsó en un marcador de posición `[Pasted text #N]` llega expandido en su lugar. En sesiones donde Claude Code [marca el texto pegado para Claude](/docs/es/terminal-config#how-claude-treats-pasted-text), ese contenido expandido se encuentra entre una línea `<pasted_content id="…">` y una línea `</pasted_content id="…">`, así que tenga en cuenta esas líneas si su hook analiza el prompt.1427Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptSubmit reciben el campo `prompt` que contiene el texto que el usuario envió. El contenido pegado que se redujo a un marcador de posición `[Pasted text #N]` llega expandido en su lugar. En sesiones donde Claude Code [marca el texto pegado para Claude](/docs/es/terminal-config#how-claude-treats-pasted-text), ese contenido expandido se encuentra entre una línea `<pasted_content id="…">` y una línea `</pasted_content id="…">`, así que ten en cuenta esas líneas si tu hook analiza el prompt.

1438 1428 

1439```json theme={null}1429```json theme={null}

1440{1430{


1451 Control de decisión de UserPromptSubmit1441 Control de decisión de UserPromptSubmit

1452</h4>1442</h4>

1453 1443 

1454Los hooks `UserPromptSubmit` pueden controlar si se procesa un prompt de usuario y agregar contexto. Todos los [campos de salida JSON](#json-output) están disponibles.1444Los hooks `UserPromptSubmit` pueden controlar si se procesa un prompt de usuario y añadir contexto. Todos los [campos de salida JSON](#json-output) están disponibles.

1455 1445 

1456Hay dos formas de agregar contexto a la conversación en código de salida 0:1446Hay dos formas de añadir contexto a la conversación en código de salida 0:

1457 1447 

1458* **Stdout de texto plano**: Claude Code agrega stdout que [trata como texto plano](#exit-code-0) al contexto de Claude1448* **Stdout de texto plano**: Claude Code añade stdout que [trata como texto plano](#exit-code-0) al contexto de Claude

1459* **JSON con `additionalContext`**: use el formato JSON a continuación para más control. El campo `additionalContext` se agrega como contexto1449* **JSON con `additionalContext`**: usa el formato JSON a continuación para más control. El campo `additionalContext` se añade como contexto

1460 1450 

1461Ningún canal produce una entrada de transcripción visible. El stdout plano y el valor `additionalContext` se inyectan cada uno como un recordatorio del sistema que comienza con el nombre del hook; Claude lee ambos. Para confirmar la entrega, verifique el [registro de depuración](#debug-hooks).1451Ningún canal produce una entrada de transcripción visible. El stdout plano y el valor `additionalContext` se inyectan cada uno como un recordatorio del sistema que comienza con el nombre del hook; Claude lee ambos. Para confirmar la entrega, verifica el [registro de depuración](#debug-hooks).

1462 1452 

1463Para bloquear un prompt, devuelva un objeto JSON con `decision` establecido en `"block"`:1453Para bloquear un prompt, devuelve un objeto JSON con `decision` establecido en `"block"`:

1464 1454 

1465| Campo | Descripción |1455| Campo | Descripción |

1466| :- | :- |1456| :- | :- |

1467| `decision` | `"block"` evita que se procese el prompt y lo borra del contexto. Omita para permitir que el prompt continúe |1457| `decision` | `"block"` evita que se procese el prompt y lo borra del contexto. Omite para permitir que el prompt continúe |

1468| `reason` | Se muestra al usuario cuando `decision` es `"block"`. No se agrega al contexto |1458| `reason` | Se muestra al usuario cuando `decision` es `"block"`. No se añade al contexto |

1469| `additionalContext` | Cadena agregada al contexto de Claude junto con el prompt enviado. Consulte [Agregar contexto para Claude](#add-context-for-claude) |1459| `additionalContext` | Cadena añadida al contexto de Claude junto con el prompt enviado. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

1470| `sessionTitle` | Establece el título de la sesión. Úselo para nombrar sesiones automáticamente basándose en el contenido del prompt |1460| `sessionTitle` | Establece el título de la sesión. Úsalo para nombrar sesiones automáticamente basándote en el contenido del prompt |

1471| `suppressOriginalPrompt` | Si es `true` cuando `decision` es `"block"`, omite el texto del prompt original del mensaje de bloqueo mostrado al usuario |1461| `suppressOriginalPrompt` | Si es `true` cuando `decision` es `"block"`, omite el texto del prompt original del mensaje de bloqueo mostrado al usuario |

1472 1462 

1473Un hook que bloquea saliendo con 2 se enruta de la misma manera que `reason`: el mensaje de bloqueo muestra el texto stderr al usuario y no se agrega al contexto.1463Un hook que bloquea saliendo con 2 se enruta de la misma manera que `reason`: el mensaje de bloqueo muestra el texto stderr al usuario, y no se añade al contexto.

1474 1464 

1475```json theme={null}1465```json theme={null}

1476{1466{


1488 UserPromptExpansion1478 UserPromptExpansion

1489</h3>1479</h3>

1490 1480 

1491Se ejecuta cuando un comando escrito por el usuario se expande en un prompt antes de llegar a Claude. Úselo para bloquear comandos específicos de invocación directa, inyectar contexto para una skill particular o registrar qué comandos invocan los usuarios. Por ejemplo, un hook que coincide con `deploy` puede bloquear `/deploy` a menos que esté presente un archivo de aprobación, o un hook que coincide con una skill de revisión puede agregar la lista de verificación de revisión del equipo como `additionalContext`.1481Se ejecuta cuando un comando escrito por el usuario se expande en un prompt antes de llegar a Claude. Úsalo para bloquear comandos específicos de invocación directa, inyectar contexto para una skill particular o registrar qué comandos invocan los usuarios. Por ejemplo, un hook que coincide con `deploy` puede bloquear `/deploy` a menos que esté presente un archivo de aprobación, o un hook que coincide con una skill de revisión puede añadir la lista de verificación de revisión del equipo como `additionalContext`.

1492 1482 

1493Este evento cubre la ruta que `PreToolUse` no cubre: un hook `PreToolUse` que coincide con la herramienta `Skill` se dispara solo cuando Claude llama a la herramienta, pero escribir `/skillname` directamente omite `PreToolUse`. `UserPromptExpansion` se dispara en esa ruta directa.1483Este evento cubre la ruta que `PreToolUse` no cubre: un hook `PreToolUse` que coincide con la herramienta `Skill` se dispara solo cuando Claude llama a la herramienta, pero escribir `/skillname` directamente omite `PreToolUse`. `UserPromptExpansion` se dispara en esa ruta directa.

1494 1484 

1495Coincide en `command_name`. Deje el matcher vacío para dispararse en cada comando de tipo prompt.1485Coincide en `command_name`. Deja el matcher vacío para dispararse en cada comando de tipo prompt.

1496 1486 

1497<h4 id="userpromptexpansion-input">1487<h4 id="userpromptexpansion-input">

1498 Entrada de UserPromptExpansion1488 Entrada de UserPromptExpansion

1499</h4>1489</h4>

1500 1490 

1501Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptExpansion reciben `expansion_type`, `command_name`, `command_args`, `command_source` y la cadena `prompt` original. El campo `expansion_type` es `slash_command` para skills y comandos personalizados, o `mcp_prompt` para prompts del servidor MCP.1491Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptExpansion reciben `expansion_type`, `command_name`, `command_args`, `command_source`, y la cadena `prompt` original. El campo `expansion_type` es `slash_command` para skills y comandos personalizados, o `mcp_prompt` para prompts del servidor MCP.

1502 1492 

1503```json theme={null}1493```json theme={null}

1504{1494{


1519 Control de decisión de UserPromptExpansion1509 Control de decisión de UserPromptExpansion

1520</h4>1510</h4>

1521 1511 

1522Los hooks `UserPromptExpansion` pueden bloquear la expansión o agregar contexto. Todos los [campos de salida JSON](#json-output) están disponibles.1512Los hooks `UserPromptExpansion` pueden bloquear la expansión o añadir contexto. Todos los [campos de salida JSON](#json-output) están disponibles.

1523 1513 

1524| Campo | Descripción |1514| Campo | Descripción |

1525| :- | :- |1515| :- | :- |

1526| `decision` | `"block"` evita que el comando se expanda. Omita para permitir que continúe |1516| `decision` | `"block"` evita que el comando se expanda. Omite para permitir que continúe |

1527| `reason` | Se muestra al usuario cuando `decision` es `"block"` |1517| `reason` | Se muestra al usuario cuando `decision` es `"block"` |

1528| `additionalContext` | Cadena agregada al contexto de Claude junto con el prompt expandido. Consulte [Agregar contexto para Claude](#add-context-for-claude) |1518| `additionalContext` | Cadena añadida al contexto de Claude junto con el prompt expandido. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

1529 1519 

1530Un hook que bloquea saliendo con 2 se enruta de la misma manera que `reason`: el mensaje de bloqueo muestra el texto stderr al usuario.1520Un hook que bloquea saliendo con 2 se enruta de la misma manera que `reason`: el mensaje de bloqueo muestra el texto stderr al usuario.

1531 1521 


1546 1536 

1547Se ejecuta mientras un mensaje del asistente se transmite a la pantalla. Claude Code muestra el mensaje en incrementos: cada vez que un lote de líneas recién completadas está listo para renderizar, el hook se ejecuta una vez con esas líneas y Claude Code renderiza el texto de reemplazo del hook en su lugar. Un mensaje largo produce varias llamadas; un mensaje corto puede producir solo una.1537Se ejecuta mientras un mensaje del asistente se transmite a la pantalla. Claude Code muestra el mensaje en incrementos: cada vez que un lote de líneas recién completadas está listo para renderizar, el hook se ejecuta una vez con esas líneas y Claude Code renderiza el texto de reemplazo del hook en su lugar. Un mensaje largo produce varias llamadas; un mensaje corto puede producir solo una.

1548 1538 

1549Use MessageDisplay para:1539Usa MessageDisplay para:

1550 1540 

1551* eliminar markdown para una visualización mínima1541* eliminar markdown para una visualización mínima

1552* transformar el texto que una aplicación Agent SDK muestra a sus usuarios1542* transformar el texto que una aplicación del Agent SDK muestra a sus usuarios

1553* redactar claves API o nombres de host internos de las respuestas de Claude1543* redactar claves API o nombres de host internos de las respuestas de Claude

1554 1544 

1555Claude Code retiene cada lote hasta que su hook devuelve, así que mantenga el hook rápido. Si el hook falla o agota el tiempo de espera, Claude Code muestra el texto original. El tiempo de espera predeterminado para este evento es 10 segundos; si su hook necesita más tiempo, establezca el campo `timeout` en la entrada del hook.1545Claude Code retiene cada lote hasta que tu hook devuelve, así que mantén el hook rápido. Si el hook falla o agota el tiempo de espera, Claude Code muestra el texto original. El tiempo de espera predeterminado para este evento es 10 segundos; si tu hook necesita más tiempo, establece el campo `timeout` en la entrada del hook.

1556 1546 

1557MessageDisplay es solo para visualización: el texto de reemplazo cambia solo lo que se renderiza en pantalla. La transcripción y lo que Claude ve mantienen el texto original, por lo que Claude nunca ve el reemplazo, y el modo detallado muestra el original. El hook recibe solo texto de mensaje del asistente, por lo que los resultados de herramientas y el texto que escribe se renderiza sin cambios.1547MessageDisplay es solo para visualización: el texto de reemplazo cambia solo lo que se renderiza en pantalla. La transcripción y lo que Claude ve mantienen el texto original, por lo que Claude nunca ve el reemplazo, y el modo detallado muestra el original. El hook recibe solo texto de mensaje del asistente, por lo que los resultados de herramientas y el texto que escribes se renderiza sin cambios.

1558 1548 

1559MessageDisplay no admite matchers y se dispara para cada mensaje del asistente que transmite texto; los mensajes sin texto, como respuestas de solo llamada de herramienta, no lo disparan.1549MessageDisplay no admite matchers y se dispara para cada mensaje del asistente que transmite texto; los mensajes sin texto, como respuestas de solo llamada de herramienta, no lo activan.

1560 1550 

1561En ejecuciones no interactivas, incluidas consultas de Agent SDK y `claude -p`, MessageDisplay se ejecuta una vez por mensaje del asistente en lugar de una vez por lote de líneas. La llamada única llega después de que se completa el mensaje y lleva el texto del mensaje completo: `index` es `0`, `final` es `true`, y `delta` contiene el mensaje completo. Un hook que recopila el texto `delta` para cada mensaje recibe el mismo texto total en ambos modos.1551En ejecuciones no interactivas, incluyendo consultas del Agent SDK y `claude -p`, MessageDisplay se ejecuta una vez por mensaje del asistente en lugar de una vez por lote de líneas. La llamada única llega después de que se completa el mensaje y lleva el texto completo del mensaje: `index` es `0`, `final` es `true`, y `delta` contiene el mensaje completo. Un hook que recopila el texto `delta` para cada mensaje recibe el mismo texto total en ambos modos.

1562 1552 

1563<h4 id="messagedisplay-input">1553<h4 id="messagedisplay-input">

1564 Entrada de MessageDisplay1554 Entrada de MessageDisplay

1565</h4>1555</h4>

1566 1556 

1567Además de los [campos de entrada comunes](#common-input-fields), los hooks MessageDisplay reciben identificadores para el turno y el mensaje, la posición de esta llamada dentro del mensaje y el nuevo texto en `delta`. Los límites de lotes dependen de cómo se transmite el texto, así que use `index` y `final` para rastrear el progreso a través de un mensaje en lugar de esperar que las líneas se agrupen de una manera particular.1557Además de los [campos de entrada comunes](#common-input-fields), los hooks MessageDisplay reciben identificadores para el turno y el mensaje, la posición de esta llamada dentro del mensaje, y el nuevo texto en `delta`. Los límites de lotes dependen de cómo se transmita el texto, así que usa `index` y `final` para rastrear el progreso a través de un mensaje en lugar de esperar que las líneas se agrupen de una manera particular.

1568 1558 

1569| Campo | Descripción |1559| Campo | Descripción |

1570| :- | :- |1560| :- | :- |

1571| `turn_id` | UUID del turno actual |1561| `turn_id` | UUID del turno actual |

1572| `message_id` | UUID del mensaje del asistente que se muestra. Estable en cada lote del mismo mensaje. Este no es el ID de API `msg_…`, por lo que no se puede correlacionar con IDs de mensaje de transcripción |1562| `message_id` | UUID del mensaje del asistente que se está mostrando. Estable en cada lote del mismo mensaje. Este no es el `msg_…` id de la API, por lo que no se puede correlacionar con ids de mensajes de transcripción |

1573| `index` | Índice basado en cero de este lote dentro del mensaje |1563| `index` | Índice basado en cero de este lote dentro del mensaje |

1574| `final` | `true` en el último lote del mensaje. Cada mensaje tiene exactamente un lote final |1564| `final` | `true` en el último lote del mensaje. Cada mensaje tiene exactamente un lote final |

1575| `delta` | Las líneas recién completadas desde el lote anterior, incluidas las saltos de línea finales. Siempre líneas completas, excepto el lote final que puede terminar a mitad de línea. En ejecuciones interactivas, el delta del lote final está vacío cuando el mensaje termina en un salto de línea, así que trate `final`, no un delta no vacío, como la señal de fin de mensaje. En ejecuciones de Agent SDK y `claude -p`, la llamada única lleva el mensaje completo |1565| `delta` | Las líneas recién completadas desde el lote anterior, incluyendo saltos de línea finales. Siempre líneas completas, excepto el lote final que puede terminar a mitad de línea. En ejecuciones interactivas, el delta del lote final está vacío cuando el mensaje termina en un salto de línea, así que trata `final`, no un delta no vacío, como la señal de fin de mensaje. En ejecuciones del Agent SDK y `claude -p`, la llamada única lleva el mensaje completo |

1576 1566 

1577```json theme={null}1567```json theme={null}

1578{1568{


1596 1586 

1597| Campo | Descripción |1587| Campo | Descripción |

1598| :- | :- |1588| :- | :- |

1599| `displayContent` | Texto mostrado en lugar del delta. Omítalo para mostrar el original |1589| `displayContent` | Texto mostrado en lugar del delta. Omítelo para mostrar el original |

1600 1590 

1601Los hooks MessageDisplay no tienen control de decisión. No pueden bloquear el mensaje o cambiar lo que se almacena en la transcripción o se envía a Claude. Claude Code actúa sobre `displayContent` de su salida JSON y descarta `systemMessage` y `continue`.1591Los hooks MessageDisplay no tienen control de decisión. No pueden bloquear el mensaje o cambiar lo que se almacena en la transcripción o se envía a Claude. Claude Code actúa sobre `displayContent` de su salida JSON y descarta `systemMessage` y `continue`.

1602 1592 

1603Este ejemplo elimina el formato markdown de las respuestas de Claude para una visualización de texto plano. El script lee cada lote de stdin, elimina marcadores en negrita y comillas invertidas de código en línea de `delta`, y devuelve el resultado como `displayContent`.1593Este ejemplo elimina el formato markdown de las respuestas de Claude para una visualización de texto plano. El script lee cada lote de stdin, elimina marcadores en negrita y backticks de código en línea de `delta`, y devuelve el resultado como `displayContent`.

1604 1594 

1605<Tabs>1595<Tabs>

1606 <Tab title="macOS/Linux">1596 <Tab title="macOS/Linux">

1607 Registre un hook de comando para el evento en su archivo de configuración:1597 Registra un hook de comando para el evento en tu archivo de configuración:

1608 1598 

1609 ```json theme={null}1599 ```json theme={null}

1610 {1600 {


1624 }1614 }

1625 ```1615 ```

1626 1616 

1627 Guarde este script en `.claude/hooks/plain-display.sh` en su proyecto y hágalo ejecutable con `chmod +x`:1617 Guarda este script en `.claude/hooks/plain-display.sh` en tu proyecto y hazlo ejecutable con `chmod +x`:

1628 1618 

1629 ```bash theme={null}1619 ```bash theme={null}

1630 #!/bin/bash1620 #!/bin/bash


1633 </Tab>1623 </Tab>

1634 1624 

1635 <Tab title="Windows (PowerShell)">1625 <Tab title="Windows (PowerShell)">

1636 Registre un hook de comando que ejecute el script a través de PowerShell:1626 Registra un hook de comando que ejecute el script a través de PowerShell:

1637 1627 

1638 ```json theme={null}1628 ```json theme={null}

1639 {1629 {


1659 }1649 }

1660 ```1650 ```

1661 1651 

1662 La bandera `-NoProfile` omite cargar su perfil de PowerShell para que el hook se inicie rápido, y `-ExecutionPolicy Bypass` permite que PowerShell ejecute el archivo de script local.1652 La bandera `-NoProfile` omite cargar tu perfil de PowerShell para que el hook se inicie rápido, y `-ExecutionPolicy Bypass` permite que PowerShell ejecute el archivo de script local.

1663 1653 

1664 Guarde este script en `.claude/hooks/plain-display.ps1` en su proyecto:1654 Guarda este script en `.claude/hooks/plain-display.ps1` en tu proyecto:

1665 1655 

1666 ```powershell theme={null}1656 ```powershell theme={null}

1667 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1657 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1676 </Tab>1666 </Tab>

1677</Tabs>1667</Tabs>

1678 1668 

1679Los lotes sin markdown pasan sin cambios. Si el script falla, por ejemplo porque falta `jq`, Claude Code muestra el texto original y solo nota el fallo en [salida de depuración](#debug-hooks), no en la sesión.1669Los lotes sin markdown pasan sin cambios. Si el script falla, por ejemplo porque `jq` falta, Claude Code muestra el texto original y nota el fallo solo en [salida de depuración](#debug-hooks), no en la sesión.

1680 1670 

1681<h3 id="pretooluse">1671<h3 id="pretooluse">

1682 PreToolUse1672 PreToolUse

1683</h3>1673</h3>

1684 1674 

1685Se ejecuta después de que Claude crea parámetros de herramienta y antes de procesar la llamada de herramienta. Coincide con cualquier nombre de herramienta excepto `EndConversation`: herramientas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, y `ExitPlanMode`, y cualquier [nombre de herramienta MCP](#match-mcp-tools).1675Se ejecuta después de que Claude crea parámetros de herramienta y antes de procesar la llamada de herramienta. Coincide en cualquier nombre de herramienta excepto `EndConversation`: herramientas integradas como `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion`, y `ExitPlanMode`, y cualquier [nombre de herramienta MCP](#match-mcp-tools).

1686 1676 

1687Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, use [FileChanged](#filechanged) en lugar de hacer coincidir herramientas de edición de archivos por nombre. A diferencia de PreToolUse, Claude Code ejecuta hooks FileChanged después del cambio y no tienen control de decisión, por lo que no pueden bloquear la escritura.1677Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, usa [FileChanged](#filechanged) en lugar de coincidir con herramientas de edición de archivos por nombre. A diferencia de PreToolUse, Claude Code ejecuta hooks FileChanged después del cambio, y no tienen control de decisión, por lo que no pueden bloquear la escritura.

1688 1678 

1689<Warning>1679<Warning>

1690 PreToolUse se ejecuta solo cuando Claude llama a una herramienta. Los archivos que [referencia con `@` en su prompt](/docs/es/common-workflows#reference-files-and-directories) se agregan sin ninguna llamada de herramienta: Claude Code inserta su contenido mientras construye el prompt, por lo que ningún hook PreToolUse se dispara para ellos, incluidos los hooks que coinciden con `Read`. Para bloquear rutas específicas de referencias `@`, use una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) en su lugar.1680 PreToolUse se ejecuta solo cuando Claude llama a una herramienta. Los archivos que [referencias con `@` en tu prompt](/docs/es/common-workflows#reference-files-and-directories) se añaden sin ninguna llamada de herramienta: Claude Code inserta sus contenidos mientras construye el prompt, por lo que ningún hook PreToolUse se dispara para ellos, incluyendo hooks que coinciden con `Read`. Para bloquear rutas específicas de referencias `@`, usa una [regla de negación `Read`](/docs/es/permissions#read-and-edit) en su lugar.

1691 1681 

1692 PreToolUse tampoco se dispara para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).1682 PreToolUse tampoco se dispara para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).

1693</Warning>1683</Warning>

1694 1684 

1695Use [control de decisión PreToolUse](#pretooluse-decision-control) para permitir, denegar, preguntar o diferir la llamada de herramienta.1685Usa [control de decisión PreToolUse](#pretooluse-decision-control) para permitir, negar, preguntar o diferir la llamada de herramienta.

1696 1686 

1697Un hook de devolución de llamada [Agent SDK](/docs/es/agent-sdk/hooks) en `PreToolUse` que excede su tiempo de espera bloquea la llamada de herramienta, y Claude recibe un resultado de error que nombra el tiempo de espera. Una denegación explícita devuelta por otro hook aún tiene prioridad.1687Un [hook de callback del Agent SDK](/docs/es/agent-sdk/hooks) en `PreToolUse` que excede su tiempo de espera bloquea la llamada de herramienta, y Claude recibe un resultado de error que nombra el tiempo de espera. Una negación explícita devuelta por otro hook aún tiene precedencia.

1698 1688 

1699<h4 id="pretooluse-input">1689<h4 id="pretooluse-input">

1700 Entrada de PreToolUse1690 Entrada de PreToolUse


1702 1692 

1703Además de los [campos de entrada comunes](#common-input-fields), los hooks PreToolUse reciben `tool_name`, `tool_input`, y `tool_use_id`.1693Además de los [campos de entrada comunes](#common-input-fields), los hooks PreToolUse reciben `tool_name`, `tool_input`, y `tool_use_id`.

1704 1694 

1705Para una [herramienta MCP](#match-mcp-tools), la entrada también lleva `mcp_server`, un objeto con el `name` del servidor y un `source` que dice de dónde vino la definición del servidor. Los valores `source` incluyen `plugin`, `sdk`, y alcances de configuración como `user` y `project`. [`McpServerProvenance`](/docs/es/agent-sdk/typescript#mcpserverprovenance) en la referencia de Agent SDK los enumera todos y dice cómo tratar uno que no reconozca. Base las decisiones de confianza en `source` en lugar de en `name` o el prefijo de nombre de herramienta `mcp__<server>__`. El campo `mcp_server` requiere Claude Code v2.1.274 o posterior.1695Para una [herramienta MCP](#match-mcp-tools), la entrada también lleva `mcp_server`, un objeto con el `name` del servidor y un `source` que dice de dónde vino la definición del servidor. Los valores `source` incluyen `plugin`, `sdk`, y alcances de configuración como `user` y `project`. [`McpServerProvenance`](/docs/es/agent-sdk/typescript#mcpserverprovenance) en la referencia del Agent SDK los enumera todos y dice cómo tratar uno que no reconozcas. Basa las decisiones de confianza en `source` en lugar de en `name` o el prefijo de nombre de herramienta `mcp__<server>__`. El campo `mcp_server` requiere Claude Code v2.1.274 o posterior.

1706 1696 

1707Para las herramientas de archivo `Write`, `Edit`, y `Read`, `tool_input.file_path` siempre es absoluto:1697Para las herramientas de archivo `Write`, `Edit`, y `Read`, `tool_input.file_path` siempre es absoluto:

1708 1698 

1709* Claude Code expande `~` y rutas relativas antes de que se ejecuten los hooks, por lo que un hook que coincide con rutas no puede ser eludido a través de `~` o un deletreo relativo de la misma ruta1699* Claude Code expande `~` y rutas relativas antes de que se ejecuten los hooks, por lo que un hook que coincida en rutas no puede ser eludido a través de `~` o un deletreo relativo de la misma ruta

1710* En Windows, la ruta llega con separadores de barra invertida, incluso cuando su hook se ejecuta bajo Git Bash donde `$PWD` se ve como `/c/project`1700* En Windows, la ruta llega con separadores de barra invertida, incluso cuando tu hook se ejecuta bajo Git Bash donde `$PWD` se ve como `/c/project`

1711* Una comparación escrita con barras diagonales, como una verificación `/src/`, nunca coincide con una ruta de barra invertida, y la llamada de herramienta continúa como si el hook no tuviera nada que bloquear1701* Una comparación escrita con barras diagonales, como una verificación `/src/`, nunca coincide con una ruta de barra invertida, y la llamada de herramienta continúa como si el hook no tuviera nada que bloquear

1712* Normalice separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` en Bash, o `file_path.replace("\\", "/")` en Python, luego coincida con un segmento de ruta como `/src/` en lugar de anclar con `^`, ya que la ruta es absoluta1702* Normaliza separadores antes de comparar: `FILE_PATH="${FILE_PATH//\\//}"` en Bash, o `file_path.replace("\\", "/")` en Python, luego coincide con un segmento de ruta como `/src/` en lugar de anclar con `^`, ya que la ruta es absoluta

1713 1703 

1714Una llamada `Write` en Windows entrega:1704Una llamada `Write` en Windows entrega:

1715 1705 


1740| `command` | string | `"npm test"` | El comando de shell a ejecutar |1730| `command` | string | `"npm test"` | El comando de shell a ejecutar |

1741| `description` | string | `"Run test suite"` | Descripción opcional de lo que hace el comando |1731| `description` | string | `"Run test suite"` | Descripción opcional de lo que hace el comando |

1742| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos. Los valores por encima del [máximo](/docs/es/tools-reference#bash-tool-behavior) se reducen al máximo en lugar de ser rechazados |1732| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos. Los valores por encima del [máximo](/docs/es/tools-reference#bash-tool-behavior) se reducen al máximo en lugar de ser rechazados |

1743| `run_in_background` | boolean | `false` | Si ejecutar el comando en segundo plano |1733| `run_in_background` | boolean | `false` | Si se ejecuta el comando en segundo plano |

1744 1734 

1745Cuando un comando Bash cambia archivos en un repositorio Git, Claude Code puede registrar qué cambió. Registra los cambios en cada modo de permiso cuando la configuración [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled) activa el registro; la entrada de esa configuración dice qué archivos pueden establecerla. De lo contrario, solo los registra en modo automático y modo `bypassPermissions`, y solo cuando Claude Code dirige a Claude a editar archivos a través de Bash. Establezca `bashEditDiffEnabled` en `false` para desactivar el registro. Los comandos de fondo y los comandos de solo lectura no llevan diff.1735Cuando un comando Bash cambia archivos en un repositorio Git, Claude Code puede registrar qué cambió. Registra los cambios en cada modo de permiso cuando la configuración [`bashEditDiffEnabled`](/docs/es/settings-reference#basheditdiffenabled) activa el registro; la entrada de esa configuración dice qué archivos pueden establecerla. De lo contrario, los registra solo en modo automático y modo `bypassPermissions`, y solo cuando Claude Code dirige a Claude a editar archivos a través de Bash. Establece `bashEditDiffEnabled` en `false` para desactivar el registro. Los comandos de fondo y los comandos de solo lectura no llevan diff.

1746 1736 

1747Su hook [PostToolUse](#posttooluse) luego recibe los archivos cambiados en `tool_response.bashEditDiff`. La lista cubre qué cambió bajo el repositorio mientras se ejecutaba el comando. Los archivos que Git ignora y los archivos en submódulos no se enumeran. Requiere Claude Code v2.1.269 o posterior.1737Tu [hook PostToolUse](#posttooluse) luego recibe los archivos cambiados en `tool_response.bashEditDiff`. La lista cubre qué cambió bajo el repositorio mientras se ejecutaba el comando. Los archivos que Git ignora y los archivos en submódulos no se enumeran. Requiere Claude Code v2.1.269 o posterior.

1748 1738 

1749<Note>1739<Note>

1750 La lista es mejor esfuerzo y en beta pública. Claude Code puede perder un cambio, incluir un archivo que otro proceso cambió al mismo tiempo, o detenerse en sus límites de tamaño. La forma del campo puede cambiar. Use la lista para encontrar qué revisar, no para hacer cumplir una política.1740 La lista es mejor esfuerzo y en beta pública. Claude Code puede perder un cambio, incluir un archivo que otro proceso cambió al mismo tiempo, o detenerse en sus límites de tamaño. La forma del campo puede cambiar. Usa la lista para encontrar qué revisar, no para aplicar una política.

1751</Note>1741</Note>

1752 1742 

1753`changedFiles` y `files` enumeran qué cambió el comando; los campos restantes dicen qué tan completa y confiable es esa lista.1743`changedFiles` y `files` enumeran qué cambió el comando; los campos restantes dicen qué tan completa y confiable es esa lista.


1755| Campo | Tipo | Ejemplo | Descripción |1745| Campo | Tipo | Ejemplo | Descripción |

1756| :- | :- | :- | :- |1746| :- | :- | :- | :- |

1757| `changedFiles` | array | `["/path/to/src/app.ts"]` | Rutas absolutas de los archivos que el comando cambió, como máximo 200. Presente siempre que `files` contenga un diff o `moreFiles` esté por encima de cero |1747| `changedFiles` | array | `["/path/to/src/app.ts"]` | Rutas absolutas de los archivos que el comando cambió, como máximo 200. Presente siempre que `files` contenga un diff o `moreFiles` esté por encima de cero |

1758| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de hasta 5 archivos cambiados, para visualización. `created` o `deleted` es `true` para un archivo que el comando agregó o eliminó |1748| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs de hasta 5 archivos cambiados, para visualización. `created` o `deleted` es `true` para un archivo que el comando añadió o eliminó |

1759| `moreFiles` | number | `2` | Recuento de archivos cambiados sin diff en `files` |1749| `moreFiles` | number | `2` | Recuento de archivos cambiados sin diff en `files` |

1760| `unavailable` | boolean | `true` | Se establece cuando el diff está incompleto o no se pudo tomar |1750| `unavailable` | boolean | `true` | Establecido cuando el diff está incompleto o no se pudo tomar |

1761| `skipped` | boolean | `true` | Se establece para un comando Git que mueve el árbol de trabajo, como `git checkout` o `git stash`, por lo que Claude Code no toma diff |1751| `skipped` | boolean | `true` | Establecido para un comando Git que mueve el árbol de trabajo, como `git checkout` o `git stash`, por lo que Claude Code no toma diff |

1762| `shared` | boolean | `true` | Se establece cuando otra llamada de herramienta Bash, como la de un subagente, se ejecutó en el mismo repositorio al mismo tiempo, por lo que algunos cambios enumerados pueden ser de ese comando |1752| `shared` | boolean | `true` | Establecido cuando otra llamada de herramienta Bash, como la de un subagente, se ejecutó en el mismo repositorio al mismo tiempo, por lo que algunos cambios enumerados pueden ser de ese comando |

1763 1753 

1764<a id="powershell" />1754<a id="powershell" />

1765 1755 


1767 PowerShell1757 PowerShell

1768</h5>1758</h5>

1769 1759 

1770Ejecuta comandos de PowerShell. Consulte la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) para disponibilidad por plataforma.1760Ejecuta comandos de PowerShell. Consulta la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) para disponibilidad por plataforma.

1771 1761 

1772Los campos coinciden con la herramienta Bash, con la cadena de comando en `command`:1762Los campos coinciden con la herramienta Bash, con la cadena de comando en `command`:

1773 1763 


1776| `command` | string | `"Get-ChildItem -Recurse"` | El comando de PowerShell a ejecutar |1766| `command` | string | `"Get-ChildItem -Recurse"` | El comando de PowerShell a ejecutar |

1777| `description` | string | `"List files recursively"` | Descripción opcional de lo que hace el comando |1767| `description` | string | `"List files recursively"` | Descripción opcional de lo que hace el comando |

1778| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos |1768| `timeout` | number | `120000` | Tiempo de espera opcional en milisegundos |

1779| `run_in_background` | boolean | `false` | Si ejecutar el comando en segundo plano |1769| `run_in_background` | boolean | `false` | Si se ejecuta el comando en segundo plano |

1780 1770 

1781Coincida con `Bash|PowerShell` en hooks que inspeccionen comandos de shell, para que cubran ambas herramientas:1771Coincide en `Bash|PowerShell` en hooks que inspeccionan comandos de shell, para que cubran ambas herramientas:

1782 1772 

1783* En Windows, dondequiera que la herramienta PowerShell esté habilitada, Claude trata PowerShell como el shell principal y enruta comandos de shell a través de él.1773* En Windows, dondequiera que la herramienta PowerShell esté habilitada, Claude trata PowerShell como el shell principal y enruta comandos de shell a través de él.

1784* En Windows sin Git Bash, la herramienta se habilita automáticamente y Claude Code no registra la herramienta Bash en absoluto.1774* En Windows sin Git Bash, la herramienta se habilita automáticamente y Claude Code no registra la herramienta Bash en absoluto.


1806| `file_path` | string | `"/path/to/file.txt"` | Ruta absoluta al archivo a editar |1796| `file_path` | string | `"/path/to/file.txt"` | Ruta absoluta al archivo a editar |

1807| `old_string` | string | `"original text"` | Texto a encontrar y reemplazar |1797| `old_string` | string | `"original text"` | Texto a encontrar y reemplazar |

1808| `new_string` | string | `"replacement text"` | Texto de reemplazo |1798| `new_string` | string | `"replacement text"` | Texto de reemplazo |

1809| `replace_all` | boolean | `false` | Si reemplazar todas las ocurrencias |1799| `replace_all` | boolean | `false` | Si se reemplazan todas las ocurrencias |

1810 1800 

1811<h5 id="read">1801<h5 id="read">

1812 Read1802 Read


1828 1818 

1829| Campo | Tipo | Ejemplo | Descripción |1819| Campo | Tipo | Ejemplo | Descripción |

1830| :- | :- | :- | :- |1820| :- | :- | :- | :- |

1831| `pattern` | string | `"**/*.ts"` | Patrón glob para hacer coincidir archivos contra |1821| `pattern` | string | `"**/*.ts"` | Patrón glob para coincidir archivos contra |

1832| `path` | string | `"/path/to/dir"` | Directorio opcional para buscar en. Por defecto es el directorio de trabajo actual |1822| `path` | string | `"/path/to/dir"` | Directorio opcional para buscar en. Por defecto es el directorio de trabajo actual |

1833 1823 

1834<h5 id="grep">1824<h5 id="grep">


1843| `path` | string | `"/path/to/dir"` | Archivo o directorio opcional para buscar en |1833| `path` | string | `"/path/to/dir"` | Archivo o directorio opcional para buscar en |

1844| `glob` | string | `"*.ts"` | Patrón glob opcional para filtrar archivos |1834| `glob` | string | `"*.ts"` | Patrón glob opcional para filtrar archivos |

1845| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"`, o `"count"`. Por defecto es `"files_with_matches"` |1835| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"`, o `"count"`. Por defecto es `"files_with_matches"` |

1846| `-i` | boolean | `true` | Búsqueda insensible a mayúsculas y minúsculas |1836| `-i` | boolean | `true` | Búsqueda insensible a mayúsculas |

1847| `multiline` | boolean | `false` | Habilitar coincidencia multilínea |1837| `multiline` | boolean | `false` | Habilitar coincidencia multilínea |

1848 1838 

1849<h5 id="webfetch">1839<h5 id="webfetch">


1878| Campo | Tipo | Ejemplo | Descripción |1868| Campo | Tipo | Ejemplo | Descripción |

1879| :- | :- | :- | :- |1869| :- | :- | :- | :- |

1880| `prompt` | string | `"Find all API endpoints"` | La tarea para que el agente realice |1870| `prompt` | string | `"Find all API endpoints"` | La tarea para que el agente realice |

1881| `description` | string | `"Find API endpoints"` | Descripción breve de la tarea |1871| `description` | string | `"Find API endpoints"` | Descripción corta de la tarea |

1882| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |1872| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |

1883| `model` | string | `"sonnet"` | Alias de modelo opcional para anular el predeterminado |1873| `model` | string | `"sonnet"` | Alias de modelo opcional para anular el predeterminado |

1884 1874 

1885Cuando una llamada de Agent en primer plano se completa, su hook [PostToolUse](#posttooluse) recibe el resultado del subagente y telemetría de ejecución en `tool_response`. Lea estos campos para inspeccionar la ejecución; para resúmenes de tokens y costos en subagentes, use los [contadores de tokens y costos](/docs/es/monitoring-usage#token-counter) filtrados a `query_source` `"subagent"`, ya que `totalTokens` y `usage` cubren solo la solicitud final:1875Cuando una llamada Agent en primer plano se completa, tu [hook PostToolUse](#posttooluse) recibe el resultado del subagente y telemetría de ejecución en `tool_response`. Lee estos campos para inspeccionar la ejecución; para resúmenes de tokens y costos en subagentes, usa los [contadores de tokens y costos](/docs/es/monitoring-usage#token-counter) filtrados a `query_source` `"subagent"`, ya que `totalTokens` y `usage` cubren solo la solicitud final:

1886 1876 

1887| Campo | Tipo | Ejemplo | Descripción |1877| Campo | Tipo | Ejemplo | Descripción |

1888| :- | :- | :- | :- |1878| :- | :- | :- | :- |

1889| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. A partir de v2.1.198, los subagentes se ejecutan en segundo plano de forma predeterminada, por lo que un `run_in_background` omitido también produce `"async_launched"` |1879| `status` | string | `"completed"` | `"completed"` para subagentes en primer plano, `"async_launched"` para subagentes en segundo plano. A partir de v2.1.198, los subagentes se ejecutan en segundo plano por defecto, por lo que un `run_in_background` omitido también produce `"async_launched"` |

1890| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para la ejecución del subagente |1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para la ejecución del subagente |

1891| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente, o, para un subagente cuyo informe pasa a través de `SubagentHandback`, una nota breve sobre esa entrega en su lugar |1881| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Los bloques de texto finales del subagente, o, para un subagente cuyo informe pasa a través de `SubagentHandback`, una nota breve sobre esa entrega en su lugar |

1892| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo en el que comenzó el subagente, que puede diferir del modelo solicitado |1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Modelo en el que comenzó el subagente, que puede diferir del modelo solicitado |

1893| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos utilizados en orden, con repeticiones consecutivas colapsadas; se establece solo cuando el modelo fue intercambiado a mitad de ejecución. Requiere Claude Code v2.1.212 o posterior |1883| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Modelos usados en orden, con repeticiones consecutivas colapsadas; establecido solo cuando el modelo fue intercambiado a mitad de ejecución. Requiere Claude Code v2.1.212 o posterior |

1894| `totalTokens` | number | `12450` | Recuento de tokens de la solicitud final de API del subagente: tokens de entrada, salida y caché combinados. Este no es un total en toda la ejecución |1884| `totalTokens` | number | `12450` | Recuento de tokens de la solicitud final de la API del subagente: tokens de entrada, salida y caché combinados. Esto no es un total en toda la ejecución |

1895| `totalDurationMs` | number | `48211` | Duración de reloj de pared de la ejecución del subagente |1885| `totalDurationMs` | number | `48211` | Duración de reloj de pared de la ejecución del subagente |

1896| `totalToolUseCount` | number | `7` | Recuento de llamadas de herramienta que realizó el subagente |1886| `totalToolUseCount` | number | `7` | Recuento de llamadas de herramienta que hizo el subagente |

1897| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo de la solicitud final de API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1887| `usage` | object | `{"input_tokens": 8320, ...}` | Desglose de tokens por tipo de la solicitud final de la API: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1898 1888 

1899En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) que Claude Code proporciona en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), entrega su informe a través de esa herramienta en lugar de devolverlo como texto. El campo `content` de su resultado `completed` luego lleva una nota breve sobre esa entrega en lugar del informe en sí. Para leer el informe, coincida un hook `PreToolUse` o `PostToolUse` en `SubagentHandback` y lea `tool_input.message`.1889En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference), que Claude Code proporciona en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), entrega su informe a través de esa herramienta en lugar de devolverlo como texto. El campo `content` de su resultado `completed` entonces lleva una nota breve sobre esa entrega en lugar del informe en sí. Para leer el informe, coincide un hook `PreToolUse` o `PostToolUse` en `SubagentHandback` y lee `tool_input.message`.

1900 1890 

1901Para subagentes en segundo plano, la herramienta devuelve cuando la tarea se mueve al segundo plano, por lo que `tool_response` no lleva campos de uso: un lanzamiento en segundo plano devuelve inmediatamente, y una tarea en primer plano que Claude Code pone en segundo plano a mitad de ejecución devuelve en esa transición. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, y `resolvedModel`.1891Para subagentes en segundo plano, la herramienta devuelve cuando la tarea se mueve al segundo plano, por lo que `tool_response` no lleva campos de uso: un lanzamiento en segundo plano devuelve inmediatamente, y una tarea en primer plano que Claude Code pone en segundo plano a mitad de ejecución devuelve en esa transición. Tiene `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, y `resolvedModel`.

1902 1892 


1912 1902 

1913| Campo | Tipo | Ejemplo | Descripción |1903| Campo | Tipo | Ejemplo | Descripción |

1914| :- | :- | :- | :- |1904| :- | :- | :- | :- |

1915| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Preguntas a presentar, cada una con una cadena `question`, `header` corto, matriz `options`, y bandera `multiSelect` opcional |1905| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | Preguntas a presentar, cada una con una cadena `question`, `header` corto, array `options`, y bandera `multiSelect` opcional |

1916| `answers` | object | `{"Which framework?": "React"}` | Opcional. Asigna texto de pregunta a la etiqueta de opción seleccionada. Las respuestas de selección múltiple unen etiquetas con comas. Claude no establece este campo; suministrarlo a través de `updatedInput` para responder programáticamente |1906| `answers` | object | `{"Which framework?": "React"}` | Opcional. Mapea texto de pregunta a la etiqueta de opción seleccionada. Las respuestas de selección múltiple unen etiquetas con comas. Claude no establece este campo; suministralo a través de `updatedInput` para responder programáticamente |

1917 1907 

1918<h5 id="exitplanmode">1908<h5 id="exitplanmode">

1919 ExitPlanMode1909 ExitPlanMode

1920</h5>1910</h5>

1921 1911 

1922Presenta un plan y pide al usuario que lo apruebe antes de que Claude salga del [modo de plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escribe el plan en un archivo en el disco antes de llamar a la herramienta, por lo que la `tool_input` literal del modelo es típicamente vacía. Claude Code inyecta el contenido del plan y la ruta del archivo antes de pasar la entrada a los hooks.1912Presenta un plan y pide al usuario que lo apruebe antes de que Claude salga del [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode). Claude escribe el plan en un archivo en el disco antes de llamar a la herramienta, por lo que la `tool_input` literal del modelo es típicamente vacía. Claude Code inyecta el contenido del plan y la ruta del archivo antes de pasar la entrada a los hooks.

1923 1913 

1924| Campo | Tipo | Ejemplo | Descripción |1914| Campo | Tipo | Ejemplo | Descripción |

1925| :- | :- | :- | :- |1915| :- | :- | :- | :- |


1927| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Ruta al archivo del plan. Inyectado |1917| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Ruta al archivo del plan. Inyectado |

1928| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecado. Claude Code acepta el campo pero lo ignora. Antes de v2.1.205, llevaba permisos basados en prompts que Claude solicitó para implementar el plan |1918| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Deprecado. Claude Code acepta el campo pero lo ignora. Antes de v2.1.205, llevaba permisos basados en prompts que Claude solicitó para implementar el plan |

1929 1919 

1930En `PostToolUse`, `tool_response` es un objeto con campos `plan` y `filePath` que contienen el plan aprobado, más banderas de estado internas. Lea `tool_response.plan` para el contenido del plan en lugar de releer el archivo del disco.1920En `PostToolUse`, `tool_response` es un objeto con campos `plan` y `filePath` que contienen el plan aprobado, más banderas de estado internas. Lee `tool_response.plan` para el contenido del plan en lugar de releer el archivo del disco.

1931 1921 

1932<h4 id="pretooluse-decision-control">1922<h4 id="pretooluse-decision-control">

1933 Control de decisión de PreToolUse1923 Control de decisión de PreToolUse

1934</h4>1924</h4>

1935 1925 

1936Los hooks `PreToolUse` pueden controlar si procede una llamada de herramienta. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da un control más rico: cuatro resultados (permitir, denegar, preguntar o diferir) más la capacidad de modificar la entrada de herramienta antes de la ejecución.1926Los hooks `PreToolUse` pueden controlar si procede una llamada de herramienta. A diferencia de otros hooks que usan un campo `decision` de nivel superior, PreToolUse devuelve su decisión dentro de un objeto `hookSpecificOutput`. Esto le da control más rico: cuatro resultados (permitir, negar, preguntar o diferir) más la capacidad de modificar la entrada de herramienta antes de la ejecución.

1937 1927 

1938| Campo | Descripción |1928| Campo | Descripción |

1939| :- | :- |1929| :- | :- |

1940| `permissionDecision` | `"allow"` omite el aviso de permiso, excepto para las [acciones que ningún modo aprueba automáticamente](/docs/es/permission-modes#actions-no-mode-auto-approves) y para `AskUserQuestion` y `ExitPlanMode`, que necesitan [`updatedInput` emparejado con él](#allow-with-updatedinput). `"deny"` evita la llamada de herramienta. `"ask"` solicita al usuario que confirme. `"defer"` sale correctamente para que la herramienta pueda reanudarse más tarde. Las [reglas de denegación y pregunta](/docs/es/permissions#manage-permissions) aún se evalúan independientemente de lo que devuelva el hook |1930| `permissionDecision` | `"allow"` omite el prompt de permiso, excepto para las [acciones que ningún modo auto-aprueba](/docs/es/permission-modes#actions-no-mode-auto-approves) y para `AskUserQuestion` y `ExitPlanMode`, que necesitan [`updatedInput` emparejado con él](#allow-with-updatedinput). `"deny"` evita la llamada de herramienta. `"ask"` solicita al usuario que confirme. `"defer"` sale elegantemente para que la herramienta pueda reanudarse más tarde. Las [reglas de negación y pregunta](/docs/es/permissions#manage-permissions) aún se evalúan independientemente de lo que devuelva el hook |

1941| `permissionDecisionReason` | Para `"allow"` y `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"defer"`, se ignora |1931| `permissionDecisionReason` | Para `"deny"`, se muestra a Claude. Para `"ask"`, se muestra en el prompt de permiso. Para `"allow"` y `"defer"`, se escribe en el [registro de depuración](#debug-hooks) solo |

1942| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluya campos sin cambios junto con los modificados. Claude Code evalúa reglas de permiso y la elegibilidad de [segundo plano automático](/docs/es/tools-reference#background-commands) de un comando Bash contra la entrada que devuelve su hook, no la entrada que envió Claude. Combine con `"allow"` para aprobar automáticamente, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |1932| `updatedInput` | Modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluye campos sin cambios junto con los modificados. Claude Code evalúa reglas de permiso y la [elegibilidad de segundo plano automático](/docs/es/tools-reference#background-commands) de un comando Bash contra la entrada que devuelve tu hook, no la entrada que envió Claude. Combina con `"allow"` para auto-aprobar, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |

1943| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulte [Agregar contexto para Claude](#add-context-for-claude) |1933| `additionalContext` | Cadena añadida al contexto de Claude junto con el resultado de la herramienta. Se ignora cuando `permissionDecision` es `"defer"`. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

1944 1934 

1945Cuando múltiples hooks PreToolUse devuelven decisiones diferentes, la precedencia es `deny` > `defer` > `ask` > `allow`.1935Cuando múltiples hooks PreToolUse devuelven decisiones diferentes, la precedencia es `deny` > `defer` > `ask` > `allow`.

1946 1936 

1947Un hook que bloquea saliendo con 2 se enruta de la misma manera que `"deny"`: Claude ve el mensaje stderr como la razón de la denegación.1937Un hook que bloquea saliendo con 2 se enruta de la misma manera que `"deny"`: Claude ve el mensaje stderr como la razón de la negación.

1948 1938 

1949Cuando un hook devuelve `"ask"`, el aviso de permiso mostrado al usuario incluye una etiqueta que identifica de dónde vino el hook: `[settings]` para un hook de cualquier archivo de configuración o del frontmatter del agente, `[plugin:<name>]` para el hook de un plugin, o `[skill]` para un hook del frontmatter de skill. Esto ayuda a los usuarios a entender qué fuente de configuración solicita confirmación.1939Cuando un hook devuelve `"ask"`, el prompt de permiso mostrado al usuario incluye una etiqueta que identifica de dónde vino el hook: `[settings]` para un hook de cualquier archivo de configuración o del frontmatter del agente, `[plugin:<name>]` para el hook de un plugin, o `[skill]` para un hook del frontmatter de skill. Esto ayuda a los usuarios a entender qué fuente de configuración está solicitando confirmación.

1950 1940 

1951Un `"ask"` de un hook también fuerza un aviso de permiso en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode): el clasificador aún puede denegar la llamada de herramienta, pero no puede aprobar la llamada silenciosamente. Antes de v2.1.211, el clasificador podría aprobar un comando Bash ejecutándose fuera del [sandbox](/docs/es/sandboxing) sin mostrar el aviso que solicitó el hook; el clasificador aún aplicaba sus propias reglas de seguridad a ese comando, y una denegación de hook `"deny"` siempre se honraba.1941Un `"ask"` de un hook también fuerza un prompt de permiso en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode): el clasificador aún puede negar la llamada de herramienta, pero no puede aprobar la llamada silenciosamente. Antes de v2.1.211, el clasificador podría aprobar un comando Bash ejecutándose fuera del [sandbox](/docs/es/sandboxing) sin mostrar el prompt que el hook solicitó; el clasificador aún aplicaba sus propias reglas de seguridad a ese comando, y una negación de hook siempre se honraba.

1952 1942 

1953```json theme={null}1943```json theme={null}

1954{1944{


1966 1956 

1967<span id="allow-with-updatedinput" />1957<span id="allow-with-updatedinput" />

1968 1958 

1969En [modo no interactivo](/docs/es/headless) con la bandera `-p`, Claude Code ofrece `AskUserQuestion` y `ExitPlanMode` solo cuando la ejecución tiene un [anfitrión de permiso](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) para recibir el aviso, como una devolución de llamada `canUseTool` de Agent SDK. Estas herramientas requieren interacción del usuario. Devolver `permissionDecision: "allow"` junto con `updatedInput` satisface ese requisito: el hook lee la entrada de la herramienta de stdin, recopila la respuesta a través de su propia interfaz de usuario, y la devuelve en `updatedInput` para que la herramienta se ejecute sin solicitar. Devolver `"allow"` solo no es suficiente para estas herramientas. Para `AskUserQuestion`, devuelva la matriz `questions` original y agregue un objeto [`answers`](#askuserquestion) que asigne el texto de cada pregunta a la respuesta elegida.1959En [modo no interactivo](/docs/es/headless) con la bandera `-p`, Claude Code ofrece `AskUserQuestion` y `ExitPlanMode` solo cuando la ejecución tiene un [host de permiso](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs) para recibir el prompt, como un callback `canUseTool` del Agent SDK. Estas herramientas requieren interacción del usuario. Devolver `permissionDecision: "allow"` junto con `updatedInput` satisface ese requisito: el hook lee la entrada de la herramienta de stdin, recopila la respuesta a través de tu propia UI, y la devuelve en `updatedInput` para que la herramienta se ejecute sin solicitar. Devolver `"allow"` solo no es suficiente para estas herramientas. Para `AskUserQuestion`, devuelve el array `questions` original y añade un objeto [`answers`](#askuserquestion) que mapea el texto de cada pregunta a la respuesta elegida.

1970 1960 

1971A partir de v2.1.199, una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool) es más estricta: un hook no puede omitir su aviso de aprobación con `"allow"`, con o sin `updatedInput`, porque Claude Code no puede confirmar que el hook recopiló la interacción que la herramienta necesita.1961A partir de v2.1.199, una herramienta MCP cuyo servidor la marca con [`_meta["anthropic/requiresUserInteraction"]`](/docs/es/mcp#require-approval-for-a-specific-tool) es más estricta: un hook no puede omitir su prompt de aprobación con `"allow"`, con o sin `updatedInput`, porque Claude Code no puede confirmar que el hook recopiló la interacción que la herramienta necesita.

1972 1962 

1973<Note>1963<Note>

1974 PreToolUse previamente usaba campos `decision` y `reason` de nivel superior, pero estos están deprecados para este evento. Use `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores deprecados `"approve"` y `"block"` se asignan a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop continúan usando `decision` y `reason` de nivel superior como su formato actual.1964 PreToolUse previamente usaba campos `decision` y `reason` de nivel superior, pero estos están deprecados para este evento. Usa `hookSpecificOutput.permissionDecision` y `hookSpecificOutput.permissionDecisionReason` en su lugar. Los valores deprecados `"approve"` y `"block"` se mapean a `"allow"` y `"deny"` respectivamente. Otros eventos como PostToolUse y Stop continúan usando `decision` y `reason` de nivel superior como su formato actual.

1975</Note>1965</Note>

1976 1966 

1977<h4 id="defer-a-tool-call-for-later">1967<h4 id="defer-a-tool-call-for-later">

1978 Diferir una llamada de herramienta para más tarde1968 Diferir una llamada de herramienta para más tarde

1979</h4>1969</h4>

1980 1970 

1981`"defer"` es para integraciones que ejecutan `claude -p` como un subproceso y leen su salida JSON, como una aplicación Agent SDK o una interfaz de usuario personalizada construida sobre Claude Code. Permite que ese proceso de llamada pause Claude en una llamada de herramienta, recopile entrada a través de su propia interfaz, y reanude donde se quedó. Claude Code honra este valor solo en [modo no interactivo](/docs/es/headless) con la bandera `-p`. En sesiones interactivas registra una advertencia e ignora el resultado del hook.1971`"defer"` es para integraciones que ejecutan `claude -p` como un subproceso y leen su salida JSON, como una aplicación del Agent SDK o una UI personalizada construida sobre Claude Code. Permite que ese proceso de llamada pause Claude en una llamada de herramienta, recopile entrada a través de su propia interfaz, y reanude donde se quedó. Claude Code honra este valor solo en [modo no interactivo](/docs/es/headless) con la bandera `-p`. En sesiones interactivas registra una advertencia e ignora el resultado del hook.

1982 1972 

1983La herramienta `AskUserQuestion` es el caso típico: Claude quiere hacer una pregunta al usuario, pero no hay terminal para responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [anfitrión de permiso](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasa con `--permission-prompt-tool`, así que comience la ejecución con una. El viaje de ida y vuelta funciona así:1973La herramienta `AskUserQuestion` es el caso típico: Claude quiere hacer una pregunta al usuario, pero no hay terminal para responder. Una ejecución `-p` ofrece `AskUserQuestion` solo cuando tiene un [host de permiso](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), como una herramienta MCP que pasas con `--permission-prompt-tool`, así que comienza la ejecución con una. El viaje de ida y vuelta funciona así:

1984 1974 

19851. Claude llama a `AskUserQuestion`. Se dispara el hook `PreToolUse`.19751. Claude llama a `AskUserQuestion`. Se dispara el hook `PreToolUse`.

19862. El hook devuelve `permissionDecision: "defer"`. La herramienta no se ejecuta. El proceso sale con `stop_reason: "tool_deferred"` y la llamada de herramienta pendiente preservada en la transcripción.19762. El hook devuelve `permissionDecision: "defer"`. La herramienta no se ejecuta. El proceso sale con `stop_reason: "tool_deferred"` y la llamada de herramienta pendiente preservada en la transcripción.

19873. El proceso de llamada lee `deferred_tool_use` del resultado de SDK, muestra la pregunta en su propia interfaz de usuario, y espera una respuesta.19773. El proceso de llamada lee `deferred_tool_use` del resultado del SDK, muestra la pregunta en su propia UI, y espera una respuesta.

19884. El proceso de llamada ejecuta `claude -p --resume <session-id>` con el mismo anfitrión de permiso. Se dispara la misma llamada de herramienta `PreToolUse` nuevamente.19784. El proceso de llamada ejecuta `claude -p --resume <session-id>` con el mismo host de permiso. Se dispara la misma llamada de herramienta `PreToolUse` nuevamente.

19895. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.19795. El hook devuelve `permissionDecision: "allow"` con la respuesta en `updatedInput`. La herramienta se ejecuta y Claude continúa.

1990 1980 

1991El campo `deferred_tool_use` lleva el `id`, `name`, e `input` de la herramienta. El `input` son los parámetros que Claude generó para la llamada de herramienta, capturados antes de la ejecución:1981El campo `deferred_tool_use` lleva el `id`, `name`, e `input` de la herramienta. El `input` son los parámetros que Claude generó para la llamada de herramienta, capturados antes de la ejecución:


2004}1994}

2005```1995```

2006 1996 

2007No hay límite de tiempo de espera o reintento. La sesión permanece en el disco hasta que la reanude, sujeta al barrido de retención [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), que elimina archivos de sesión después de 30 días de forma predeterminada, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically). Si la respuesta no está lista cuando reanuda, el hook puede devolver `"defer"` nuevamente y el proceso sale de la misma manera. El proceso de llamada controla cuándo romper el bucle devolviendo finalmente `"allow"` o `"deny"` del hook.1997No hay límite de tiempo de espera o reintento. La sesión permanece en el disco hasta que la reanudes, sujeta a la [limpieza de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically) de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), que elimina archivos de sesión después de 30 días por defecto, siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically). Si la respuesta no está lista cuando reanudas, el hook puede devolver `"defer"` nuevamente y el proceso sale de la misma manera. El proceso de llamada controla cuándo romper el bucle eventualmente devolviendo `"allow"` o `"deny"` del hook.

2008 1998 

2009`"defer"` solo funciona cuando Claude realiza una única llamada de herramienta en el turno. Si Claude realiza varias llamadas de herramienta a la vez, `"defer"` se ignora con una advertencia y la herramienta procede a través del flujo de permiso normal. La restricción existe porque reanudar solo puede re-ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las otras sin resolver.1999`"defer"` solo funciona cuando Claude hace una única llamada de herramienta en el turno. Si Claude hace varias llamadas de herramienta a la vez, `"defer"` se ignora con una advertencia y la herramienta procede a través del flujo de permiso normal. La restricción existe porque reanudar solo puede re-ejecutar una herramienta: no hay forma de diferir una llamada de un lote sin dejar las otras sin resolver.

2010 2000 

2011Si la herramienta diferida ya no está disponible cuando reanuda, el proceso sale con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de que se dispare el hook. Esto sucede cuando un servidor MCP que proporcionó la herramienta no está conectado para la sesión reanudada. La carga `deferred_tool_use` aún se incluye para que pueda identificar qué herramienta desapareció.2001Si la herramienta diferida ya no está disponible cuando reanudas, el proceso sale con `stop_reason: "tool_deferred_unavailable"` e `is_error: true` antes de que se dispare el hook. Esto sucede cuando un servidor MCP que proporcionó la herramienta no está conectado para la sesión reanudada. El payload `deferred_tool_use` aún se incluye para que puedas identificar qué herramienta desapareció.

2012 2002 

2013<Note>2003<Note>

2014 Para reanudar una sesión diferida en modo de plan, pase [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) junto con `--resume` para que Claude Code pueda presentar el plan para aprobación. Sin él, Claude Code no restaura el modo de plan. Requiere Claude Code v2.1.246 o posterior.2004 Para reanudar una sesión diferida en modo plan, pasa [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) junto con `--resume` para que Claude Code pueda presentar el plan para aprobación. Si pasas ciertos otros indicadores de inicio, la ejecución reanudada no vuelve al modo plan; consulta [Reanudar en modo plan con `-p`](/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.

2015 2005 

2016 Cuando reanuda con `-p`, Claude Code no restaura ningún otro modo de permiso almacenado. Comienza la ejecución en el modo de permiso que comenzaría una nueva ejecución `claude -p`, así que pase `--permission-mode` o `--dangerously-skip-permissions` nuevamente si la sesión diferida usó uno. Cuando reanuda con `claude --resume <session-id>` sin `-p`, Claude Code restaura el modo de permiso almacenado, con las excepciones enumeradas en [modo de permiso al reanudar](/docs/es/sessions#permission-mode-on-resume).2006 Cuando reanudas con `-p`, Claude Code no restaura ningún otro modo de permiso almacenado. Comienza la ejecución en el modo de permiso que comenzaría una nueva ejecución `claude -p`, así que pasa `--permission-mode` o `--dangerously-skip-permissions` nuevamente si la sesión diferida usó uno. Cuando reanudas con `claude --resume <session-id>` sin `-p`, Claude Code restaura el modo de permiso almacenado, con las excepciones enumeradas en [modo de permiso en reanudación](/docs/es/sessions#permission-mode-on-resume).

2017</Note>2007</Note>

2018 2008 

2019<h3 id="permissionrequest">2009<h3 id="permissionrequest">

2020 PermissionRequest2010 PermissionRequest

2021</h3>2011</h3>

2022 2012 

2023Se ejecuta cuando Claude Code está a punto de pedirle permiso para usar una herramienta. En sesiones que no pueden mostrar un aviso, como subagentes en segundo plano en [modo no interactivo](/docs/es/headless), Claude Code aún ejecuta estos hooks, y si ningún hook devuelve una decisión, deniega la llamada de herramienta.2013Se ejecuta cuando Claude Code está a punto de pedirte permiso para usar una herramienta. En sesiones que no pueden mostrar un prompt, como subagentes en segundo plano en [modo no interactivo](/docs/es/headless), Claude Code aún ejecuta estos hooks, y si ningún hook devuelve una decisión, niega la llamada de herramienta.

2024Use [control de decisión PermissionRequest](#permissionrequest-decision-control) para permitir o denegar en nombre del usuario.2014Usa [control de decisión PermissionRequest](#permissionrequest-decision-control) para permitir o negar en nombre del usuario.

2025 2015 

2026Use este evento cuando necesite una señal en el momento en que Claude solicita permiso para usar una herramienta. Claude Code ejecuta un hook [Notification](#notification) con el tipo `permission_prompt` solo después de que el aviso ha esperado aproximadamente seis segundos.2016Usa este evento cuando necesites una señal en el momento en que Claude solicita permiso para usar una herramienta. Claude Code ejecuta un hook [Notification](#notification) con el tipo `permission_prompt` solo después de que el prompt haya esperado aproximadamente seis segundos.

2027 2017 

2028Claude Code no ejecuta hooks PermissionRequest para la [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en sandbox. Para obtener una señal para ese aviso, use el tipo de notificación `permission_prompt`.2018Claude Code no ejecuta hooks PermissionRequest para la [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en sandbox. Para obtener una señal para ese prompt, usa el tipo de notificación `permission_prompt`.

2029 2019 

2030Coincide en el nombre de la herramienta, los mismos valores que PreToolUse.2020Coincide en nombre de herramienta, los mismos valores que PreToolUse.

2031 2021 

2032<h4 id="permissionrequest-input">2022<h4 id="permissionrequest-input">

2033 Entrada de PermissionRequest2023 Entrada de PermissionRequest

2034</h4>2024</h4>

2035 2025 

2036Los hooks PermissionRequest reciben campos `tool_name` e `tool_input` como los hooks PreToolUse, pero sin `tool_use_id`. Para una herramienta MCP, también reciben el objeto [`mcp_server`](#pretooluse-input). Una matriz `permission_suggestions` opcional contiene las [actualizaciones de permiso](#permission-update-entries) que Claude Code sugiere para esta solicitud, como agregar una regla de permiso o cambiar el modo de permiso.2026Los hooks PermissionRequest reciben campos `tool_name` y `tool_input` como los hooks PreToolUse, pero sin `tool_use_id`. Para una herramienta MCP, también reciben el objeto [`mcp_server`](#pretooluse-input). Un array `permission_suggestions` opcional contiene las [actualizaciones de permiso](#permission-update-entries) que Claude Code sugiere para esta solicitud, como añadir una regla de permiso o cambiar el modo de permiso.

2037 2027 

2038La matriz `permission_suggestions` no es una lista exacta de las opciones que ve, porque cada diálogo de permiso construye sus propias opciones. Algunos diálogos, como el de ediciones de archivo, no leen la matriz en absoluto y derivan sus opciones de la solicitud en sí. Un diálogo que sí la lee aún puede retener una opción cuya sugerencia permanece en la matriz, por ejemplo cuando [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly) oculta opciones de guardado de reglas. También puede ofrecer opciones que no tienen entrada de sugerencia, como [**Sí, y cambiar a modo automático**](/docs/es/permission-modes#switch-permission-modes), que cambia el modo de permiso directamente en lugar de a través de una actualización de permiso.2028El array `permission_suggestions` no es una lista exacta de las opciones que ves, porque cada diálogo de permiso construye sus propias opciones. Algunos diálogos, como el de ediciones de archivo, no leen el array en absoluto y derivan sus opciones de la solicitud en sí. Un diálogo que sí lo lee aún puede retener una opción cuya sugerencia permanece en el array, por ejemplo cuando [`allowManagedPermissionRulesOnly`](/docs/es/settings-reference#allowmanagedpermissionrulesonly) oculta opciones de guardado de reglas. También puede ofrecer opciones que no tienen entrada de sugerencia, como [**Sí, y cambiar a modo automático**](/docs/es/permission-modes#switch-permission-modes), que cambia el modo de permiso directamente en lugar de a través de una actualización de permiso.

2039 2029 

2040Los hooks PreToolUse se ejecutan antes de cada llamada de herramienta, independientemente de si necesita permiso. Los hooks PermissionRequest se ejecutan solo cuando Claude Code está a punto de pedirle permiso, o cuando de otro modo denegaría automáticamente una llamada que no puede solicitar. Ninguno de los dos eventos se dispara para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).2030Los hooks PreToolUse se ejecutan antes de cada llamada de herramienta, independientemente de si necesita permiso. Los hooks PermissionRequest se ejecutan solo cuando Claude Code está a punto de pedirte permiso, o cuando de otro modo auto-negaría una llamada que no puede solicitar. Ninguno de los dos eventos se dispara para [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior).

2041 2031 

2042```json theme={null}2032```json theme={null}

2043{2033{


2066 Control de decisión de PermissionRequest2056 Control de decisión de PermissionRequest

2067</h4>2057</h4>

2068 2058 

2069Los hooks `PermissionRequest` pueden permitir o denegar solicitudes de permiso. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver un objeto `decision` con estos campos específicos del evento:2059Los hooks `PermissionRequest` pueden permitir o negar solicitudes de permiso. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver un objeto `decision` con estos campos específicos del evento:

2070 2060 

2071| Campo | Descripción |2061| Campo | Descripción |

2072| :- | :- |2062| :- | :- |

2073| `behavior` | `"allow"` otorga el permiso, `"deny"` lo deniega. Las [reglas de denegación y pregunta](/docs/es/permissions#manage-permissions) aún se evalúan, por lo que un hook que devuelve `"allow"` no anula una regla de denegación coincidente |2063| `behavior` | `"allow"` otorga el permiso, `"deny"` lo niega. Las [reglas de negación y pregunta](/docs/es/permissions#manage-permissions) aún se evalúan, por lo que un hook que devuelve `"allow"` no anula una regla de negación coincidente |

2074| `updatedInput` | Solo para `"allow"`: modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluya campos sin cambios junto con los modificados. La entrada modificada se re-evalúa contra reglas de denegación y pregunta |2064| `updatedInput` | Solo para `"allow"`: modifica los parámetros de entrada de la herramienta antes de la ejecución. Reemplaza el objeto de entrada completo, así que incluye campos sin cambios junto con los modificados. La entrada modificada se re-evalúa contra reglas de negación y pregunta |

2075| `updatedPermissions` | Solo para `"allow"`: matriz de [entradas de actualización de permiso](#permission-update-entries) a aplicar, como agregar una regla de permiso o cambiar el modo de permiso de la sesión |2065| `updatedPermissions` | Solo para `"allow"`: array de [entradas de actualización de permiso](#permission-update-entries) a aplicar, como añadir una regla de permiso o cambiar el modo de permiso de la sesión |

2076| `message` | Solo para `"deny"`: dice a Claude por qué se denegó el permiso |2066| `message` | Solo para `"deny"`: dice a Claude por qué se negó el permiso |

2077| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |2067| `interrupt` | Solo para `"deny"`: si es `true`, detiene a Claude |

2078 2068 

2079Un hook que sale con 2 sin un objeto `decision` deja el flujo de permiso sin cambios, y su stderr se descarta. Solo el objeto `decision` puede otorgar o denegar la solicitud.2069Un hook que sale con 2 sin un objeto `decision` deja el flujo de permiso sin cambios, y su stderr se descarta. Solo el objeto `decision` puede otorgar o negar la solicitud.

2080 2070 

2081```json theme={null}2071```json theme={null}

2082{2072{


2096 Entradas de actualización de permiso2086 Entradas de actualización de permiso

2097</h4>2087</h4>

2098 2088 

2099El campo de salida `updatedPermissions` y el campo de entrada [`permission_suggestions`](#permissionrequest-input) ambos usan la misma matriz de objetos de entrada. Cada entrada tiene un `type` que determina sus otros campos, y un `destination` que controla dónde se escribe el cambio.2089El campo de salida `updatedPermissions` y el campo de entrada [`permission_suggestions`](#permissionrequest-input) ambos usan el mismo array de objetos de entrada. Cada entrada tiene un `type` que determina sus otros campos, y un `destination` que controla dónde se escribe el cambio.

2100 2090 

2101| `type` | Campos | Efecto |2091| `type` | Campos | Efecto |

2102| :- | :- | :- |2092| :- | :- | :- |

2103| `addRules` | `rules`, `behavior`, `destination` | Agrega reglas de permiso. `rules` es una matriz de objetos `{toolName, ruleContent?}`. Omita `ruleContent` para hacer coincidir toda la herramienta. `behavior` es `"allow"`, `"deny"`, o `"ask"` |2093| `addRules` | `rules`, `behavior`, `destination` | Añade reglas de permiso. `rules` es un array de objetos `{toolName, ruleContent?}`. Omite `ruleContent` para coincidir con toda la herramienta. `behavior` es `"allow"`, `"deny"`, o `"ask"` |

2104| `replaceRules` | `rules`, `behavior`, `destination` | Reemplaza todas las reglas del `behavior` dado en el `destination` con las `rules` proporcionadas |2094| `replaceRules` | `rules`, `behavior`, `destination` | Reemplaza todas las reglas del `behavior` dado en el `destination` con las `rules` proporcionadas |

2105| `removeRules` | `rules`, `behavior`, `destination` | Elimina reglas coincidentes del `behavior` dado |2095| `removeRules` | `rules`, `behavior`, `destination` | Elimina reglas coincidentes del `behavior` dado |

2106| `setMode` | `mode`, `destination` | Cambia el modo de permiso. Los modos válidos son `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, y `manual` como alias para `default`. El alias `manual` requiere Claude Code v2.1.200 o posterior |2096| `setMode` | `mode`, `destination` | Cambia el modo de permiso. Los modos válidos son `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan`, y `manual` como alias para `default`. El alias `manual` requiere Claude Code v2.1.200 o posterior |

2107| `addDirectories` | `directories`, `destination` | Agrega directorios de trabajo. `directories` es una matriz de cadenas de ruta |2097| `addDirectories` | `directories`, `destination` | Añade directorios de trabajo. `directories` es un array de cadenas de ruta |

2108| `removeDirectories` | `directories`, `destination` | Elimina directorios de trabajo |2098| `removeDirectories` | `directories`, `destination` | Elimina directorios de trabajo |

2109 2099 

2110<Note>2100<Note>

2111 `setMode` con `bypassPermissions` solo toma efecto si inició la sesión con modo de bypass ya disponible: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, o `permissions.defaultMode: "bypassPermissions"` en [configuración de usuario, `--settings`, o configuración administrada](/docs/es/settings-reference#permissions-defaultmode). De lo contrario, la actualización es una no-op. La actualización también es una no-op cuando [`permissions.disableBypassPermissionsMode`](/docs/es/permissions#managed-settings) deshabilita el modo, o cuando la sesión comienza en [modo restringido](/docs/es/cli-reference#cli-flags).2101 `setMode` con `bypassPermissions` solo toma efecto si iniciaste la sesión con modo bypass ya disponible: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions`, o `permissions.defaultMode: "bypassPermissions"` en [configuración de usuario, `--settings`, o configuración gestionada](/docs/es/settings-reference#permissions-defaultmode). De lo contrario, la actualización es una no-op. La actualización también es una no-op cuando [`permissions.disableBypassPermissionsMode`](/docs/es/permissions#managed-settings) deshabilita el modo, o cuando la sesión comienza en [modo restringido](/docs/es/cli-reference#cli-flags).

2112 2102 

2113 `bypassPermissions` nunca se persiste como `defaultMode` independientemente de `destination`.2103 `bypassPermissions` nunca se persiste como `defaultMode` independientemente de `destination`.

2114</Note>2104</Note>


2130 2120 

2131Se ejecuta inmediatamente después de que una herramienta se completa exitosamente.2121Se ejecuta inmediatamente después de que una herramienta se completa exitosamente.

2132 2122 

2133Coincide en el nombre de la herramienta, los mismos valores que PreToolUse.2123Coincide en nombre de herramienta, los mismos valores que PreToolUse.

2134 2124 

2135Coincida más ampliamente cuando el nombre de la herramienta no es el filtro correcto:2125Coincide más ampliamente cuando el nombre de la herramienta no es el filtro correcto:

2136 2126 

2137* Para ejecutar un hook después de que cualquier herramienta se complete exitosamente, omita el `matcher` o establézcalo en `"*"`. Su hook puede entonces descubrir qué cambió por sí mismo, por ejemplo ejecutando `git status --porcelain`, que también enumera archivos sin seguimiento que `git diff` pierde. Para llamadas de herramienta que fallan, agregue el mismo hook bajo [PostToolUseFailure](#posttoolusefailure).2127* Para ejecutar un hook después de que cualquier herramienta se complete exitosamente, omite el `matcher` o establécelo en `"*"`. Tu hook puede entonces descubrir qué cambió por sí mismo, por ejemplo ejecutando `git status --porcelain`, que también enumera archivos sin seguimiento que `git diff` pierde. Para llamadas de herramienta que fallan, añade el mismo hook bajo [PostToolUseFailure](#posttoolusefailure).

2138* Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, use [FileChanged](#filechanged). Claude Code no ejecuta un hook `PostToolUse` que coincida con `Edit|Write` cuando un comando `Bash` o un proceso fuera de Claude Code reescribe el mismo archivo.2128* Para ejecutar un hook cuando un archivo específico cambia en el disco, sin importar qué lo escribió, usa [FileChanged](#filechanged). Claude Code no ejecuta un hook `PostToolUse` que coincida con `Edit|Write` cuando un comando `Bash` o un proceso fuera de Claude Code reescribe el mismo archivo.

2139 2129 

2140<h4 id="posttooluse-input">2130<h4 id="posttooluse-input">

2141 Entrada de PostToolUse2131 Entrada de PostToolUse

2142</h4>2132</h4>

2143 2133 

2144Los hooks `PostToolUse` se disparan después de que una herramienta ya se ha ejecutado exitosamente. La entrada incluye tanto `tool_input`, los argumentos enviados a la herramienta, como `tool_response`, el resultado que devolvió. El esquema exacto para ambos depende de la herramienta. Las rutas de herramienta de archivo `tool_input` llegan en el mismo formato que para [PreToolUse](#pretooluse-input): siempre absoluto, con los separadores nativos de la plataforma, así que barras invertidas en Windows. Para una herramienta MCP, la entrada también lleva el objeto [`mcp_server`](#pretooluse-input).2134Los hooks `PostToolUse` se disparan después de que una herramienta ya se ha ejecutado exitosamente. La entrada incluye tanto `tool_input`, los argumentos enviados a la herramienta, como `tool_response`, el resultado que devolvió. El esquema exacto para ambos depende de la herramienta. Las rutas de `tool_input` de herramienta de archivo llegan en el mismo formato que para [PreToolUse](#pretooluse-input): siempre absoluto, con los separadores nativos de la plataforma, así que barras invertidas en Windows. Para una herramienta MCP, la entrada también lleva el objeto [`mcp_server`](#pretooluse-input).

2145 2135 

2146```json theme={null}2136```json theme={null}

2147{2137{


2166 2156 

2167| Campo | Descripción |2157| Campo | Descripción |

2168| :- | :- |2158| :- | :- |

2169| `duration_ms` | Opcional. Tiempo de ejecución de la herramienta en milisegundos. Excluye el tiempo dedicado a avisos de permiso y hooks PreToolUse |2159| `duration_ms` | Opcional. Tiempo de ejecución de la herramienta en milisegundos. Excluye tiempo gastado en prompts de permiso y hooks PreToolUse |

2170 2160 

2171<h4 id="posttooluse-decision-control">2161<h4 id="posttooluse-decision-control">

2172 Control de decisión de PostToolUse2162 Control de decisión de PostToolUse

2173</h4>2163</h4>

2174 2164 

2175Los hooks `PostToolUse` pueden proporcionar retroalimentación a Claude después de la ejecución de la herramienta. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver estos campos específicos del evento:2165Los hooks `PostToolUse` pueden proporcionar retroalimentación a Claude después de la ejecución de la herramienta. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver estos campos específicos del evento:

2176 2166 

2177| Campo | Descripción |2167| Campo | Descripción |

2178| :- | :- |2168| :- | :- |

2179| `decision` | `"block"` agrega el `reason` junto al resultado de la herramienta. Claude aún ve la salida original; para reemplazarla, use `updatedToolOutput` |2169| `decision` | `"block"` añade el `reason` junto al resultado de la herramienta. Claude aún ve la salida original; para reemplazarla, usa `updatedToolOutput` |

2180| `reason` | Explicación mostrada a Claude cuando `decision` es `"block"` |2170| `reason` | Explicación mostrada a Claude cuando `decision` es `"block"` |

2181| `additionalContext` | Cadena agregada al contexto de Claude junto con el resultado de la herramienta. Consulte [Agregar contexto para Claude](#add-context-for-claude) |2171| `additionalContext` | Cadena añadida al contexto de Claude junto con el resultado de la herramienta. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

2182| `classifierContext` | Nota breve sobre el resultado de esta llamada para el clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de para Claude. Consulte [Anotar un resultado para el clasificador de modo automático](#annotate-a-result-for-the-auto-mode-classifier). Requiere Claude Code v2.1.236 o posterior |2172| `classifierContext` | Nota breve sobre el resultado de esta llamada para el clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de para Claude. Consulta [Anotar un resultado para el clasificador de modo automático](#annotate-a-result-for-the-auto-mode-classifier). Requiere Claude Code v2.1.236 o posterior |

2183| `updatedToolOutput` | Reemplaza la salida de la herramienta con el valor proporcionado antes de que se envíe a Claude. El valor debe coincidir con la forma de salida de la herramienta |2173| `updatedToolOutput` | Reemplaza la salida de la herramienta con el valor proporcionado antes de que se envíe a Claude. El valor debe coincidir con la forma de salida de la herramienta |

2184| `updatedMCPToolOutput` | Reemplaza la salida solo para [herramientas MCP](#match-mcp-tools). Prefiera `updatedToolOutput`, que funciona para todas las herramientas |2174| `updatedMCPToolOutput` | Reemplaza la salida solo para [herramientas MCP](#match-mcp-tools). Prefiere `updatedToolOutput`, que funciona para todas las herramientas |

2185 2175 

2186El ejemplo a continuación reemplaza la salida de una llamada `Bash`. El valor de reemplazo coincide con la forma de salida de la herramienta `Bash`:2176El ejemplo a continuación reemplaza la salida de una llamada `Bash`. El valor de reemplazo coincide con la forma de salida de la herramienta `Bash`:

2187 2177 


2201```2191```

2202 2192 

2203<Warning>2193<Warning>

2204 `updatedToolOutput` solo cambia lo que Claude ve. La herramienta ya se ha ejecutado en el momento en que se dispara el hook, por lo que cualquier archivo escrito, comando ejecutado o solicitud de red enviada ya ha tenido efecto. La telemetría como tramos de herramientas OpenTelemetry y eventos de análisis también captura la salida original antes de que se ejecute el hook. Para evitar o modificar una llamada de herramienta antes de que se ejecute, use un hook [PreToolUse](#pretooluse) en su lugar.2194 `updatedToolOutput` solo cambia lo que Claude ve. La herramienta ya se ha ejecutado en el momento en que se dispara el hook, por lo que cualquier archivo escrito, comando ejecutado o solicitud de red enviada ya ha tenido efecto. La telemetría como tramos de herramientas OpenTelemetry y eventos de análisis también captura la salida original antes de que se ejecute el hook. Para evitar o modificar una llamada de herramienta antes de que se ejecute, usa un hook [PreToolUse](#pretooluse) en su lugar.

2205 2195 

2206 El valor de reemplazo debe coincidir con la forma de salida de la herramienta. Las herramientas integradas devuelven objetos estructurados en lugar de cadenas simples. Por ejemplo, `Bash` devuelve un objeto con campos `stdout`, `stderr`, `interrupted`, e `isImage`. Para herramientas integradas, un valor que no coincida con el esquema de salida de la herramienta se ignora y se usa la salida original. La salida de herramientas MCP se pasa sin validación de esquema. Eliminar detalles de error que Claude necesita puede hacer que continúe con una suposición falsa.2196 El valor de reemplazo debe coincidir con la forma de salida de la herramienta. Las herramientas integradas devuelven objetos estructurados en lugar de cadenas simples. Por ejemplo, `Bash` devuelve un objeto con campos `stdout`, `stderr`, `interrupted`, e `isImage`. Para herramientas integradas, un valor que no coincida con el esquema de salida de la herramienta se ignora y se usa la salida original. La salida de herramientas MCP se pasa sin validación de esquema. Eliminar detalles de error que Claude necesita puede hacer que continúe con una suposición falsa.

2207</Warning>2197</Warning>


2210 Anotar un resultado para el clasificador de modo automático2200 Anotar un resultado para el clasificador de modo automático

2211</h4>2201</h4>

2212 2202 

2213Devuelva `classifierContext` para enviar una nota breve sobre el resultado de la llamada de herramienta al clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de a Claude. El clasificador [nunca recibe resultados de herramientas en sí](/docs/es/permission-modes#how-the-classifier-evaluates-actions), por lo que este campo es la forma admitida de decirle algo sobre lo que devolvió una llamada antes de que revise acciones posteriores. El campo requiere Claude Code v2.1.236 o posterior.2203Devuelve `classifierContext` para enviar una nota breve sobre el resultado de la llamada de herramienta al clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en lugar de a Claude. El clasificador [nunca recibe resultados de herramientas en sí](/docs/es/permission-modes#how-the-classifier-evaluates-actions), por lo que este campo es la forma soportada de decirle algo sobre lo que devolvió una llamada antes de que revise acciones posteriores. El campo requiere Claude Code v2.1.236 o posterior.

2214 2204 

2215El ejemplo a continuación dice al clasificador de dónde vino la salida de una consulta:2205El ejemplo a continuación dice al clasificador de dónde vino la salida de una consulta:

2216 2206 


2223}2213}

2224```2214```

2225 2215 

2226Cuánto peso da el clasificador a la nota depende de dónde configuró el hook:2216Cuánto peso da el clasificador a la nota depende de dónde configuraste el hook:

2227 2217 

2228* **Hooks configurados en Claude Code**: para hooks de archivos de configuración, plugins, skills y frontmatter del agente, el clasificador trata la nota como contexto no verificado proporcionado por la aplicación. La nota nunca establece la intención del usuario, y si afirma que aprobó o solicitó algo, el clasificador verifica esa afirmación contra sus propios mensajes en la conversación2218* **Hooks configurados en Claude Code**: para hooks de archivos de configuración, plugins, skills y frontmatter del agente, el clasificador trata la nota como contexto no verificado proporcionado por la aplicación. La nota nunca establece intención del usuario, y si afirma que aprobaste o solicitaste algo, el clasificador verifica esa afirmación contra tus propios mensajes en la conversación

2229* **Devoluciones de llamada de Agent SDK en proceso**: cuando una aplicación que integra Claude Code registra el hook como una [devolución de llamada de SDK de TypeScript](/docs/es/agent-sdk/hooks) y devuelve la nota durante la sesión en vivo, el clasificador puede pesar una declaración del usuario retransmitida en la nota como intención del usuario. Tal declaración puede satisfacer un requisito de consentimiento que el clasificador aceptaría de un mensaje que envía, pero nunca levanta un bloqueo que su propio mensaje tampoco podría levantar. Después de que se reanuda una sesión, Claude Code trata las notas restauradas como contexto no verificado. Cuando hooks de ambos grupos anotan la misma llamada, el clasificador trata la nota combinada como contexto no verificado2219* **Callbacks del Agent SDK en proceso**: cuando una aplicación que integra Claude Code registra el hook como un [callback del SDK de TypeScript](/docs/es/agent-sdk/hooks) y devuelve la nota durante la sesión en vivo, el clasificador puede pesar una declaración del usuario retransmitida en la nota como intención del usuario. Tal declaración puede satisfacer un requisito de consentimiento que el clasificador aceptaría de un mensaje que envíes, pero nunca levanta un bloqueo que tu propio mensaje tampoco pudiera levantar. Después de que se reanuda una sesión, Claude Code trata las notas restauradas como contexto no verificado. Cuando hooks de ambos grupos anotan la misma llamada, el clasificador trata la nota combinada como no verificada

2230 2220 

2231Claude Code aplica estos límites al entregar la nota:2221Claude Code aplica estos límites al entregar la nota:

2232 2222 

2233* **Longitud**: Claude Code limita las notas para una llamada de herramienta a 2,000 caracteres y trunca el resto. El límite se comparte en cada hook que responde a esa llamada2223* **Longitud**: Claude Code limita las notas para una llamada de herramienta a 2,000 caracteres y trunca el resto. El límite se comparte en cada hook que responde a esa llamada

2234* **Solo respuestas sincrónicas**: Claude Code ignora el campo en la respuesta de un hook que [se ejecuta en segundo plano](#run-hooks-in-the-background), porque esa respuesta llega después de que Claude Code registra el resultado de la herramienta2224* **Solo respuestas sincrónicas**: Claude Code ignora el campo en la respuesta de un hook que [se ejecuta en segundo plano](#run-hooks-in-the-background), porque esa respuesta llega después de que Claude Code registra el resultado de la herramienta

2235* **Llamadas que el clasificador no registra**: la transcripción del clasificador omite búsquedas de solo lectura como lecturas de archivo y búsquedas. Claude Code descarta una nota adjunta a una de esas llamadas2225* **Llamadas que el clasificador no registra**: la transcripción del clasificador omite búsquedas de solo lectura como lecturas de archivo y búsquedas. Claude Code descarta una nota adjunta a una de esas llamadas

2236* **Interacción con reescrituras**: cuando la nota describe salida que está reemplazando con `updatedToolOutput`, devuelva ambos campos en la misma respuesta del hook. Claude Code descarta la nota si esa reescritura se rechaza u otro hook la reemplaza. Claude Code entrega una nota que devuelve sin una reescritura incluso cuando otro hook reescribe la salida2226* **Interacción con reescrituras**: cuando la nota describe salida que estás reemplazando con `updatedToolOutput`, devuelve ambos campos en la misma respuesta del hook. Claude Code descarta la nota si esa reescritura se rechaza u otro hook la reemplaza. Claude Code entrega una nota que devuelves sin una reescritura incluso cuando otro hook reescribe la salida

2237 2227 

2238<Warning>2228<Warning>

2239 El clasificador lee el contenido que coloca en `classifierContext` como información del anfitrión de la aplicación de la sesión, así que no copie salida de herramienta no confiable o texto de terceros en él. Mantenga la nota a una afirmación breve sobre esta única llamada, como un hecho sobre su origen o una declaración del usuario sobre ella; no use el campo para entregar mensajes no relacionados o un flujo de eventos.2229 El clasificador lee contenido que colocas en `classifierContext` como información del anfitrión de la aplicación de la sesión, así que no copies salida de herramientas no confiables o texto de terceros en él. Mantén la nota a una afirmación breve sobre esta única llamada, como un hecho sobre su origen o una declaración del usuario sobre ella; no uses el campo para entregar mensajes no relacionados o un flujo de eventos.

2240</Warning>2230</Warning>

2241 2231 

2242<h3 id="posttoolusefailure">2232<h3 id="posttoolusefailure">

2243 PostToolUseFailure2233 PostToolUseFailure

2244</h3>2234</h3>

2245 2235 

2246Se ejecuta cuando una herramienta que comenzó a ejecutarse falla: la herramienta lanzó un error, o una herramienta MCP devolvió un resultado de error. Úselo para registrar fallas, enviar alertas o proporcionar retroalimentación correctiva a Claude.2236Se ejecuta cuando una herramienta que comenzó a ejecutarse falla: la herramienta lanzó un error, o una herramienta MCP devolvió un resultado de error. Úsalo para registrar fallos, enviar alertas o proporcionar retroalimentación correctiva a Claude.

2247 2237 

2248Coincide en el nombre de la herramienta, los mismos valores que PreToolUse.2238Coincide en nombre de herramienta, los mismos valores que PreToolUse.

2249 2239 

2250<Note>2240<Note>

2251 Este evento no se dispara para llamadas de herramienta rechazadas antes de la ejecución: un nombre de herramienta desconocido, entrada que falla en validación de esquema o específica de herramienta, o una denegación de permiso. Los rechazos de validación se devuelven como resultados `tool_use_error` y ocurren antes de que se ejecuten los hooks, por lo que no disparan ni `PreToolUse` ni `PostToolUseFailure`. Las denegaciones de permiso disparan `PreToolUse` pero no este evento; consulte [PermissionDenied](#permissiondenied).2241 Este evento no se dispara para llamadas de herramienta rechazadas antes de la ejecución: un nombre de herramienta desconocido, entrada que falla en validación de esquema o específica de herramienta, o una negación de permiso. Los rechazos de validación se devuelven como resultados `tool_use_error` y ocurren antes de que se ejecuten los hooks, por lo que no disparan ni `PreToolUse` ni `PostToolUseFailure`. Las negaciones de permiso disparan `PreToolUse` pero no este evento; consulta [PermissionDenied](#permissiondenied).

2252</Note>2242</Note>

2253 2243 

2254<h4 id="posttoolusefailure-input">2244<h4 id="posttoolusefailure-input">

2255 Entrada de PostToolUseFailure2245 Entrada de PostToolUseFailure

2256</h4>2246</h4>

2257 2247 

2258Los hooks PostToolUseFailure reciben los mismos campos `tool_name` e `tool_input` que PostToolUse, junto con información de error como campos de nivel superior. Para una herramienta MCP, también reciben el objeto [`mcp_server`](#pretooluse-input). Por ejemplo, un comando `npm test` fallido podría entregar:2248Los hooks PostToolUseFailure reciben los mismos campos `tool_name` y `tool_input` que PostToolUse, junto con información de error como campos de nivel superior. Para una herramienta MCP, también reciben el objeto [`mcp_server`](#pretooluse-input). Por ejemplo, un comando `npm test` fallido podría entregar:

2259 2249 

2260```json theme={null}2250```json theme={null}

2261{2251{


2280| :- | :- |2270| :- | :- |

2281| `error` | Cadena que describe qué salió mal. El formato depende de la herramienta que falló |2271| `error` | Cadena que describe qué salió mal. El formato depende de la herramienta que falló |

2282| `is_interrupt` | Booleano opcional. Verdadero cuando el fallo llegó a Claude Code como una interrupción en lugar de como un error que reportó la herramienta. Cancelar una herramienta en ejecución no dispara este hook; el resultado de la herramienta lleva el mensaje de interrupción en su lugar |2272| `is_interrupt` | Booleano opcional. Verdadero cuando el fallo llegó a Claude Code como una interrupción en lugar de como un error que reportó la herramienta. Cancelar una herramienta en ejecución no dispara este hook; el resultado de la herramienta lleva el mensaje de interrupción en su lugar |

2283| `duration_ms` | Opcional. Tiempo de ejecución de la herramienta en milisegundos. Excluye el tiempo dedicado a avisos de permiso y hooks PreToolUse |2273| `duration_ms` | Opcional. Tiempo de ejecución de la herramienta en milisegundos. Excluye tiempo gastado en prompts de permiso y hooks PreToolUse |

2284 2274 

2285La cadena `error` es generalmente el mismo texto que Claude recibe como resultado fallido de la herramienta. Su formato varía según la herramienta y el fallo. Clave su hook en `tool_name`, `is_interrupt`, y la primera línea `Exit code N`; trate el resto de la cadena como texto de visualización, no como un formato estable.2275La cadena `error` es generalmente el mismo texto que Claude recibe como resultado de la herramienta fallida. Su formato varía según la herramienta y el fallo. Clave tu hook en `tool_name`, `is_interrupt`, y la primera línea `Exit code N`; trata el resto de la cadena como texto de visualización, no como un formato estable.

2286 2276 

2287* Para Bash y PowerShell, un comando que se ejecutó y salió produce una primera línea `Exit code N`, luego cualquier salida que el comando produjo como un bloque con stdout y stderr intercalados2277* Para Bash y PowerShell, un comando que se ejecutó y salió produce una primera línea `Exit code N`, luego cualquier salida que el comando produjo como un bloque con stdout y stderr intercalados

2288* Una carga también puede llevar un mensaje de fallo desnudo sin línea de código de salida, cuando Claude Code no pudo iniciar el proceso de shell en sí2278* Un payload también puede llevar un mensaje de fallo desnudo sin línea de código de salida, cuando Claude Code no pudo iniciar el proceso de shell en sí

2289* Claude Code trunca a mitad de cadenas largas alrededor de un marcador `... [N characters truncated] ...`, e puede insertar líneas propias, como `Command timed out after 2m 0s`2279* Claude Code trunca a mitad de cadenas largas alrededor de un marcador `... [N characters truncated] ...`, e puede insertar líneas propias, como `Command timed out after 2m 0s`

2290 2280 

2291<h4 id="posttoolusefailure-decision-control">2281<h4 id="posttoolusefailure-decision-control">

2292 Control de decisión de PostToolUseFailure2282 Control de decisión de PostToolUseFailure

2293</h4>2283</h4>

2294 2284 

2295Los hooks `PostToolUseFailure` pueden proporcionar contexto a Claude después de un fallo de herramienta. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver estos campos específicos del evento:2285Los hooks `PostToolUseFailure` pueden proporcionar contexto a Claude después de un fallo de herramienta. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver estos campos específicos del evento:

2296 2286 

2297| Campo | Descripción |2287| Campo | Descripción |

2298| :- | :- |2288| :- | :- |

2299| `additionalContext` | Cadena agregada al contexto de Claude junto con el error. Consulte [Agregar contexto para Claude](#add-context-for-claude) |2289| `additionalContext` | Cadena añadida al contexto de Claude junto con el error. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

2300 2290 

2301```json theme={null}2291```json theme={null}

2302{2292{


2311 PostToolBatch2301 PostToolBatch

2312</h3>2302</h3>

2313 2303 

2314Se ejecuta una vez después de que cada llamada de herramienta en un lote se haya resuelto, antes de que Claude Code envíe la siguiente solicitud al modelo. `PostToolUse` se dispara una vez por herramienta, lo que significa que se dispara simultáneamente cuando Claude realiza llamadas de herramienta paralelas. `PostToolBatch` se dispara exactamente una vez con el lote completo, por lo que es el lugar correcto para inyectar contexto que dependa del conjunto de herramientas que se ejecutaron en lugar de en cualquier herramienta única. No hay matcher para este evento.2304Se ejecuta una vez después de que cada llamada de herramienta en un lote se haya resuelto, antes de que Claude Code envíe la siguiente solicitud al modelo. `PostToolUse` se dispara una vez por herramienta, lo que significa que se dispara concurrentemente cuando Claude hace llamadas de herramienta paralelas. `PostToolBatch` se dispara exactamente una vez con el lote completo, por lo que es el lugar correcto para inyectar contexto que dependa del conjunto de herramientas que se ejecutaron en lugar de en cualquier herramienta única. No hay matcher para este evento.

2315 2305 

2316<h4 id="posttoolbatch-input">2306<h4 id="posttoolbatch-input">

2317 Entrada de PostToolBatch2307 Entrada de PostToolBatch

2318</h4>2308</h4>

2319 2309 

2320Además de los [campos de entrada comunes](#common-input-fields), los hooks PostToolBatch reciben `tool_calls`, una matriz que describe cada llamada de herramienta en el lote:2310Además de los [campos de entrada comunes](#common-input-fields), los hooks PostToolBatch reciben `tool_calls`, un array que describe cada llamada de herramienta en el lote:

2321 2311 

2322```json theme={null}2312```json theme={null}

2323{2313{


2331 "tool_name": "Read",2321 "tool_name": "Read",

2332 "tool_input": {"file_path": "/.../ledger/accounts.py"},2322 "tool_input": {"file_path": "/.../ledger/accounts.py"},

2333 "tool_use_id": "toolu_01...",2323 "tool_use_id": "toolu_01...",

2334 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."2324 "tool_response": "1\tfrom __future__ import annotations\n2\t..."

2335 },2325 },

2336 {2326 {

2337 "tool_name": "Read",2327 "tool_name": "Read",

2338 "tool_input": {"file_path": "/.../ledger/transactions.py"},2328 "tool_input": {"file_path": "/.../ledger/transactions.py"},

2339 "tool_use_id": "toolu_02...",2329 "tool_use_id": "toolu_02...",

2340 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."2330 "tool_response": "1\tfrom __future__ import annotations\n2\t..."

2341 }2331 }

2342 ]2332 ]

2343}2333}

2344```2334```

2345 2335 

2346`tool_response` contiene el mismo contenido que el modelo recibe en el bloque `tool_result` correspondiente. El valor es una cadena serializada o matriz de bloques de contenido, exactamente como lo emitió la herramienta. Para `Read`, eso significa texto con prefijo de número de línea en lugar de contenidos de archivo sin procesar. Las respuestas pueden ser grandes, así que analice solo los campos que necesita.2336`tool_response` contiene el mismo contenido que el modelo recibe en el bloque `tool_result` correspondiente. El valor es una cadena serializada o array de bloque de contenido, exactamente como lo emitió la herramienta. Las respuestas pueden ser grandes, así que analiza solo los campos que necesitas.

2347 2337 

2348<Note>2338<Note>

2349 La forma `tool_response` difiere de la de `PostToolUse`. `PostToolUse` pasa el objeto `Output` estructurado de la herramienta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` pasa el contenido `tool_result` serializado que ve el modelo.2339 La forma `tool_response` difiere de la de `PostToolUse`. `PostToolUse` pasa el objeto `Output` estructurado de la herramienta, como `{filePath: "...", type: "create"}` para `Write`; `PostToolBatch` pasa el contenido `tool_result` serializado que el modelo ve.

2350</Note>2340</Note>

2351 2341 

2352<h4 id="posttoolbatch-decision-control">2342<h4 id="posttoolbatch-decision-control">

2353 Control de decisión de PostToolBatch2343 Control de decisión de PostToolBatch

2354</h4>2344</h4>

2355 2345 

2356Los hooks `PostToolBatch` pueden inyectar contexto para Claude. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver estos campos específicos del evento:2346Los hooks `PostToolBatch` pueden inyectar contexto para Claude. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver estos campos específicos del evento:

2357 2347 

2358| Campo | Descripción |2348| Campo | Descripción |

2359| :- | :- |2349| :- | :- |

2360| `additionalContext` | Cadena de contexto inyectada una vez antes de la siguiente llamada del modelo. Consulte [Agregar contexto para Claude](#add-context-for-claude) para detalles de entrega, qué poner en él y cómo las sesiones reanudadas manejan valores pasados |2350| `additionalContext` | Cadena de contexto inyectada una vez antes de la siguiente llamada del modelo. Consulta [Añadir contexto para Claude](#add-context-for-claude) para detalles de entrega, qué poner en él, y cómo las sesiones reanudadas manejan valores pasados |

2361 2351 

2362```json theme={null}2352```json theme={null}

2363{2353{


2368}2358}

2369```2359```

2370 2360 

2371Devolver `decision: "block"` o `continue: false` detiene el bucle agéntico antes de la siguiente llamada del modelo. El mensaje de bloqueo viene del JSON `reason` o `stopReason`, o de stderr en salida 2. Lo ve como una advertencia en la transcripción, y permanece en la conversación, por lo que Claude lo ve cuando la conversación continúa.2361Devolver `decision: "block"` o `continue: false` detiene el bucle agéntico antes de la siguiente llamada del modelo. El mensaje de bloqueo viene del JSON `reason` o `stopReason`, o de stderr en salida 2. Lo ves como una advertencia en la transcripción, y permanece en la conversación, por lo que Claude lo ve cuando la conversación continúa.

2372 2362 

2373<h3 id="permissiondenied">2363<h3 id="permissiondenied">

2374 PermissionDenied2364 PermissionDenied

2375</h3>2365</h3>

2376 2366 

2377Se ejecuta cuando [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) deniega una llamada de herramienta, incluido cuando deniega sin un veredicto del clasificador porque [una verificación de seguridad separada del modo automático rechazó la propia solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) o su respuesta no se analizó. Este hook solo se dispara en modo automático: no se ejecuta cuando deniega manualmente un diálogo de permiso, cuando un hook `PreToolUse` bloquea una llamada, o cuando una regla `deny` coincide. Úselo para registrar denegaciones, ajustar configuración o decirle al modelo que puede reintentar la llamada de herramienta.2367Se ejecuta cuando [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) niega una llamada de herramienta, incluyendo cuando niega sin un veredicto del clasificador porque [una verificación de seguridad separada del modo automático rechazó la propia solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action) o su respuesta no se analizó. Este hook solo se dispara en modo automático: no se ejecuta cuando niegas manualmente un diálogo de permiso, cuando un hook `PreToolUse` bloquea una llamada, o cuando una regla `deny` coincide. Úsalo para registrar negaciones, ajustar configuración o decirle al modelo que puede reintentar la llamada de herramienta.

2378 2368 

2379Coincide en el nombre de la herramienta, los mismos valores que PreToolUse.2369Coincide en nombre de herramienta, los mismos valores que PreToolUse.

2380 2370 

2381<h4 id="permissiondenied-input">2371<h4 id="permissiondenied-input">

2382 Entrada de PermissionDenied2372 Entrada de PermissionDenied


2403 2393 

2404| Campo | Descripción |2394| Campo | Descripción |

2405| :- | :- |2395| :- | :- |

2406| `reason` | La razón de la denegación. Para un veredicto del clasificador, en la mayoría de sesiones nombra la regla coincidente entre corchetes, como `[Data Exfiltration]`; consulte [Revisar denegaciones](/docs/es/auto-mode-config#review-denials) para las otras formas. Para una [denegación sin veredicto](#permissiondenied-decision-control), comienza con `Auto mode could not evaluate this action and is blocking it for safety`. Para una denegación porque el modelo del clasificador no estaba disponible, es el texto fijo `Classifier unavailable` |2396| `reason` | La razón de la negación. Para un veredicto del clasificador, en la mayoría de sesiones nombra la regla coincidente entre corchetes, como `[Data Exfiltration]`; consulta [Revisar negaciones](/docs/es/auto-mode-config#review-denials) para las otras formas. Para una [negación sin veredicto](#permissiondenied-decision-control), comienza con `Auto mode could not evaluate this action and is blocking it for safety`. Para una negación porque el modelo del clasificador no estaba disponible, es el texto fijo `Classifier unavailable` |

2407 2397 

2408<h4 id="permissiondenied-decision-control">2398<h4 id="permissiondenied-decision-control">

2409 Control de decisión de PermissionDenied2399 Control de decisión de PermissionDenied

2410</h4>2400</h4>

2411 2401 

2412Los hooks PermissionDenied pueden decirle al modelo que puede reintentar la llamada de herramienta denegada. Devuelva un objeto JSON con `hookSpecificOutput.retry` establecido en `true`:2402Los hooks PermissionDenied pueden decirle al modelo que puede reintentar la llamada de herramienta negada. Devuelve un objeto JSON con `hookSpecificOutput.retry` establecido en `true`:

2413 2403 

2414```json theme={null}2404```json theme={null}

2415{2405{


2420}2410}

2421```2411```

2422 2412 

2423Cuando `retry` es `true`, Claude Code agrega un mensaje a la conversación diciéndole al modelo que puede reintentar la llamada de herramienta. Claude Code no revierte la denegación en sí. Si su hook no devuelve JSON, o devuelve `retry: false`, la denegación se mantiene y el modelo recibe el mensaje de rechazo original.2413Cuando `retry` es `true`, Claude Code añade un mensaje a la conversación diciéndole al modelo que puede reintentar la llamada de herramienta. Claude Code no revierte la negación en sí. Si tu hook no devuelve JSON, o devuelve `retry: false`, la negación se mantiene y el modelo recibe el mensaje de rechazo original.

2424 2414 

2425Claude Code ignora `retry: true` cuando el clasificador produjo [ningún veredicto sobre la acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action): su respuesta no se analizó, o una verificación de seguridad separada del modo automático rechazó la propia solicitud del clasificador. Para esas denegaciones, Claude Code ya le dice al modelo en el mensaje de rechazo si reintentar más tarde o continuar.2415Claude Code ignora `retry: true` cuando el clasificador produjo [ningún veredicto en la acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action): su respuesta no se analizó, o una verificación de seguridad separada del modo automático rechazó la propia solicitud del clasificador. Para esas negaciones, Claude Code ya le dice al modelo en el mensaje de rechazo si debe reintentar más tarde o continuar.

2426 2416 

2427<h3 id="notification">2417<h3 id="notification">

2428 Notification2418 Notification

2429</h3>2419</h3>

2430 2420 

2431Se ejecuta cuando Claude Code envía notificaciones. Coincide en el tipo de notificación. Omita el matcher para ejecutar hooks para todos los tipos de notificación.2421Se ejecuta cuando Claude Code envía notificaciones. Coincide en tipo de notificación. Omite el matcher para ejecutar hooks para todos los tipos de notificación.

2432 2422 

2433Recibe estos eventos de hook incluso con notificaciones de escritorio desactivadas: la configuración `preferredNotifChannel`, incluida `notifications_disabled`, cambia solo cómo se le alerta, no si su hook se ejecuta.2423Recibes estos eventos de hook incluso con notificaciones de escritorio desactivadas: la configuración `preferredNotifChannel`, incluyendo `notifications_disabled`, cambia solo cómo se te alerta, no si tu hook se ejecuta.

2434 2424 

2435| Matcher | Cuándo se dispara |2425| Matcher | Cuándo se dispara |

2436| :- | :- |2426| :- | :- |

2437| `permission_prompt` | Claude necesita su permiso para usar una herramienta o una [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en sandbox, y el aviso ha esperado aproximadamente seis segundos |2427| `permission_prompt` | Claude necesita tu permiso para usar una herramienta o una [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando en sandbox, y el prompt ha esperado aproximadamente seis segundos |

2438| `idle_prompt` | Claude terminó de responder hace aproximadamente 60 segundos y no ha escrito desde entonces |2428| `idle_prompt` | Claude terminó de responder hace aproximadamente 60 segundos y no has escrito desde entonces |

2439| `auth_success` | La autenticación se completa |2429| `auth_success` | La autenticación se completa |

2440| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no ha escrito durante aproximadamente seis segundos |2430| `elicitation_dialog` | Un servidor MCP abre un formulario de elicitación y no has escrito durante aproximadamente seis segundos |

2441| `elicitation_url_dialog` | Un servidor MCP le pide que abra una URL de navegador y no ha escrito durante aproximadamente seis segundos |2431| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL de navegador y no has escrito durante aproximadamente seis segundos |

2442| `elicitation_complete` | Un servidor MCP reporta que una [elicitación de modo URL](#elicitation-input) está completa |2432| `elicitation_complete` | Un servidor MCP reporta que una [elicitación de modo URL](#elicitation-input) está completa |

2443| `elicitation_response` | Se envía una respuesta de elicitación de MCP de vuelta al servidor |2433| `elicitation_response` | Se envía una respuesta de elicitación de MCP de vuelta al servidor |

2444| `agent_needs_input` | Una sesión de fondo comienza a esperar su entrada mientras [vista de agente](/docs/es/agent-view) está abierta en una terminal, o la sesión actual le hace una pregunta de configuración de terminal de [compañero de equipo del agente](/docs/es/agent-teams#choose-a-display-mode) y no ha escrito durante aproximadamente seis segundos |2434| `agent_needs_input` | Una sesión en segundo plano comienza a esperar tu entrada mientras [vista de agente](/docs/es/agent-view) está abierta en una terminal, o la sesión actual te hace una pregunta de [configuración de terminal de compañero de equipo del agente](/docs/es/agent-teams#choose-a-display-mode) y no has escrito durante aproximadamente seis segundos |

2445| `agent_completed` | Una sesión de fondo se completa o falla. Se dispara solo mientras [vista de agente](/docs/es/agent-view) está abierta en una terminal |2435| `agent_completed` | Una sesión en segundo plano se completa o falla. Se dispara solo mientras [vista de agente](/docs/es/agent-view) está abierta en una terminal |

2446| `quota_auto_resume_fired` | Claude Code continúa su tarea después de que un límite de uso de claude.ai la pausó: en el reinicio, o antes cuando algo que hace en Claude Code durante la espera, como agregar créditos de uso, actualizar su plan o cambiar modelos, hace que el uso esté disponible nuevamente, con la [excepción de configuración de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |2436| `quota_auto_resume_fired` | Claude Code continúa tu tarea después de que un límite de uso de claude.ai la pausó: en el reinicio, o antes cuando algo que haces en Claude Code durante la espera, como añadir créditos de uso, actualizar tu plan o cambiar modelos, hace que el uso esté disponible nuevamente, con la [excepción de configuración de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |

2447| `quota_auto_resume_stale` | Un límite de uso de claude.ai se reinició mientras su computadora dormía durante más de aproximadamente 30 minutos. Claude Code espera a que presione `Enter` en lugar de continuar. Después de un sueño más corto continúa y dispara `quota_auto_resume_fired` en su lugar |2437| `quota_auto_resume_stale` | Un límite de uso de claude.ai se reinició mientras tu computadora dormía durante más de aproximadamente 30 minutos. Claude Code espera a que presiones `Enter` en lugar de continuar. Después de un sueño más corto continúa y dispara `quota_auto_resume_fired` en su lugar |

2448| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar su tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el reinicio se movió más de 24 horas en el futuro durante una espera que Claude Code comenzó por su cuenta, la tarea continuada siguió golpeando el límite, o la continuación fue bloqueada antes de llegar al modelo. No se dispara cuando presiona `Esc` o `Ctrl+C`, o elige **No continuar automáticamente** |2438| `quota_auto_resume_disabled` | Claude Code termina su espera por un límite de uso de claude.ai sin continuar tu tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el reinicio se movió más de 24 horas en el futuro durante una espera que Claude Code comenzó por su cuenta, la tarea continuada siguió golpeando el límite, o la continuación fue bloqueada antes de llegar al modelo. No se dispara cuando presionas `Esc` o `Ctrl+C`, o seleccionas **No continuar automáticamente** |

2449 2439 

2450Los tipos `agent_needs_input` y `agent_completed` requieren Claude Code v2.1.198 o posterior.2440Los tipos `agent_needs_input` y `agent_completed` requieren Claude Code v2.1.198 o posterior.

2451 2441 


2456`agent_needs_input` para una pregunta de configuración de terminal de compañero requiere Claude Code v2.1.248 o posterior.2446`agent_needs_input` para una pregunta de configuración de terminal de compañero requiere Claude Code v2.1.248 o posterior.

2457 2447 

2458<Note>2448<Note>

2459 Los tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog`, y `elicitation_url_dialog` comparten su tiempo con notificaciones de escritorio, así que en sesiones de terminal solo los ve cuando parece que está lejos de la terminal:2449 Los tipos `permission_prompt`, `idle_prompt`, `elicitation_dialog`, y `elicitation_url_dialog` comparten su tiempo con notificaciones de escritorio, así que en sesiones de terminal solo los ves cuando pareces estar lejos de la terminal:

2460 2450 

2461 * Espere `permission_prompt` una vez que no haya escrito durante aproximadamente seis segundos. El temporizador comienza cuando aparece el aviso de permiso, y cada pulsación de tecla lo difiere. Para ejecutar un hook inmediatamente cuando Claude solicita permiso para usar una herramienta, use [PermissionRequest](#permissionrequest) en su lugar.2451 * Espera `permission_prompt` una vez que no hayas escrito durante aproximadamente seis segundos. El temporizador comienza cuando aparece el prompt de permiso, y cada pulsación de tecla lo difiere. Para ejecutar un hook inmediatamente cuando Claude solicita permiso para usar una herramienta, usa [PermissionRequest](#permissionrequest) en su lugar.

2462 * Espere `idle_prompt` aproximadamente 60 segundos después de que Claude termine de responder, y solo si no ha escrito desde entonces. Claude Code no envía `idle_prompt` mientras espera a que se reinicie un límite de uso de claude.ai. Cuando la espera termina por sí sola, uno de los tipos `quota_auto_resume_*` se dispara en su lugar.2452 * Espera `idle_prompt` aproximadamente 60 segundos después de que Claude termine de responder, y solo si no has escrito desde entonces. Claude Code no envía `idle_prompt` mientras espera a que se reinicie un límite de uso de claude.ai. Cuando la espera termina por sí sola, uno de los tipos `quota_auto_resume_*` se dispara en su lugar.

2463 * Espere `elicitation_dialog` para un formulario de elicitación, o `elicitation_url_dialog` para una solicitud de URL de navegador, una vez que no haya escrito durante aproximadamente seis segundos. Ambos comparten la misma puerta de seis segundos que `permission_prompt`: el temporizador comienza cuando aparece el diálogo, y cada pulsación de tecla lo difiere.2453 * Espera `elicitation_dialog` para un formulario de elicitación, o `elicitation_url_dialog` para una solicitud de URL de navegador, una vez que no hayas escrito durante aproximadamente seis segundos. Ambos comparten la misma puerta de seis segundos que `permission_prompt`: el temporizador comienza cuando aparece el diálogo, y cada pulsación de tecla lo difiere.

2464 2454 

2465 Una solicitud de permiso o elicitación que llega mientras otro diálogo está en pantalla mantiene la misma puerta de seis segundos, cronometrada desde cuando llega la solicitud. Su notificación puede llegar a usted mientras la solicitud aún espera detrás del diálogo abierto.2455 Una solicitud de permiso o elicitación que llega mientras otro diálogo está en pantalla mantiene la misma puerta de seis segundos, cronometrada desde cuando llega la solicitud. Su notificación puede alcanzarte mientras la solicitud aún espera detrás del diálogo abierto.

2466</Note>2456</Note>

2467 2457 

2468Claude Code cronometra `permission_prompt` diferente en sesiones donde envía solicitudes de permiso a la devolución de llamada [`canUseTool`](/docs/es/agent-sdk/user-input) de Agent SDK, que es cómo Claude Desktop y la extensión VS Code alojan Claude Code:2458Claude Code cronometra `permission_prompt` diferente en sesiones donde envía solicitudes de permiso al callback [`canUseTool`](/docs/es/agent-sdk/user-input) del Agent SDK, que es cómo Claude Desktop y la extensión VS Code alojan Claude Code:

2469 2459 

2470* Espere `permission_prompt` aproximadamente seis segundos después de que Claude solicita permiso. Claude Code no lo difiere mientras escribe.2460* Espera `permission_prompt` aproximadamente seis segundos después de que Claude solicita permiso. Claude Code no lo difiere mientras escribes.

2471* Si usted o un hook [PermissionRequest](#permissionrequest) responden antes, Claude Code no ejecuta `permission_prompt`.2461* Si tú o un hook [PermissionRequest](#permissionrequest) respondes antes, Claude Code no ejecuta `permission_prompt`.

2472* Establezca [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/es/env-vars) en `1` para desactivar `permission_prompt` en estas sesiones.2462* Establece [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/es/env-vars) en `1` para desactivar `permission_prompt` en estas sesiones.

2473 2463 

2474Antes de v2.1.233, `permission_prompt` no se disparaba en estas sesiones.2464Antes de v2.1.233, `permission_prompt` no se disparaba en estas sesiones.

2475 2465 

2476Use matchers separados para ejecutar diferentes manejadores dependiendo del tipo de notificación. Esta configuración dispara un script de alerta específico de permiso cuando Claude necesita aprobación de permiso y una notificación diferente cuando Claude ha estado inactivo:2466Usa matchers separados para ejecutar diferentes manejadores dependiendo del tipo de notificación. Esta configuración activa un script de alerta específico de permiso cuando Claude necesita aprobación de permiso y una notificación diferente cuando Claude ha estado inactivo:

2477 2467 

2478```json theme={null}2468```json theme={null}

2479{2469{


2506 Entrada de Notification2496 Entrada de Notification

2507</h4>2497</h4>

2508 2498 

2509Además de los [campos de entrada comunes](#common-input-fields), los hooks Notification reciben `message` con el texto de notificación, un `title` opcional, y `notification_type` que indica qué tipo se disparó.2499Además de los [campos de entrada comunes](#common-input-fields), los hooks Notification reciben `message` con el texto de notificación, un `title` opcional, y `notification_type` indicando qué tipo se disparó.

2510 2500 

2511```json theme={null}2501```json theme={null}

2512{2502{


2520}2510}

2521```2511```

2522 2512 

2523Los hooks Notification no pueden bloquear o modificar notificaciones. Claude Code descarta sus campos `systemMessage` y `continue` pero aún emite [`terminalSequence`](#emit-terminal-notifications), en el que se basa el ejemplo de notificación de escritorio. Los hooks Notification están destinados a efectos secundarios como reenviar la notificación a un servicio externo.2513Los hooks Notification no pueden bloquear o modificar notificaciones. Claude Code descarta sus campos `systemMessage` y `continue` pero aún emite [`terminalSequence`](#emit-terminal-notifications), que es en lo que se basa el ejemplo de notificación de escritorio. Los hooks Notification están destinados a efectos secundarios como reenviar la notificación a un servicio externo.

2524 2514 

2525<h3 id="subagentstart">2515<h3 id="subagentstart">

2526 SubagentStart2516 SubagentStart

2527</h3>2517</h3>

2528 2518 

2529Se ejecuta cuando Claude genera un subagente con la herramienta Agent, cuando Claude [reanuda un subagente](/docs/es/sub-agents#resume-subagents), y cada vez que un compañero de [equipo de agente](/docs/es/agent-teams) en proceso maneja un nuevo mensaje. Admite matchers para filtrar por nombre de tipo de agente. Para agentes integrados, este es el nombre del agente como `general-purpose`, `Explore`, o `Plan`. Para [subagentes personalizados](/docs/es/sub-agents), este es el campo `name` del frontmatter del agente, no el nombre del archivo.2519Se ejecuta cuando Claude genera un subagente con la herramienta Agent, cuando Claude [reanuda un subagente](/docs/es/sub-agents#resume-subagents), y cada vez que un [equipo de agentes](/docs/es/agent-teams) compañero en proceso maneja un nuevo mensaje. Admite matchers para filtrar por nombre de tipo de agente. Para agentes integrados, este es el nombre del agente como `general-purpose`, `Explore`, o `Plan`. Para [subagentes personalizados](/docs/es/sub-agents), este es el campo `name` del frontmatter del agente, no el nombre del archivo.

2530 2520 

2531Para subagentes enviados por un [plugin](/docs/es/plugins), el tipo de agente es el identificador con alcance de plugin como `my-plugin:reviewer`, no el nombre de frontmatter desnudo. Los dos puntos colocan un nombre con alcance de plugin en la ruta de expresión regular, así que ancle el matcher con `^` y `$` para una coincidencia exacta: `^my-plugin:reviewer$`.2521Para subagentes enviados por un [plugin](/docs/es/plugins/overview), el tipo de agente es el identificador con alcance de plugin como `my-plugin:reviewer`, no el nombre de frontmatter desnudo. El colon coloca un nombre con alcance de plugin en la ruta de expresión regular, así que ancla el matcher con `^` y `$` para una coincidencia exacta: `^my-plugin:reviewer$`.

2532 2522 

2533<h4 id="subagentstart-input">2523<h4 id="subagentstart-input">

2534 Entrada de SubagentStart2524 Entrada de SubagentStart


2547}2537}

2548```2538```

2549 2539 

2550Los hooks SubagentStart no pueden bloquear la creación del subagente, pero pueden inyectar contexto en el subagente. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver:2540Los hooks SubagentStart no pueden bloquear la creación de subagentes, pero pueden inyectar contexto en el subagente. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puedes devolver:

2551 2541 

2552| Campo | Descripción |2542| Campo | Descripción |

2553| :- | :- |2543| :- | :- |

2554| `additionalContext` | Cadena agregada al contexto del subagente al inicio de su conversación, antes de su primer prompt. Consulte [Agregar contexto para Claude](#add-context-for-claude) |2544| `additionalContext` | Cadena añadida al contexto del subagente al inicio de su conversación, antes de su primer prompt. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

2555 2545 

2556```json theme={null}2546```json theme={null}

2557{2547{


2562}2552}

2563```2553```

2564 2554 

2565Cuando el hook se ejecuta nuevamente para el mismo subagente, Claude Code inyecta el contexto devuelto solo cuando el contexto del subagente no contiene ya la copia de una ejecución anterior. La copia inyectada al inicio permanece en su lugar, dejando el [caché de prompt](/docs/es/prompt-caching#subagents-and-the-cache) del subagente intacto. Después de que la [compactación automática](/docs/es/sub-agents#auto-compaction) descarta esa copia, Claude Code inyecta el contexto de la siguiente ejecución nuevamente.2555Cuando el hook se ejecuta nuevamente para el mismo subagente, Claude Code inyecta el contexto devuelto solo cuando el contexto del subagente no contiene ya la copia de una ejecución anterior. La copia inyectada al inicio permanece en su lugar, dejando el [caché de prompt](/docs/es/prompt-caching#subagents-and-the-cache) del subagente intacto. Después de que [compactación automática](/docs/es/sub-agents#auto-compaction) descarta esa copia, Claude Code inyecta el contexto de la siguiente ejecución nuevamente.

2566 2556 

2567<h3 id="subagentstop">2557<h3 id="subagentstop">

2568 SubagentStop2558 SubagentStop

2569</h3>2559</h3>

2570 2560 

2571Se ejecuta cuando un subagente de Claude Code ha terminado de responder. Coincide en el tipo de agente, los mismos valores que SubagentStart.2561Se ejecuta cuando un subagente de Claude Code ha terminado de responder. Coincide en tipo de agente, los mismos valores que SubagentStart.

2572 2562 

2573<h4 id="subagentstop-input">2563<h4 id="subagentstop-input">

2574 Entrada de SubagentStop2564 Entrada de SubagentStop


2578 2568 

2579No cada evento SubagentStop proviene de un subagente que Claude generó. Claude Code también ejecuta agentes internos para algunas de sus propias características, como [sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) y [preguntas secundarias `/btw`](/docs/es/interactive-mode#side-questions-with-%2Fbtw), y SubagentStop se dispara cuando uno de esos termina también. Para esos eventos, `agent_type` es el nombre del agente que la sesión en sí ejecuta, como uno establecido con [`--agent`](/docs/es/cli-reference#cli-flags) o la configuración [`agent`](/docs/es/settings-reference#agent), y una cadena vacía cuando la sesión se ejecuta sin uno.2569No cada evento SubagentStop proviene de un subagente que Claude generó. Claude Code también ejecuta agentes internos para algunas de sus propias características, como [sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) y [preguntas secundarias `/btw`](/docs/es/interactive-mode#side-questions-with-%2Fbtw), y SubagentStop se dispara cuando uno de esos termina también. Para esos eventos, `agent_type` es el nombre del agente que la sesión en sí ejecuta, como uno establecido con [`--agent`](/docs/es/cli-reference#cli-flags) o la configuración [`agent`](/docs/es/settings-reference#agent), y una cadena vacía cuando la sesión se ejecuta sin uno.

2580 2570 

2581Un `matcher` que nombra tipos de agente no coincide con un `agent_type` vacío. Un hook cuyo matcher está omitido, `""`, o `"*"`, o es una expresión regular que coincide con una cadena vacía, se ejecuta para eventos con un `agent_type` vacío también.2571Un `matcher` que nombra tipos de agentes no coincide con un `agent_type` vacío. Un hook cuyo matcher está omitido, `""`, o `"*"`, o es una expresión regular que coincide con una cadena vacía, se ejecuta para eventos con un `agent_type` vacío también.

2582 2572 

2583En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) entrega su informe a través de esa herramienta antes de que se detenga. El campo `last_assistant_message` luego contiene el texto de cierre del subagente, si lo hay, que no es el informe entregado. El informe es la entrada `message` de esa llamada, que un hook `PreToolUse` o `PostToolUse` que coincida en `SubagentHandback` recibe como `tool_input.message`.2573En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) entrega su informe a través de esa herramienta antes de que se detenga. El campo `last_assistant_message` entonces contiene el texto de cierre del subagente, si lo hay, que no es el informe entregado. El informe es la entrada `message` de esa llamada, que un hook `PreToolUse` o `PostToolUse` que coincide en `SubagentHandback` recibe como `tool_input.message`.

2584 2574 

2585Los hooks SubagentStop también reciben las matrices `background_tasks` y `session_crons` descritas en [Entrada de Stop](#stop-input). Ambas matrices tienen alcance a la sesión padre, no al subagente.2575Los hooks SubagentStop también reciben los arrays `background_tasks` y `session_crons` descritos en [Entrada de Stop](#stop-input). Ambos arrays están limitados a la sesión padre, no al subagente.

2586 2576 

2587```json theme={null}2577```json theme={null}

2588{2578{


2601}2591}

2602```2592```

2603 2593 

2604Los hooks SubagentStop usan el mismo formato de control de decisión que [hooks Stop](#stop-decision-control), incluido `hookSpecificOutput.additionalContext` con `hookEventName` establecido en `"SubagentStop"`, para retroalimentación sin error que mantiene el subagente ejecutándose. Devolver `decision: "block"` con un `reason` mantiene el subagente ejecutándose y entrega `reason` al subagente como su siguiente instrucción. Un hook que bloquea saliendo con 2 entrega su mensaje stderr de la misma manera. Para inyectar contexto en la sesión padre después de que un subagente devuelve, use un hook [`PostToolUse`](#posttooluse) en la herramienta `Agent` en su lugar.2594Los hooks SubagentStop usan el mismo formato de control de decisión que [hooks Stop](#stop-decision-control), incluyendo `hookSpecificOutput.additionalContext` con `hookEventName` establecido en `"SubagentStop"`, para retroalimentación sin error que mantiene el subagente ejecutándose. Devolver `decision: "block"` con un `reason` mantiene el subagente ejecutándose y entrega `reason` al subagente como su siguiente instrucción. Un hook que bloquea saliendo con 2 entrega su mensaje stderr de la misma manera. Para inyectar contexto en la sesión padre después de que un subagente devuelve, usa un hook [`PostToolUse`](#posttooluse) en la herramienta `Agent` en su lugar.

2605 2595 

2606<h3 id="taskcreated">2596<h3 id="taskcreated">

2607 TaskCreated2597 TaskCreated

2608</h3>2598</h3>

2609 2599 

2610Se ejecuta cuando se está creando una tarea a través de la herramienta `TaskCreate`. Úselo para hacer cumplir convenciones de nomenclatura, requerir descripciones de tareas o evitar que se creen ciertas tareas. En una [sesión sin las herramientas Task](/docs/es/tools-reference#task-tool-availability), este evento no se dispara.2600Se ejecuta cuando se está creando una tarea a través de la herramienta `TaskCreate`. Úsalo para aplicar convenciones de nomenclatura, requerir descripciones de tareas o evitar que se creen ciertas tareas. En una [sesión sin las herramientas Task](/docs/es/tools-reference#task-tool-availability), este evento no se dispara.

2611 2601 

2612Los hooks TaskCreated no admiten matchers y se disparan en cada ocurrencia.2602Los hooks TaskCreated no admiten matchers y se disparan en cada ocurrencia.

2613 2603 


2637| `task_subject` | Título de la tarea |2627| `task_subject` | Título de la tarea |

2638| `task_description` | Descripción detallada de la tarea. Puede estar ausente |2628| `task_description` | Descripción detallada de la tarea. Puede estar ausente |

2639| `teammate_name` | Nombre del compañero que está creando la tarea. Puede estar ausente |2629| `teammate_name` | Nombre del compañero que está creando la tarea. Puede estar ausente |

2640| `team_name` | Deprecado. Nombre de equipo derivado de sesión; se eliminará en una versión futura |2630| `team_name` | Deprecado. Nombre de equipo derivado de sesión; será eliminado en una versión futura |

2641 2631 

2642<h4 id="taskcreated-decision-control">2632<h4 id="taskcreated-decision-control">

2643 Control de decisión de TaskCreated2633 Control de decisión de TaskCreated

2644</h4>2634</h4>

2645 2635 

2646Un hook TaskCreated puede bloquear la creación de dos formas. De cualquier manera, Claude Code elimina la tarea y devuelve su mensaje a Claude como el error de la herramienta. Claude Code ignora `continue: false` de este evento y Claude continúa trabajando.2636Un hook TaskCreated puede bloquear la creación de dos formas. De cualquier forma, Claude Code elimina la tarea y devuelve tu mensaje a Claude como el error de la herramienta. Claude Code ignora `continue: false` de este evento y Claude sigue trabajando.

2647 2637 

2648* **Código de salida 2**: Claude Code devuelve el texto stderr como el mensaje.2638* **Código de salida 2**: Claude Code devuelve el texto stderr como el mensaje.

2649* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code devuelve `reason` como el mensaje.2639* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code devuelve `reason` como el mensaje.


2667 TaskCompleted2657 TaskCompleted

2668</h3>2658</h3>

2669 2659 

2670Se ejecuta cuando se está marcando una tarea como completada. Esto se dispara en dos situaciones: cuando cualquier agente marca explícitamente una tarea como completada a través de la herramienta TaskUpdate, o cuando un compañero de [equipo de agente](/docs/es/agent-teams) termina su turno con tareas en progreso. Úselo para hacer cumplir criterios de finalización como pasar pruebas o verificaciones de lint antes de que una tarea pueda cerrarse.2660Se ejecuta cuando se está marcando una tarea como completada. Esto se dispara en dos situaciones: cuando cualquier agente marca explícitamente una tarea como completada a través de la herramienta TaskUpdate, o cuando un [equipo de agentes](/docs/es/agent-teams) compañero termina su turno con tareas en progreso. Úsalo para aplicar criterios de finalización como pasar pruebas o verificaciones de lint antes de que una tarea pueda cerrarse.

2671 2661 

2672Los hooks TaskCompleted no admiten matchers y se disparan en cada ocurrencia.2662Los hooks TaskCompleted no admiten matchers y se disparan en cada ocurrencia.

2673 2663 


2698| `task_subject` | Título de la tarea |2688| `task_subject` | Título de la tarea |

2699| `task_description` | Descripción detallada de la tarea. Puede estar ausente |2689| `task_description` | Descripción detallada de la tarea. Puede estar ausente |

2700| `teammate_name` | Nombre del compañero que está completando la tarea. Puede estar ausente |2690| `teammate_name` | Nombre del compañero que está completando la tarea. Puede estar ausente |

2701| `team_name` | Deprecado. Nombre de equipo derivado de sesión; se eliminará en una versión futura |2691| `team_name` | Deprecado. Nombre de equipo derivado de sesión; será eliminado en una versión futura |

2702 2692 

2703<h4 id="taskcompleted-decision-control">2693<h4 id="taskcompleted-decision-control">

2704 Control de decisión de TaskCompleted2694 Control de decisión de TaskCompleted


2707Los hooks TaskCompleted admiten dos formas de controlar la finalización de tareas:2697Los hooks TaskCompleted admiten dos formas de controlar la finalización de tareas:

2708 2698 

2709* **Código de salida 2**: la tarea no se marca como completada y el mensaje stderr se devuelve al modelo como retroalimentación.2699* **Código de salida 2**: la tarea no se marca como completada y el mensaje stderr se devuelve al modelo como retroalimentación.

2710* **JSON `{"continue": false, "stopReason": "..."}`**: cuando un compañero que termina su turno disparó el evento, detiene completamente al compañero, coincidiendo con el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario. Cuando la herramienta `TaskUpdate` disparó el evento, Claude Code ignora `continue: false`; el código de salida 2 aún bloquea la finalización.2700* **JSON `{"continue": false, "stopReason": "..."}`**: cuando un compañero terminando su turno activó el evento, detiene completamente al compañero, coincidiendo con el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario. Cuando la herramienta `TaskUpdate` activó el evento, Claude Code ignora `continue: false`; el código de salida 2 aún bloquea la finalización.

2711 2701 

2712Este ejemplo ejecuta pruebas y bloquea la finalización de tareas si fallan:2702Este ejemplo ejecuta pruebas y bloquea la finalización de tareas si fallan:

2713 2703 


2732Se ejecuta cuando el agente principal de Claude Code ha terminado de responder. No se ejecuta si la detención ocurrió debido a una interrupción del usuario. Los errores de API disparan [StopFailure](#stopfailure) en su lugar.2722Se ejecuta cuando el agente principal de Claude Code ha terminado de responder. No se ejecuta si la detención ocurrió debido a una interrupción del usuario. Los errores de API disparan [StopFailure](#stopfailure) en su lugar.

2733 2723 

2734<Tip>2724<Tip>

2735 El comando [`/goal`](/docs/es/goal) es un atajo integrado para un hook Stop basado en prompt con alcance de sesión. Úselo cuando quiera que Claude continúe trabajando hacia una condición sin escribir configuración de hook.2725 El comando [`/goal`](/docs/es/goal) es un atajo integrado para un hook Stop con alcance de sesión basado en prompts. Úsalo cuando quieras que Claude siga trabajando hacia una condición sin escribir configuración de hook.

2736</Tip>2726</Tip>

2737 2727 

2738<h4 id="stop-input">2728<h4 id="stop-input">

2739 Entrada de Stop2729 Entrada de Stop

2740</h4>2730</h4>

2741 2731 

2742Además de los [campos de entrada comunes](#common-input-fields), los hooks Stop reciben `stop_hook_active`, `last_assistant_message`, `background_tasks`, y `session_crons`. El campo `stop_hook_active` es `true` cuando Claude Code ya está continuando como resultado de un hook stop. Verifique este valor o procese la transcripción para evitar bloquear en una condición que nunca se resolverá. Claude Code anula el hook y termina el turno después de 8 bloqueos consecutivos.2732Además de los [campos de entrada comunes](#common-input-fields), los hooks Stop reciben `stop_hook_active`, `last_assistant_message`, `background_tasks`, y `session_crons`. El campo `stop_hook_active` es `true` cuando Claude Code ya está continuando como resultado de un hook stop. Verifica este valor o procesa la transcripción para evitar bloquear en una condición que nunca se resolverá. Claude Code aplica un límite de 8 continuaciones consecutivas: después de que los hooks stop hayan continuado el turno ocho veces seguidas, Claude Code anula el siguiente bloqueo y termina el turno. Para elevar el límite, establece [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/es/env-vars).

2743 2733 

2744El campo `last_assistant_message` contiene el contenido de texto de la respuesta final de Claude, por lo que los hooks pueden acceder a él sin analizar el archivo de transcripción. Para hooks que actúan en el turno recién completado, como hooks de lectura en voz alta o notificación, use este campo en lugar de leer `transcript_path`: el archivo de transcripción no se garantiza que incluya el mensaje final en el tiempo de Stop en todas las versiones.2734El campo `last_assistant_message` contiene el contenido de texto de la respuesta final de Claude, por lo que los hooks pueden acceder a él sin analizar el archivo de transcripción. Para hooks que actúan en el turno recién completado, como hooks de lectura en voz alta o notificación, usa este campo en lugar de leer `transcript_path`: el archivo de transcripción no se garantiza que incluya el mensaje final en el tiempo de Stop en todas las versiones.

2745 2735 

2746Las matrices `background_tasks` y `session_crons` permiten que los hooks distingan "sesión hecha" de "sesión pausada esperando que el trabajo de fondo la despierte". Ambas matrices están presentes cuando el registro de tareas es accesible y están vacías cuando nada está en vuelo o programado.2736Los arrays `background_tasks` y `session_crons` permiten a los hooks distinguir "sesión terminada" de "sesión pausada esperando que el trabajo de fondo la despierte". Ambos arrays están presentes cuando el registro de tareas es alcanzable y están vacíos cuando nada está en vuelo o programado.

2747 2737 

2748Cada entrada en `background_tasks` describe una tarea en vuelo y usa estos campos:2738Cada entrada en `background_tasks` describe una tarea en vuelo y usa estos campos:

2749 2739 

2750| Campo | Descripción |2740| Campo | Descripción |

2751| :- | :- |2741| :- | :- |

2752| `id` | Identificador de tarea |2742| `id` | Identificador de tarea |

2753| `type` | Etiqueta de tipo de tarea amigable como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, o `MCP task`. Cada etiqueta identifica qué característica de Claude Code creó la tarea. Vuelve al discriminante sin procesar para tipos no reconocidos |2743| `type` | Etiqueta de tipo de tarea amigable como `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session`, o `MCP task`. Cada etiqueta identifica qué característica de Claude Code creó la tarea. Vuelve al discriminante bruto para tipos no reconocidos |

2754| `status` | Estado actual de la tarea |2744| `status` | Estado actual de la tarea |

2755| `description` | Descripción de texto libre, limitada a 1000 caracteres con un marcador `… [+N chars]` en cadena cuando se recorta |2745| `description` | Descripción de texto libre, limitada a 1000 caracteres con un marcador `… [+N chars]` en cadena cuando se recorta |

2756| `command` | Línea de comando de shell, limitada a 1000 caracteres. Presente solo para tareas `shell` |2746| `command` | Línea de comando de shell, limitada a 1000 caracteres. Presente solo para tareas `shell` |


2765| :- | :- |2755| :- | :- |

2766| `id` | Identificador de tarea cron |2756| `id` | Identificador de tarea cron |

2767| `schedule` | Expresión cron, por ejemplo `0 9 * * 1-5` |2757| `schedule` | Expresión cron, por ejemplo `0 9 * * 1-5` |

2768| `recurring` | `false` para despertares únicos cuya programación codifica un tiempo de disparo único, `true` para tareas que se disparan nuevamente en cada coincidencia |2758| `recurring` | `false` para despertares únicos cuya programación codifica un único tiempo de disparo, `true` para tareas que se disparan nuevamente en cada coincidencia |

2769| `prompt` | Prompt enviado cuando se dispara el cron, limitado a 1000 caracteres con el mismo marcador `… [+N chars]` |2759| `prompt` | Prompt enviado cuando se dispara el cron, limitado a 1000 caracteres con el mismo marcador `… [+N chars]` |

2770 2760 

2771Este ejemplo muestra una entrada de Stop con una tarea de shell en vuelo y un cron recurrente:2761Este ejemplo muestra una entrada de Stop con una tarea de shell en vuelo y un cron recurrente:


2803 Control de decisión de Stop2793 Control de decisión de Stop

2804</h4>2794</h4>

2805 2795 

2806Los hooks `Stop` y `SubagentStop` pueden controlar si Claude continúa. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, su script de hook puede devolver estos campos específicos del evento:2796Los hooks `Stop` y `SubagentStop` pueden controlar si Claude continúa. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, tu script de hook puede devolver estos campos específicos del evento:

2807 2797 

2808| Campo | Descripción |2798| Campo | Descripción |

2809| :- | :- |2799| :- | :- |

2810| `decision` | `"block"` evita que Claude se detenga. Omita para permitir que Claude se detenga |2800| `decision` | `"block"` evita que Claude se detenga. Omite para permitir que Claude se detenga |

2811| `reason` | Requerido cuando `decision` es `"block"`. Le dice a Claude por qué debe continuar |2801| `reason` | Requerido cuando `decision` es `"block"`. Le dice a Claude por qué debe continuar |

2812| `hookSpecificOutput.additionalContext` | Retroalimentación sin error para Claude. La conversación continúa para que Claude pueda actuar sobre ella, pero a diferencia de `decision: "block"` se muestra en la transcripción como retroalimentación de hook en lugar de un error de hook |2802| `hookSpecificOutput.additionalContext` | Retroalimentación sin error para Claude. La conversación continúa para que Claude pueda actuar sobre ella, pero a diferencia de `decision: "block"` se muestra en la transcripción como retroalimentación de hook en lugar de un error de hook |

2813 2803 


2820}2810}

2821```2811```

2822 2812 

2823Use `additionalContext` cuando el hook está funcionando como se diseñó y dando orientación a Claude, como "ejecutar el conjunto de pruebas antes de terminar". Mantiene la conversación a través de las mismas protecciones de bucle que `decision: "block"`, es decir, la entrada `stop_hook_active` y el límite de 8 continuaciones consecutivas, pero la transcripción la etiqueta como `Stop hook feedback` y no se muestra ninguna notificación de error de hook:2813Usa `additionalContext` cuando el hook está funcionando como se diseñó y dando orientación a Claude, como "ejecuta la suite de pruebas antes de terminar". Mantiene la conversación a través de las mismas protecciones de bucle que `decision: "block"`, a saber la entrada `stop_hook_active` y el límite de 8 continuaciones consecutivas, pero la transcripción la etiqueta como `Stop hook feedback` y no se muestra ninguna notificación de error de hook:

2824 2814 

2825```json theme={null}2815```json theme={null}

2826{2816{


2835 StopFailure2825 StopFailure

2836</h3>2826</h3>

2837 2827 

2838Se ejecuta en lugar de [Stop](#stop) cuando el turno termina debido a un error de API. Claude Code ignora la salida y el código de salida del hook, aparte de [`terminalSequence`](#emit-terminal-notifications). Úselo para registrar fallas, enviar alertas o tomar acciones de recuperación cuando Claude no puede completar una respuesta debido a límites de velocidad, problemas de autenticación u otros errores de API.2828Se ejecuta en lugar de [Stop](#stop) cuando el turno termina debido a un error de API. Claude Code ignora la salida y el código de salida del hook, aparte de [`terminalSequence`](#emit-terminal-notifications). Úsalo para registrar fallos, enviar alertas o tomar acciones de recuperación cuando Claude no puede completar una respuesta debido a límites de velocidad, problemas de autenticación u otros errores de API.

2839 2829 

2840<h4 id="stopfailure-input">2830<h4 id="stopfailure-input">

2841 Entrada de StopFailure2831 Entrada de StopFailure


2847| :- | :- |2837| :- | :- |

2848| `error` | Tipo de error: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, o `unknown` |2838| `error` | Tipo de error: `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, o `unknown` |

2849| `error_details` | Detalles adicionales sobre el error, cuando esté disponible |2839| `error_details` | Detalles adicionales sobre el error, cuando esté disponible |

2850| `last_assistant_message` | El texto de error renderizado mostrado en la conversación. A diferencia de `Stop` y `SubagentStop`, donde este campo contiene la salida conversacional de Claude, para `StopFailure` contiene la cadena de error de API en sí, como `"API Error: Rate limit reached"` |2840| `last_assistant_message` | El texto de error renderizado mostrado en la conversación. A diferencia de `Stop` y `SubagentStop`, donde este campo contiene la salida conversacional de Claude, para `StopFailure` contiene la cadena de error de la API en sí, como `"API Error: Rate limit reached"` |

2851 2841 

2852```json theme={null}2842```json theme={null}

2853{2843{


2867 TeammateIdle2857 TeammateIdle

2868</h3>2858</h3>

2869 2859 

2870Se ejecuta cuando un compañero de [equipo de agente](/docs/es/agent-teams) está a punto de quedarse inactivo después de terminar su turno. Úselo para hacer cumplir puertas de calidad antes de que un compañero deje de trabajar, como requerir que pasen verificaciones de lint o verificar que existan archivos de salida.2860Se ejecuta cuando un compañero de [equipo de agentes](/docs/es/agent-teams) está a punto de quedarse inactivo después de terminar su turno. Úsalo para aplicar puertas de calidad antes de que un compañero deje de trabajar, como requerir verificaciones de lint aprobadas o verificar que existan archivos de salida.

2871 2861 

2872Los hooks TeammateIdle no admiten matchers y se disparan en cada ocurrencia.2862Los hooks TeammateIdle no admiten matchers y se disparan en cada ocurrencia.

2873 2863 


2892| Campo | Descripción |2882| Campo | Descripción |

2893| :- | :- |2883| :- | :- |

2894| `teammate_name` | Nombre del compañero que está a punto de quedarse inactivo |2884| `teammate_name` | Nombre del compañero que está a punto de quedarse inactivo |

2895| `team_name` | Deprecado. Nombre de equipo derivado de sesión; se eliminará en una versión futura |2885| `team_name` | Deprecado. Nombre de equipo derivado de sesión; será eliminado en una versión futura |

2896 2886 

2897<h4 id="teammateidle-decision-control">2887<h4 id="teammateidle-decision-control">

2898 Control de decisión de TeammateIdle2888 Control de decisión de TeammateIdle


2903* **Código de salida 2**: el compañero recibe el mensaje stderr como retroalimentación y continúa trabajando en lugar de quedarse inactivo.2893* **Código de salida 2**: el compañero recibe el mensaje stderr como retroalimentación y continúa trabajando en lugar de quedarse inactivo.

2904* **JSON `{"continue": false, "stopReason": "..."}`**: detiene completamente al compañero, coincidiendo con el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario.2894* **JSON `{"continue": false, "stopReason": "..."}`**: detiene completamente al compañero, coincidiendo con el comportamiento del hook `Stop`. El `stopReason` se muestra al usuario.

2905 2895 

2906Este ejemplo verifica que existe un artefacto de compilación antes de permitir que un compañero se quede inactivo:2896Este ejemplo verifica que exista un artefacto de compilación antes de permitir que un compañero se quede inactivo:

2907 2897 

2908```bash theme={null}2898```bash theme={null}

2909#!/bin/bash2899#!/bin/bash


2920 ConfigChange2910 ConfigChange

2921</h3>2911</h3>

2922 2912 

2923Se ejecuta cuando un archivo de configuración cambia durante una sesión. Úselo para auditar cambios de configuración, hacer cumplir políticas de seguridad o bloquear modificaciones no autorizadas en archivos de configuración.2913Se ejecuta cuando un archivo de configuración cambia durante una sesión. Úsalo para auditar cambios de configuración, aplicar políticas de seguridad o bloquear modificaciones no autorizadas a archivos de configuración.

2924 2914 

2925Claude Code ejecuta hooks ConfigChange cuando un archivo de configuración, un archivo de política administrada o un archivo de skill cambia. Para política administrada, solo los ejecuta cuando `managed-settings.json` o un archivo en `managed-settings.d/` cambia. Aplica [configuración administrada por servidor](/docs/es/server-managed-settings) y cambios en preferencias administradas de macOS o política de registro de Windows sin ejecutarlos. En WSL con [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings), también aplica un archivo de configuración administrada de Windows modificado en su sondeo de política sin ejecutarlos.2915Claude Code ejecuta hooks ConfigChange cuando un archivo de configuración, un archivo de política gestionada o un archivo de skill cambia. Para política gestionada, los ejecuta solo cuando `managed-settings.json` o un archivo en `managed-settings.d/` cambia. Aplica [configuración gestionada por servidor](/docs/es/server-managed-settings) y cambios a preferencias gestionadas de macOS o política de registro de Windows sin ejecutarlos. En WSL con [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings), también aplica un archivo de configuración gestionada de Windows modificado en su sondeo de política sin ejecutarlos.

2926 2916 

2927El matcher filtra en la fuente de configuración:2917El matcher filtra en la fuente de configuración:

2928 2918 


2975 Control de decisión de ConfigChange2965 Control de decisión de ConfigChange

2976</h4>2966</h4>

2977 2967 

2978Los hooks ConfigChange pueden bloquear cambios de configuración para que no surtan efecto. Use código de salida 2 o un JSON `decision` para evitar el cambio. Cuando se bloquea, la nueva configuración no se aplica a la sesión en ejecución.2968Los hooks ConfigChange pueden bloquear cambios de configuración de tomar efecto. Usa código de salida 2 o un JSON `decision` para evitar el cambio. Cuando se bloquea, la nueva configuración no se aplica a la sesión en ejecución.

2979 2969 

2980| Campo | Descripción |2970| Campo | Descripción |

2981| :- | :- |2971| :- | :- |

2982| `decision` | `"block"` evita que se aplique el cambio de configuración. Omita para permitir el cambio |2972| `decision` | `"block"` evita que se aplique el cambio de configuración. Omite para permitir el cambio |

2983| `reason` | Aceptado pero nunca mostrado |2973| `reason` | Aceptado pero nunca mostrado |

2984 2974 

2985```json theme={null}2975```json theme={null}


2989}2979}

2990```2980```

2991 2981 

2992Los cambios `policy_settings` no se pueden bloquear. Los hooks aún se disparan para fuentes `policy_settings` cuando un archivo de configuración administrada en la máquina cambia, para que pueda usarlos para registrar esas ediciones, pero cualquier decisión de bloqueo se ignora. Esto asegura que la configuración administrada por empresa siempre surta efecto. Claude Code no ejecuta hooks `ConfigChange` cuando llegan o se actualizan [configuración administrada por servidor](/docs/es/server-managed-settings).2982Los cambios `policy_settings` no pueden ser bloqueados. Los hooks aún se disparan para fuentes `policy_settings` cuando un archivo de configuración gestionada en la máquina cambia, para que puedas usarlos para registrar esas ediciones, pero cualquier decisión de bloqueo se ignora. Esto asegura que la configuración gestionada por empresa siempre tenga efecto. Claude Code no ejecuta hooks `ConfigChange` cuando llega o se actualiza [configuración gestionada por servidor](/docs/es/server-managed-settings).

2993 2983 

2994Claude Code actúa sobre la decisión de bloqueo de la salida JSON de un hook ConfigChange y descarta `systemMessage` y `continue`. Un cambio bloqueado no muestra ningún mensaje a usted o a Claude, ya sea que bloquee con `reason` o con stderr en salida 2. Claude Code solo escribe una línea en el registro de depuración.2984Claude Code actúa sobre la decisión de bloqueo de la salida JSON de un hook ConfigChange y descarta `systemMessage` y `continue`. Un cambio bloqueado no muestra ningún mensaje para ti o para Claude, ya sea que bloquees con `reason` o con stderr en salida 2. Claude Code solo escribe una línea en el registro de depuración.

2995 2985 

2996<h3 id="cwdchanged">2986<h3 id="cwdchanged">

2997 CwdChanged2987 CwdChanged

2998</h3>2988</h3>

2999 2989 

3000Se ejecuta cuando un comando de shell en la conversación principal cambia el directorio de trabajo, por ejemplo cuando Claude ejecuta un comando `cd`. Úselo para reaccionar a cambios de directorio: recargar variables de entorno, activar cadenas de herramientas específicas del proyecto o ejecutar scripts de configuración automáticamente. Se empareja con [FileChanged](#filechanged) para herramientas como [direnv](https://direnv.net/) que administran el entorno por directorio.2990Se ejecuta cuando un comando de shell en la conversación principal cambia el directorio de trabajo, por ejemplo cuando Claude ejecuta un comando `cd`. Úsalo para reaccionar a cambios de directorio: recargar variables de entorno, activar cadenas de herramientas específicas del proyecto o ejecutar scripts de configuración automáticamente. Se empareja con [FileChanged](#filechanged) para herramientas como [direnv](https://direnv.net/) que gestionan el entorno por directorio.

3001 2991 

3002Los hooks CwdChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en comandos Bash posteriores hasta el siguiente evento CwdChanged, cuando Claude Code las borra.2992Los hooks CwdChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en comandos Bash posteriores hasta el siguiente evento CwdChanged, cuando Claude Code las borra.

3003 2993 


3028 3018 

3029| Campo | Descripción |3019| Campo | Descripción |

3030| :- | :- |3020| :- | :- |

3031| `watchPaths` | Matriz de rutas absolutas. Reemplaza la lista de observación dinámica actual. Las rutas de su configuración `matcher` siempre se observan. Devolver una matriz vacía borra la lista dinámica, que es típico al entrar en un nuevo directorio |3021| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de observación dinámica actual. Las rutas de tu configuración `matcher` siempre se observan. Devolver un array vacío borra la lista dinámica, que es típico al entrar en un nuevo directorio |

3032 3022 

3033Los hooks CwdChanged no tienen control de decisión. No pueden bloquear el cambio de directorio.3023Los hooks CwdChanged no tienen control de decisión. No pueden bloquear el cambio de directorio.

3034 3024 

3035Claude Code lee `watchPaths` y `systemMessage` de su salida JSON y descarta `continue`. En sesiones interactivas, muestra el `systemMessage` como una breve notificación de terminal. El mensaje no llega al flujo de mensajes de SDK.3025Claude Code lee `watchPaths` y `systemMessage` de su salida JSON y descarta `continue`. En sesiones interactivas, muestra el `systemMessage` como una breve notificación de terminal. El mensaje no llega al flujo de mensajes del SDK.

3036 3026 

3037<h3 id="directoryadded">3027<h3 id="directoryadded">

3038 DirectoryAdded3028 DirectoryAdded

3039</h3>3029</h3>

3040 3030 

3041Se ejecuta después de agregar un directorio de trabajo a mitad de sesión con el comando `/add-dir`, o después de que un cliente de SDK agregue uno con la solicitud de control `register_repo_root`. Úselo para preparar un repositorio recién agregado, por ejemplo instalando sus dependencias.3031Se ejecuta después de que añadas un directorio de trabajo a mitad de sesión con el comando `/add-dir`, o después de que un cliente del SDK añada uno con la solicitud de control `register_repo_root`. Úsalo para preparar un repositorio recién añadido, por ejemplo instalando sus dependencias.

3042 3032 

3043Claude Code no dispara este evento cuando:3033Claude Code no dispara este evento cuando:

3044 3034 

3045* Pasa un directorio con la bandera de inicio `--add-dir`; [SessionStart](#sessionstart) cubre esos directorios3035* Pasas un directorio con la bandera de inicio `--add-dir`; [SessionStart](#sessionstart) cubre esos directorios

3046* Agrega un directorio en la pestaña Workspace `/permissions`3036* Añades un directorio en la pestaña Workspace `/permissions`

3047* Agrega un directorio que ya es un directorio de trabajo o está dentro de uno3037* Añades un directorio que ya es un directorio de trabajo o está dentro de uno

3048 3038 

3049Claude Code dispara DirectoryAdded después de actualizar el estado de sandbox y permiso, por lo que las herramientas en sandbox ya ven el nuevo directorio cuando se ejecuta su hook. Los comandos del hook en sí se ejecutan sin sandbox.3039Claude Code dispara DirectoryAdded después de actualizar el estado de sandbox y permiso, por lo que las herramientas en sandbox ya ven el nuevo directorio cuando se ejecuta tu hook. Los comandos del hook en sí se ejecutan sin sandbox.

3050 3040 

3051Claude Code no espera el hook: la adición se completa inmediatamente, y el hook se ejecuta en segundo plano con el tiempo de espera predeterminado de 600 segundos.3041Claude Code no espera el hook: la adición se completa inmediatamente, y el hook se ejecuta en segundo plano con el tiempo de espera predeterminado de 600 segundos.

3052 3042 

3053El matcher filtra en cómo se agregó el directorio:3043El matcher filtra en cómo se añadió el directorio:

3054 3044 

3055| Matcher | Cuándo se dispara |3045| Matcher | Cuándo se dispara |

3056| :- | :- |3046| :- | :- |

3057| `slash_command` | Agrega un directorio con `/add-dir` |3047| `slash_command` | Añades un directorio con `/add-dir` |

3058| `register_repo_root` | Un cliente de SDK agrega un directorio con la solicitud de control `register_repo_root` |3048| `register_repo_root` | Un cliente del SDK añade un directorio con la solicitud de control `register_repo_root` |

3059 3049 

3060<h4 id="directoryadded-input">3050<h4 id="directoryadded-input">

3061 Entrada de DirectoryAdded3051 Entrada de DirectoryAdded


3065 3055 

3066| Campo | Descripción |3056| Campo | Descripción |

3067| :- | :- |3057| :- | :- |

3068| `directory` | Ruta absoluta del directorio que se agregó |3058| `directory` | Ruta absoluta del directorio que se añadió |

3069| `source` | Cómo se agregó el directorio, `"slash_command"` para `/add-dir` o `"register_repo_root"` para la solicitud de control de SDK |3059| `source` | Cómo se añadió el directorio, `"slash_command"` para `/add-dir` o `"register_repo_root"` para la solicitud de control del SDK |

3070 3060 

3071```json theme={null}3061```json theme={null}

3072{3062{


3081 3071 

3082Los hooks DirectoryAdded no tienen control de decisión. No pueden bloquear la adición, que ya se ha completado cuando se ejecuta el hook. Claude Code descarta el campo `continue` de su salida JSON y muestra el resto diferente por fuente:3072Los hooks DirectoryAdded no tienen control de decisión. No pueden bloquear la adición, que ya se ha completado cuando se ejecuta el hook. Claude Code descarta el campo `continue` de su salida JSON y muestra el resto diferente por fuente:

3083 3073 

3084* `slash_command`: Claude Code entrega el `systemMessage` del hook a Claude como contexto en el siguiente turno de conversación, en lugar de mostrárselo. Un recuento de hooks fallidos aparece en la transcripción. La salida de fallo completo va al registro de depuración3074* `slash_command`: Claude Code entrega el `systemMessage` del hook a Claude como contexto en el siguiente turno de conversación, en lugar de mostrártelo. Un recuento de hooks fallidos aparece en la transcripción. La salida de fallo completo va al registro de depuración

3085* `register_repo_root`: Claude Code escribe la salida `systemMessage` y la salida de fallo solo en el registro de depuración3075* `register_repo_root`: Claude Code escribe la salida `systemMessage` y la salida de fallo solo en el registro de depuración

3086 3076 

3087<h3 id="filechanged">3077<h3 id="filechanged">


3090 3080 

3091Se ejecuta cuando un archivo observado cambia en el disco. Claude Code detecta cambios con un observador del sistema de archivos, no inspeccionando llamadas de herramientas, por lo que ejecuta el hook sin importar qué cambió el archivo: una llamada de herramienta `Edit` o `Write`, un script que Claude ejecuta con `Bash`, o un proceso fuera de Claude Code completamente. Un uso común es recargar variables de entorno cuando cambian archivos de configuración del proyecto.3081Se ejecuta cuando un archivo observado cambia en el disco. Claude Code detecta cambios con un observador del sistema de archivos, no inspeccionando llamadas de herramientas, por lo que ejecuta el hook sin importar qué cambió el archivo: una llamada de herramienta `Edit` o `Write`, un script que Claude ejecuta con `Bash`, o un proceso fuera de Claude Code completamente. Un uso común es recargar variables de entorno cuando cambian archivos de configuración del proyecto.

3092 3082 

3093El `matcher` para este evento sirve dos propósitos:3083El `matcher` para este evento sirve dos roles:

3094 3084 

3095* **Construir la lista de observación**: el valor se divide en `|` y cada segmento se registra como un nombre de archivo literal en el directorio de trabajo, por lo que `".envrc|.env"` observa exactamente esos dos archivos. Los patrones regex no son útiles aquí: un valor como `^\.env` observaría un archivo literalmente nombrado `^\.env`.3085* **Construir la lista de observación**: el valor se divide en `|` y cada segmento se registra como un nombre de archivo literal en el directorio de trabajo, así que `".envrc|.env"` observa exactamente esos dos archivos. Los patrones regex no son útiles aquí: un valor como `^\.env` observaría un archivo literalmente nombrado `^\.env`.

3096* **Filtrar qué hooks se ejecutan**: cuando un archivo observado cambia, el mismo valor filtra qué grupos de hooks se ejecutan usando las [reglas de matcher](#matcher-patterns) estándar contra el nombre base del archivo cambiado.3086* **Filtrar qué hooks se ejecutan**: cuando un archivo observado cambia, el mismo valor filtra qué grupos de hook se ejecutan usando las [reglas de matcher](#matcher-patterns) estándar contra el nombre base del archivo cambiado.

3097 3087 

3098Este ejemplo normaliza los finales de línea en `data.csv` después de cualquier cambio, incluido un comando `Bash` o un script externo reescribiendo el archivo:3088Este ejemplo normaliza terminaciones de línea en `data.csv` después de cualquier cambio, incluyendo un comando `Bash` o un script externo reescribiendo el archivo:

3099 3089 

3100```json theme={null}3090```json theme={null}

3101{3091{


3115}3105}

3116```3106```

3117 3107 

3118El hook lee la ruta absoluta del archivo cambiado del campo `file_path` de la [entrada JSON](#filechanged-input) en stdin. Su guardia `grep` prueba lo mismo que `perl` elimina, un CR al final de una línea, por lo que la ejecución después de una normalización sale sin tocar el archivo. Una guardia más suelta se repite para siempre, porque `perl -i` reescribe el archivo incluso cuando no sustituye nada y Claude Code ejecuta el hook nuevamente después de cada reescritura. Guarde este script en `/path/to/normalize-line-endings.sh` y hágalo ejecutable:3108El hook lee la ruta absoluta del archivo cambiado del campo `file_path` de la [entrada JSON](#filechanged-input) en stdin. Su guardia `grep` prueba lo mismo que `perl` elimina, un CR al final de una línea, así que la ejecución después de una normalización sale sin tocar el archivo. Una guardia más suelta se repite para siempre, porque `perl -i` reescribe el archivo incluso cuando no sustituye nada y Claude Code ejecuta el hook nuevamente después de cada reescritura. Guarda este script en `/path/to/normalize-line-endings.sh` y hazlo ejecutable:

3119 3109 

3120```bash theme={null}3110```bash theme={null}

3121#!/bin/bash3111#!/bin/bash


3125fi3115fi

3126```3116```

3127 3117 

3128Para confirmar que el hook funciona, pida a Claude que agregue una línea CRLF a `data.csv` con un comando `Bash`. Claude Code ejecuta el hook y el archivo termina con finales LF.3118Para confirmar que el hook funciona, pídele a Claude que añada una línea CRLF a `data.csv` con un comando `Bash`. Claude Code ejecuta el hook y el archivo termina con terminaciones LF.

3129 3119 

3130Para observar archivos que no puede nombrar por adelantado, devuelva [`watchPaths`](#filechanged-output) de un hook para actualizar la lista de observación dinámicamente. Claude Code comienza el observador solo cuando algo nombra un archivo para observar, por lo que inicie la lista con un grupo FileChanged cuyo matcher nombre al menos un archivo, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) que devuelva `watchPaths`. El matcher aún filtra qué grupos de hooks se ejecutan cuando un archivo observado cambia, así que dé al grupo que maneja rutas dinámicas un matcher omitido, que coincide con cada archivo observado y no agrega nada a la lista de observación. Un matcher `"*"` también coincide con cada archivo, pero Claude Code lo registra en la lista de observación como un archivo literal nombrado `*`.3120Para observar archivos que no puedes nombrar por adelantado, devuelve [`watchPaths`](#filechanged-output) de un hook para actualizar la lista de observación dinámicamente. Claude Code comienza el observador solo cuando algo nombra un archivo para observar, así que siembra la lista con un grupo FileChanged cuyo matcher nombra al menos un archivo, o con un hook [SessionStart](#sessionstart-decision-control) o [CwdChanged](#cwdchanged) que devuelve `watchPaths`. El matcher aún filtra qué grupos de hook se ejecutan cuando un archivo observado cambia, así que da al grupo que maneja rutas dinámicas un matcher omitido, que coincide con cada archivo observado y no añade nada a la lista de observación. Un matcher `"*"` también coincide con cada archivo, pero Claude Code lo registra en la lista de observación como cualquier otro valor, como un archivo literal nombrado `*`.

3131 3121 

3132Los hooks FileChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en comandos Bash posteriores hasta el siguiente evento [CwdChanged](#cwdchanged), cuando Claude Code las borra.3122Los hooks FileChanged tienen acceso a [`CLAUDE_ENV_FILE`](#persist-environment-variables). Las variables escritas en ese archivo persisten en comandos Bash posteriores hasta el siguiente evento [CwdChanged](#cwdchanged), cuando Claude Code las borra.

3133 3123 


3161 3151 

3162| Campo | Descripción |3152| Campo | Descripción |

3163| :- | :- |3153| :- | :- |

3164| `watchPaths` | Matriz de rutas absolutas. Reemplaza la lista de observación dinámica actual. Las rutas de su configuración `matcher` siempre se observan. Úselo cuando su script de hook descubra archivos adicionales para observar basándose en el archivo cambiado |3154| `watchPaths` | Array de rutas absolutas. Reemplaza la lista de observación dinámica actual. Las rutas de tu configuración `matcher` siempre se observan. Úsalo cuando tu script de hook descubre archivos adicionales para observar basándose en el archivo cambiado |

3165 3155 

3166Los hooks FileChanged no tienen control de decisión. No pueden bloquear el cambio de archivo que ocurre.3156Los hooks FileChanged no tienen control de decisión. No pueden bloquear el cambio de archivo de ocurrir.

3167 3157 

3168Claude Code lee `watchPaths` y `systemMessage` de su salida JSON y descarta `continue`. En sesiones interactivas, muestra el `systemMessage` como una breve notificación de terminal. El mensaje no llega al flujo de mensajes de SDK.3158Claude Code lee `watchPaths` y `systemMessage` de su salida JSON y descarta `continue`. En sesiones interactivas, muestra el `systemMessage` como una breve notificación de terminal. El mensaje no llega al flujo de mensajes del SDK.

3169 3159 

3170<h3 id="worktreecreate">3160<h3 id="worktreecreate">

3171 WorktreeCreate3161 WorktreeCreate

3172</h3>3162</h3>

3173 3163 

3174Se ejecuta cuando se está creando un worktree, ya sea desde `claude --worktree`, desde un [subagente usando `isolation: "worktree"`](/docs/es/sub-agents#choose-the-subagent-scope), o para una [sesión de fondo](/docs/es/agent-view#how-file-edits-are-isolated) que Claude Code aísla en su propio worktree. De forma predeterminada, Claude Code crea la copia de trabajo aislada con `git worktree`. Configurar un hook WorktreeCreate reemplaza ese comportamiento de git predeterminado, permitiéndole usar un sistema de control de versiones diferente como SVN, Perforce o Mercurial.3164Se ejecuta cuando se está creando un worktree, ya sea desde `claude --worktree`, desde un [subagente usando `isolation: "worktree"`](/docs/es/sub-agents#choose-the-subagent-scope), o para una [sesión en segundo plano](/docs/es/agent-view#how-file-edits-are-isolated) que Claude Code aísla en su propio worktree. Por defecto Claude Code crea la copia de trabajo aislada con `git worktree`. Configurar un hook WorktreeCreate reemplaza ese comportamiento git predeterminado, permitiéndote usar un sistema de control de versiones diferente como SVN, Perforce o Mercurial.

3175 3165 

3176Debido a que el hook reemplaza el comportamiento predeterminado completamente, [`.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) no se procesa. Si necesita copiar archivos de configuración local como `.env` en el nuevo worktree, hágalo dentro de su script de hook.3166Debido a que el hook reemplaza el comportamiento predeterminado completamente, [`.worktreeinclude`](/docs/es/worktrees#copy-gitignored-files-into-worktrees) no se procesa. Si necesitas copiar archivos de configuración local como `.env` en el nuevo worktree, hazlo dentro de tu script de hook.

3177 3167 

3178El hook debe devolver la ruta al directorio del worktree creado. Claude Code usa esta ruta como el directorio de trabajo para la sesión aislada. Consulte [Salida de WorktreeCreate](#worktreecreate-output) para saber cómo cada tipo de hook devuelve la ruta.3168El hook debe devolver la ruta al directorio del worktree creado. Claude Code usa esta ruta como el directorio de trabajo para la sesión aislada. Consulta [Salida de WorktreeCreate](#worktreecreate-output) para saber cómo cada tipo de hook devuelve la ruta.

3179 3169 

3180Claude Code actúa sobre el éxito del hook y la ruta devuelta, y descarta `systemMessage` y `continue`.3170Claude Code actúa sobre el éxito del hook y la ruta devuelta, y descarta `systemMessage` y `continue`.

3181 3171 

3182Este ejemplo crea una copia de trabajo SVN e imprime la ruta para que Claude Code la use. Reemplace la URL del repositorio con la suya:3172Este ejemplo crea una copia de trabajo SVN e imprime la ruta para que Claude Code la use. Reemplaza la URL del repositorio con la tuya:

3183 3173 

3184```json theme={null}3174```json theme={null}

3185{3175{


3198}3188}

3199```3189```

3200 3190 

3201El hook lee el `name` del worktree de la entrada JSON en stdin, verifica una copia fresca en un nuevo directorio e imprime la ruta del directorio. El `echo` en la última línea es lo que Claude Code lee como la ruta del worktree. Redirija cualquier otra salida a stderr para que no interfiera con la ruta.3191El hook lee el `name` del worktree de la entrada JSON en stdin, verifica una copia fresca en un nuevo directorio e imprime la ruta del directorio. El `echo` en la última línea es lo que Claude Code lee como la ruta del worktree. Redirige cualquier otra salida a stderr para que no interfiera con la ruta.

3202 3192 

3203<h4 id="worktreecreate-input">3193<h4 id="worktreecreate-input">

3204 Entrada de WorktreeCreate3194 Entrada de WorktreeCreate

3205</h4>3195</h4>

3206 3196 

3207Además de los [campos de entrada comunes](#common-input-fields), los hooks WorktreeCreate reciben el campo `name`. Este es un identificador slug para el nuevo worktree, ya sea especificado por el usuario o generado automáticamente, por ejemplo `bold-oak-a3f2`.3197Además de los [campos de entrada comunes](#common-input-fields), los hooks WorktreeCreate reciben el campo `name`. Este es un identificador slug para el nuevo worktree, ya sea especificado por el usuario o auto-generado, por ejemplo `bold-oak-a3f2`.

3208 3198 

3209```json theme={null}3199```json theme={null}

3210{3200{


3222 3212 

3223Los hooks WorktreeCreate no usan el modelo de decisión de permitir/bloquear estándar. En su lugar, el éxito o fallo del hook determina el resultado. El hook debe devolver la ruta al directorio del worktree creado:3213Los hooks WorktreeCreate no usan el modelo de decisión de permitir/bloquear estándar. En su lugar, el éxito o fallo del hook determina el resultado. El hook debe devolver la ruta al directorio del worktree creado:

3224 3214 

3225* **Hooks de comando** (`type: "command"`): imprima la ruta como la última línea no vacía de stdout. Claude Code elimina códigos de escape ANSI antes de leer esa línea, por lo que los banners de inicio de shell impresos antes de su `echo` se ignoran. Redirija cualquier otra salida de hook a stderr.3215* **Hooks de comando** (`type: "command"`): imprime la ruta como la última línea no vacía de stdout. Claude Code elimina códigos de escape ANSI antes de leer esa línea, así que los banners de inicio de shell impresos antes de tu `echo` se ignoran. Redirige cualquier otra salida del hook a stderr.

3226* **Hooks HTTP** (`type: "http"`): devuelva `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` en el cuerpo de la respuesta.3216* **Hooks HTTP** (`type: "http"`): devuelve `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` en el cuerpo de la respuesta.

3227 3217 

3228Si el hook falla o no produce una ruta, la creación del worktree falla con un error.3218Si el hook falla o no produce una ruta, la creación del worktree falla con un error.

3229 3219 

3230Claude Code resuelve una ruta relativa contra el directorio en el que se ejecutó el hook, colapsando cualquier segmento `.` o `..` en él. Si la ruta resultante no es un directorio en el que Claude Code pueda entrar, la sesión imprime un error que nombra la ruta y sale con código 1.3220Claude Code resuelve una ruta relativa contra el directorio en el que se ejecutó el hook, colapsando cualquier segmento `.` o `..` en él. Si la ruta resultante no es un directorio en el que Claude Code pueda entrar, la sesión imprime un error nombrando la ruta y sale con código 1.

3231 3221 

3232Claude Code rechaza una ruta absoluta que contiene segmentos `.` o `..`, y cualquier ruta que pase a través de un symlink debajo de la raíz del repositorio, porque un symlink comprometido en el repositorio podría redirigir el worktree fuera de él. El error nombra el componente rechazado. Devuelva una ruta normalizada que no pase a través de un symlink dentro del repositorio. Antes de v2.1.216, la creación del worktree seguía la ruta del hook sin este cribado.3222Claude Code rechaza una ruta absoluta que contiene segmentos `.` o `..`, y cualquier ruta que pase a través de un enlace simbólico por debajo de la raíz del repositorio, porque un enlace simbólico comprometido en el repositorio podría redirigir el worktree fuera de él. El error nombra el componente rechazado. Devuelve una ruta normalizada que no pase a través de un enlace simbólico dentro del repositorio. Antes de v2.1.216, la creación del worktree seguía la ruta del hook sin este cribado.

3233 3223 

3234<h3 id="worktreeremove">3224<h3 id="worktreeremove">

3235 WorktreeRemove3225 WorktreeRemove


3237 3227 

3238Se ejecuta cuando se está eliminando un worktree. Este es el homólogo de limpieza de [WorktreeCreate](#worktreecreate). El evento se dispara cuando:3228Se ejecuta cuando se está eliminando un worktree. Este es el homólogo de limpieza de [WorktreeCreate](#worktreecreate). El evento se dispara cuando:

3239 3229 

3240* sale de una sesión `--worktree` y elige eliminarla3230* sales de una sesión `--worktree` y eliges eliminarlo

3241* un subagente con `isolation: "worktree"` se completa3231* un subagente con `isolation: "worktree"` se completa

3242* elimina una [sesión de fondo](/docs/es/agent-view#what-deleting-a-session-removes) cuyo worktree creó el hook3232* eliminas una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) cuyo worktree creó el hook

3243 3233 

3244Para worktrees basados en git, Claude Code maneja la limpieza automáticamente con `git worktree remove`. Si configuró un hook WorktreeCreate para un sistema de control de versiones que no es git, emparéjelo con un hook WorktreeRemove para manejar la limpieza. Sin uno, el directorio del worktree se deja en el disco.3234Para worktrees basados en git, Claude Code maneja la limpieza automáticamente con `git worktree remove`. Si configuraste un hook WorktreeCreate para un sistema de control de versiones no git, emparéjalo con un hook WorktreeRemove para manejar la limpieza. Sin uno, el directorio del worktree se deja en el disco.

3245 3235 

3246Claude Code descarta los [campos de salida JSON](#json-output) de un hook WorktreeRemove, como `systemMessage` y `continue`.3236Claude Code descarta los [campos de salida JSON](#json-output) de un hook WorktreeRemove, como `systemMessage` y `continue`.

3247 3237 

3248Para una eliminación de sesión de fondo, Claude Code verifica la ruta del worktree almacenada antes de ejecutar el hook y rechaza una ruta que es un symlink o pasa a través de uno debajo de la raíz del repositorio. El hook se ejecuta para un worktree que aún contiene archivos solo cuando confirma la eliminación en [vista de agente](/docs/es/agent-view#what-deleting-a-session-removes); para tal worktree, [`claude rm`](/docs/es/agent-view#manage-sessions-from-the-shell) mantiene la sesión y el worktree en su lugar. Antes de v2.1.216, el hook se ejecutaba en la ruta almacenada sin estas verificaciones.3238Para una eliminación de sesión en segundo plano, Claude Code verifica la ruta del worktree almacenada antes de ejecutar el hook y rechaza una ruta que es un enlace simbólico o pasa a través de uno por debajo de la raíz del repositorio. El hook se ejecuta para un worktree que aún contiene archivos solo cuando confirmas la eliminación en [vista de agente](/docs/es/agent-view#what-deleting-a-session-removes); para tal worktree, [`claude rm`](/docs/es/agent-view#manage-sessions-from-the-shell) mantiene la sesión y el worktree en su lugar. Antes de v2.1.216, el hook se ejecutaba en la ruta almacenada sin estas verificaciones.

3249 3239 

3250Claude Code pasa la ruta devuelta por WorktreeCreate como `worktree_path` en la entrada del hook. Este ejemplo lee esa ruta y elimina el directorio:3240Claude Code pasa la ruta devuelta por WorktreeCreate como `worktree_path` en la entrada del hook. Este ejemplo lee esa ruta y elimina el directorio:

3251 3241 


3282}3272}

3283```3273```

3284 3274 

3285El código de salida de un hook WorktreeRemove decide el resultado. Cuando un hook sale con código distinto de cero y el directorio en `worktree_path` aún existe después, la eliminación falla:3275El código de salida de un hook WorktreeRemove decide el resultado. Cuando un hook sale con código no cero y el directorio en `worktree_path` aún existe después, la eliminación falla:

3286 3276 

3287* El worktree permanece en el disco, y el comando del hook y stderr van al [registro de depuración](#debug-hooks).3277* El worktree permanece en el disco, y el comando del hook y stderr van al [registro de depuración](#debug-hooks).

3288* Si estaba eliminando una sesión de fondo, la sesión también permanece. El mensaje de rechazo en [vista de agente](/docs/es/agent-view#what-deleting-a-session-removes) reporta cómo terminó el hook, como `exited 1`, cita el inicio de su stderr, y dice si eliminar la sesión nuevamente elimina el directorio de todas formas.3278* Si estabas eliminando una sesión en segundo plano, la sesión también permanece. El mensaje de rechazo en [vista de agente](/docs/es/agent-view#what-deleting-a-session-removes) reporta cómo terminó el hook, como `exited 1`, cita el inicio de su stderr, y dice si eliminar la sesión nuevamente elimina el directorio de todas formas.

3289 3279 

3290<h3 id="precompact">3280<h3 id="precompact">

3291 PreCompact3281 PreCompact


3293 3283 

3294Se ejecuta antes de que Claude Code esté a punto de ejecutar una operación de compactación.3284Se ejecuta antes de que Claude Code esté a punto de ejecutar una operación de compactación.

3295 3285 

3296El valor del matcher indica si la compactación fue disparada manualmente o automáticamente:3286El valor del matcher indica si la compactación fue activada manualmente o automáticamente:

3297 3287 

3298| Matcher | Cuándo se dispara |3288| Matcher | Cuándo se dispara |

3299| :- | :- |3289| :- | :- |

3300| `manual` | `/compact` |3290| `manual` | `/compact` |

3301| `auto` | Compactación automática cuando la conversación alcanza la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) |3291| `auto` | Compactación automática cuando la conversación alcanza la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) |

3302 3292 

3303Salga con código 2 para bloquear la compactación. Para un `/compact` manual, el mensaje stderr se muestra al usuario. También puede bloquear devolviendo JSON con `"decision": "block"`.3293Sale con código 2 para bloquear la compactación. Para un `/compact` manual, el mensaje stderr se muestra al usuario. También puedes bloquear devolviendo JSON con `"decision": "block"`.

3304 3294 

3305Bloquear la compactación automática tiene diferentes efectos dependiendo de cuándo se dispare. Si la compactación fue disparada de forma proactiva antes del límite de contexto, Claude Code la omite y la conversación continúa sin compactar. Si la compactación fue disparada para recuperarse de un error de límite de contexto ya devuelto por la API, el error subyacente surge y la solicitud actual falla.3295Bloquear compactación automática tiene diferentes efectos dependiendo de cuándo se dispare. Si la compactación fue activada de forma proactiva antes del límite de contexto, Claude Code la omite y la conversación continúa sin compactar. Si la compactación fue activada para recuperarse de un error de límite de contexto ya devuelto por la API, el error subyacente aparece y la solicitud actual falla.

3306 3296 

3307Claude Code descarta los campos `systemMessage` y `continue` de un hook PreCompact.3297Claude Code descarta los campos `systemMessage` y `continue` de un hook PreCompact.

3308 3298 


3310 Entrada de PreCompact3300 Entrada de PreCompact

3311</h4>3301</h4>

3312 3302 

3313Además de los [campos de entrada comunes](#common-input-fields), los hooks PreCompact reciben `trigger` e `custom_instructions`. Para `manual`, `custom_instructions` contiene lo que el usuario pasa a `/compact` y es `null` cuando no pasa nada. Para `auto`, `custom_instructions` es `null`.3303Además de los [campos de entrada comunes](#common-input-fields), los hooks PreCompact reciben `trigger` y `custom_instructions`. Para `manual`, `custom_instructions` contiene lo que el usuario pasa a `/compact` y es `null` cuando no pasa nada. Para `auto`, `custom_instructions` es `null`.

3314 3304 

3315```json theme={null}3305```json theme={null}

3316{3306{


3327 PostCompact3317 PostCompact

3328</h3>3318</h3>

3329 3319 

3330Se ejecuta después de que Claude Code completa una operación de compactación. Úselo para reaccionar al nuevo estado compactado, por ejemplo para registrar el resumen generado o actualizar el estado externo. Claude Code descarta los campos `systemMessage` y `continue` de un hook PostCompact.3320Se ejecuta después de que Claude Code completa una operación de compactación. Úsalo para reaccionar al nuevo estado compactado, por ejemplo para registrar el resumen generado o actualizar el estado externo. Claude Code descarta los campos `systemMessage` y `continue` de un hook PostCompact.

3331 3321 

3332Los mismos valores de matcher se aplican que para `PreCompact`:3322Los mismos valores de matcher se aplican que para `PreCompact`:

3333 3323 


3359 PreModelSwitch3349 PreModelSwitch

3360</h3>3350</h3>

3361 3351 

3362Se ejecuta antes de que Claude Code aplique un cambio de modelo que solicitó usted o un cliente. Úselo para bloquear un cambio, requerir confirmación o mostrar cuánto costará el cambio antes de que suceda.3352Se ejecuta antes de que Claude Code aplique un cambio de modelo que solicitaste o un cliente solicitó. Úsalo para bloquear un cambio, requerir confirmación o mostrar cuánto costará el cambio antes de que suceda.

3363 3353 

3364PreModelSwitch requiere Claude Code v2.1.251 o posterior. Claude Code lo ejecuta para estas solicitudes:3354PreModelSwitch requiere Claude Code v2.1.251 o posterior. Claude Code lo ejecuta para estas solicitudes:

3365 3355 


3367* El selector de modelo `Option+P` o `Alt+P`3357* El selector de modelo `Option+P` o `Alt+P`

3368* La configuración Model en `/config`3358* La configuración Model en `/config`

3369* Activar [modo rápido](/docs/es/fast-mode) cuando eso cambia el modelo de la sesión3359* Activar [modo rápido](/docs/es/fast-mode) cuando eso cambia el modelo de la sesión

3370* Una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un anfitrión [Agent SDK](/docs/es/agent-sdk/typescript#query-object) o [Control Remoto](/docs/es/remote-control)3360* Una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host [Agent SDK](/docs/es/agent-sdk/typescript#query-object) o [Control Remoto](/docs/es/remote-control)

3371 3361 

3372Claude Code no ejecuta hooks PreModelSwitch para cambios que realiza por su cuenta, como un [fallback de modelo automático](/docs/es/model-config#automatic-model-fallback) o restaurar el modelo cuando reanuda una sesión. Esos cambios llegan a [PostModelSwitch](#postmodelswitch) solo.3362Claude Code no ejecuta hooks PreModelSwitch para cambios que hace por su cuenta, como un [fallback de modelo automático](/docs/es/model-config#automatic-model-fallback) o restaurar el modelo cuando reanudas una sesión. Esos cambios llegan a [PostModelSwitch](#postmodelswitch) solo.

3373 3363 

3374Claude Code compara el matcher contra el nombre canónico del modelo al que la sesión está cambiando, ignorando cualquier sufijo `[1m]`. Un alias como `opus`, un ID de modelo fechado y un ID específico del proveedor como un ID de modelo de Amazon Bedrock todos coinciden con el único nombre canónico al que se resuelven, por lo que `claude-opus-5` cubre cada deletreo de Opus 5.3364Claude Code compara el matcher contra el nombre canónico del modelo al que la sesión está cambiando, ignorando cualquier sufijo `[1m]`. Un alias como `opus`, un ID de modelo fechado, y un ID específico del proveedor como un ID de modelo de Amazon Bedrock todos coinciden con el único nombre canónico al que se resuelven, así que `claude-opus-5` cubre cada deletreo de Opus 5.

3375 3365 

3376Cuando Claude Code no puede determinar un nombre canónico para el objetivo, por ejemplo un ID de modelo personalizado que solo su [puerta de enlace LLM](/docs/es/llm-gateway) conoce, ejecuta cada hook PreModelSwitch independientemente del matcher. Un hook que bloquea debe verificar `to_model` de su entrada en lugar de confiar solo en el matcher.3366Cuando Claude Code no puede determinar un nombre canónico para el objetivo, por ejemplo un ID de modelo personalizado que solo tu [puerta de enlace LLM](/docs/es/llm-gateway) conoce, ejecuta cada hook PreModelSwitch independientemente del matcher. Un hook que bloquea debe por lo tanto verificar `to_model` de su entrada en lugar de confiar solo en el matcher.

3377 3367 

3378Escriba el matcher como un nombre exacto, una lista separada por `|` como `claude-opus-4-6|claude-opus-5`, o una expresión regular como `.*opus.*`. Este ejemplo usa un matcher de nombre exacto y también verifica `to_model` de la entrada del hook, por lo que rechaza un cambio a Opus 4.6 saliendo con código 2 y permite cualquier otro objetivo:3368Escribe el matcher como un nombre exacto, una lista separada por `|` como `claude-opus-4-6|claude-opus-5`, o una expresión regular como `.*opus.*`. Este ejemplo usa un matcher de nombre exacto y también verifica `to_model` de la entrada del hook, así que rechaza un cambio a Opus 4.6 saliendo con código 2 y permite cualquier otro objetivo:

3379 3369 

3380<Tabs>3370<Tabs>

3381 <Tab title="macOS/Linux">3371 <Tab title="macOS/Linux">


3401 </Tab>3391 </Tab>

3402 3392 

3403 <Tab title="Windows (PowerShell)">3393 <Tab title="Windows (PowerShell)">

3404 Registre un hook de comando que ejecute un script a través de PowerShell:3394 Registra un hook de comando que ejecute un script a través de PowerShell:

3405 3395 

3406 ```json theme={null}3396 ```json theme={null}

3407 {3397 {


3428 }3418 }

3429 ```3419 ```

3430 3420 

3431 Guarde este script en `.claude/hooks/block-opus-46.ps1` en su proyecto:3421 Guarda este script en `.claude/hooks/block-opus-46.ps1` en tu proyecto:

3432 3422 

3433 ```powershell theme={null}3423 ```powershell theme={null}

3434 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3424 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json


3441 </Tab>3431 </Tab>

3442</Tabs>3432</Tabs>

3443 3433 

3444Para confirmar que el hook funciona, ejecute `/model claude-opus-4-6` desde una sesión que ejecuta un modelo diferente. Claude Code mantiene el modelo actual e informa que un hook PreModelSwitch bloqueó el cambio, con su mensaje como la razón.3434Para confirmar que el hook funciona, ejecuta `/model claude-opus-4-6` desde una sesión que ejecuta un modelo diferente. Claude Code mantiene el modelo actual e informa que un hook PreModelSwitch bloqueó el cambio, con tu mensaje como la razón.

3445 3435 

3446<h4 id="premodelswitch-input">3436<h4 id="premodelswitch-input">

3447 Entrada de PreModelSwitch3437 Entrada de PreModelSwitch

3448</h4>3438</h4>

3449 3439 

3450Además de los [campos de entrada comunes](#common-input-fields), los hooks PreModelSwitch reciben los campos en esta tabla. Los últimos cinco describen qué cuesta reenviar la conversación al nuevo modelo, para que un hook pueda mostrar esa cifra antes de que suceda el cambio.3440Además de los [campos de entrada comunes](#common-input-fields), los hooks PreModelSwitch reciben los campos en esta tabla. Los últimos cinco describen cuánto cuesta reenviar la conversación al nuevo modelo, para que un hook pueda mostrar esa cifra antes de que suceda el cambio.

3451 3441 

3452| Campo | Tipo | Descripción |3442| Campo | Tipo | Descripción |

3453| :- | :- | :- |3443| :- | :- | :- |

3454| `from_model` | string | ID de modelo del que cambia el cambio |3444| `from_model` | string | ID de modelo del que cambia el cambio |

3455| `to_model` | string | ID de modelo al que cambia el cambio. El matcher compara contra el nombre canónico de este modelo |3445| `to_model` | string | ID de modelo al que cambia el cambio. El matcher compara contra el nombre canónico de este modelo |

3456| `requested_model` | string o `null` | El modelo que la solicitud nombró: un alias como `opus`, un ID de modelo completo, o `null` cuando la solicitud fue para el modelo predeterminado |3446| `requested_model` | string o `null` | El modelo que la solicitud nombró: un alias como `opus`, un ID de modelo completo, o `null` cuando la solicitud fue para el modelo predeterminado |

3457| `source` | string | De dónde vino la solicitud: `"command"` para `/model <name>`, la configuración Model en `/config`, o activar modo rápido; `"picker"` para un selector de modelo; `"sdk"` para una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un anfitrión Agent SDK o Control Remoto |3447| `source` | string | De dónde vino la solicitud: `"command"` para `/model <name>`, la configuración Model en `/config`, o activar modo rápido; `"picker"` para un selector de modelo; `"sdk"` para una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un host Agent SDK o Control Remoto |

3458| `context_tokens` | number | Tokens que la siguiente solicitud reenvía como su prompt: los tokens de entrada, lectura de caché, creación de caché y salida de la última respuesta en la conversación principal, combinados. `0` antes de la primera respuesta |3448| `context_tokens` | number | Tokens que la siguiente solicitud reenvía como su prompt: los tokens de entrada, lectura de caché, creación de caché y salida de la última respuesta en la conversación principal, combinados. `0` antes de la primera respuesta |

3459| `prompt_cache_warm` | boolean | Si el caché de prompt del modelo actual probablemente aún esté caliente, lo que significa que el cambio lo pierde |3449| `prompt_cache_warm` | boolean | Si el caché de prompt del modelo actual probablemente aún está caliente, lo que significa que el cambio lo pierde |

3460| `cache_ttl` | string | [Duración de vida del caché de prompt](/docs/es/prompt-caching#cache-lifetime) que Claude Code solicita para esta sesión: `"5m"` o `"1h"` |3450| `cache_ttl` | string | [Duración del caché de prompt](/docs/es/prompt-caching#cache-lifetime) que Claude Code solicita para esta sesión: `"5m"` o `"1h"` |

3461| `estimated_cache_write_usd` | number | Costo estimado en dólares estadounidenses de escribir `context_tokens` en el caché de prompt en `to_model` a la tasa `cache_ttl`, excluyendo la siguiente respuesta. El servidor puede no necesitar re-cachear todo el contexto, así que trátelo como una estimación |3451| `estimated_cache_write_usd` | number | Costo estimado en dólares estadounidenses de escribir `context_tokens` en el caché de prompt en `to_model` a la tasa `cache_ttl`, excluyendo la siguiente respuesta. El servidor puede no necesitar re-cachear todo el contexto, así que trátalo como una estimación |

3462| `pricing` | string | Cómo Claude Code fijó el precio de `estimated_cache_write_usd`: `"configured"` a sus propias tasas de la organización cuando las ha configurado, `"catalog"` a precio de lista, o `"default"` cuando `to_model` no tiene precio conocido y Claude Code asumió una tasa predeterminada |3452| `pricing` | string | Cómo Claude Code fijó el precio de `estimated_cache_write_usd`: `"configured"` a tus propias tasas de la organización cuando las ha configurado, `"catalog"` a precio de lista, o `"default"` cuando `to_model` no tiene precio conocido y Claude Code asumió una tasa predeterminada |

3463 3453 

3464Este ejemplo muestra la entrada para `/model opus` en una sesión que ejecuta Sonnet 5:3454Este ejemplo muestra la entrada para `/model opus` en una sesión que ejecuta Sonnet 5:

3465 3455 


3487 3477 

3488Los hooks `PreModelSwitch` pueden cancelar el cambio, pedir al usuario que lo confirme, o permitir que continúe. El código de salida 2 o un `decision: "block"` de nivel superior cancela el cambio.3478Los hooks `PreModelSwitch` pueden cancelar el cambio, pedir al usuario que lo confirme, o permitir que continúe. El código de salida 2 o un `decision: "block"` de nivel superior cancela el cambio.

3489 3479 

3490Para un control más fino, devuelva `permissionDecision` y `permissionDecisionReason` en un objeto `hookSpecificOutput`, como en [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` acepta `"allow"`, `"deny"`, y `"ask"`. No acepta `"defer"`, `updatedInput`, o `additionalContext`. La tabla a continuación describe ambos campos:3480Para control más fino, devuelve `permissionDecision` y `permissionDecisionReason` en un objeto `hookSpecificOutput`, como en [PreToolUse](#pretooluse-decision-control). `PreModelSwitch` acepta `"allow"`, `"deny"`, y `"ask"`. No acepta `"defer"`, `updatedInput`, o `additionalContext`. La tabla a continuación describe ambos campos:

3491 3481 

3492| Campo | Descripción |3482| Campo | Descripción |

3493| :- | :- |3483| :- | :- |

3494| `permissionDecision` | `"allow"` continúa y omite la [confirmación que Claude Code muestra mientras el caché de prompt está caliente](/docs/es/prompt-caching#switching-models). `"deny"` cancela el cambio. `"ask"` solicita al usuario que lo confirme |3484| `permissionDecision` | `"allow"` continúa y omite la [confirmación que Claude Code muestra mientras el caché de prompt está caliente](/docs/es/prompt-caching#switching-models). `"deny"` cancela el cambio. `"ask"` solicita al usuario que lo confirme |

3495| `permissionDecisionReason` | Para `"deny"`, se muestra al usuario como la razón por la que se bloqueó el cambio, o se devuelve como el error para una solicitud `set_model`. Para `"ask"`, se muestra en el aviso de confirmación. Se ignora para `"allow"` |3485| `permissionDecisionReason` | Para `"deny"`, se muestra al usuario como la razón por la que se bloqueó el cambio, o se devuelve como el error para una solicitud `set_model`. Para `"ask"`, se muestra en el prompt de confirmación. Se ignora para `"allow"` |

3496 3486 

3497Solo `/model` en una sesión interactiva puede mostrar el aviso `"ask"`. En todas las otras superficies, incluido modo no interactivo con la bandera `-p`, `/config`, y solicitudes `set_model`, Claude Code trata `"ask"` como un rechazo.3487Solo `/model` en una sesión interactiva puede mostrar el prompt `"ask"`. En cada otra superficie, incluyendo modo no interactivo con la bandera `-p`, `/config`, y solicitudes `set_model`, Claude Code trata `"ask"` como un rechazo.

3498 3488 

3499Este ejemplo pide al usuario que confirme y cita el recuento de tokens de `context_tokens`:3489Este ejemplo pide al usuario que confirme y cita el recuento de tokens de `context_tokens`:

3500 3490 


3510 3500 

3511Cuando múltiples hooks PreModelSwitch devuelven decisiones diferentes, la precedencia es `deny` > `ask` > `allow`.3501Cuando múltiples hooks PreModelSwitch devuelven decisiones diferentes, la precedencia es `deny` > `ask` > `allow`.

3512 3502 

3513Claude Code muestra al usuario cualquier `systemMessage` que devuelva su hook independientemente de la decisión, por lo que un hook de informe de costos puede devolver `{"systemMessage": "..."}` y salir con 0.3503Claude Code muestra al usuario cualquier `systemMessage` que devuelva tu hook independientemente de la decisión, así que un hook de informe de costos puede devolver `{"systemMessage": "..."}` y salir 0.

3514 3504 

3515Un hook PreModelSwitch que no responde antes de su tiempo de espera bloquea el cambio. En [PreToolUse](#timeouts), por el contrario, un hook de comando que agota el tiempo de espera permite que la llamada de herramienta continúe. El tiempo de espera predeterminado para este evento es 30 segundos. `PreModelSwitch` ejecuta solo hooks `command`, `http`, y `mcp_tool`, por lo que los valores predeterminados `prompt` y `agent` no se aplican.3505Un hook PreModelSwitch que no responde antes de su tiempo de espera bloquea el cambio. En [PreToolUse](#timeouts), por el contrario, un hook de comando que agota el tiempo de espera permite que la llamada de herramienta continúe. El tiempo de espera predeterminado para este evento es 30 segundos. `PreModelSwitch` ejecuta solo hooks `command`, `http`, y `mcp_tool`, así que los valores predeterminados `prompt` y `agent` no se aplican.

3516 3506 

3517Un hook que sale con un código distinto de 0 o 2 y no imprime ninguna decisión JSON no bloquea: Claude Code muestra su stderr y aplica el cambio, como se describe en [Otros códigos de salida](#other-exit-codes).3507Un hook que sale con un código distinto de 0 o 2 y no imprime ninguna decisión JSON no bloquea: Claude Code muestra su stderr y aplica el cambio, como se describe en [Otros códigos de salida](#other-exit-codes).

3518 3508 


3520 PostModelSwitch3510 PostModelSwitch

3521</h3>3511</h3>

3522 3512 

3523Se ejecuta después de que cambia el modelo de la sesión. Úselo para dar orientación específica del modelo a Claude sin editar cada CLAUDE.md, por ejemplo una instrucción de toda la organización que se aplica en ciertos modelos.3513Se ejecuta después de que el modelo de la sesión cambia. Úsalo para dar orientación específica del modelo a Claude sin editar cada CLAUDE.md, por ejemplo una instrucción de toda la organización que se aplica en ciertos modelos.

3524 3514 

3525PostModelSwitch requiere Claude Code v2.1.251 o posterior. No puede bloquear, porque el modelo ya ha cambiado. Claude Code ejecuta hooks PostModelSwitch después de cualquiera de estos cambios:3515PostModelSwitch requiere Claude Code v2.1.251 o posterior. No puede bloquear, porque el modelo ya ha cambiado. Claude Code ejecuta hooks PostModelSwitch después de cualquiera de estos cambios:

3526 3516 

3527* Un cambio que solicitó usted o un cliente3517* Un cambio que solicitaste o un cliente solicitó

3528* Un [fallback de modelo automático](/docs/es/model-config#automatic-model-fallback), que cambia el modelo de la sesión3518* Un [fallback de modelo automático](/docs/es/model-config#automatic-model-fallback), que cambia el modelo de la sesión

3529* Una configuración como [`opusplan`](/docs/es/model-config#opusplan-model-setting) entrando o saliendo del modo de plan3519* Una configuración como [`opusplan`](/docs/es/model-config#opusplan-model-setting) entrando o saliendo del modo plan

3530* Claude Code restaurando el modelo cuando reanuda una sesión3520* Claude Code restaurando el modelo cuando reanudas una sesión

3531 3521 

3532Claude Code no ejecuta hooks PostModelSwitch cuando un modelo de una [cadena de modelo de fallback](/docs/es/model-config#fallback-model-chains) sirve un turno, porque esa sustitución dura un turno y deja el modelo de la sesión sin cambios.3522Claude Code no ejecuta hooks PostModelSwitch cuando un modelo de una [cadena de modelo de fallback](/docs/es/model-config#fallback-model-chains) sirve un turno, porque esa sustitución dura un turno y deja el modelo de la sesión sin cambios.

3533 3523 

3534El matcher sigue las mismas reglas que [PreModelSwitch](#premodelswitch): Claude Code compara contra el nombre canónico del modelo al que la sesión cambió.3524El matcher sigue las mismas reglas que [PreModelSwitch](#premodelswitch): Claude Code compara contra el nombre canónico del modelo al que la sesión cambió.

3535 3525 

3536Este ejemplo agrega orientación siempre que el modelo de la sesión cambia a cualquier modelo Opus:3526Este ejemplo añade orientación siempre que el modelo de la sesión cambia a cualquier modelo Opus:

3537 3527 

3538```json theme={null}3528```json theme={null}

3539{3529{


3553}3543}

3554```3544```

3555 3545 

3556Para confirmar que el hook funciona, cambie a un modelo Opus desde una sesión que ejecuta un modelo diferente, por ejemplo ejecute `/model opus` desde una sesión Sonnet, luego pregunte a Claude qué orientación tiene sobre el modelo actual.3546Para confirmar que el hook funciona, cambia a un modelo Opus desde una sesión que ejecuta un modelo diferente, por ejemplo ejecuta `/model opus` desde una sesión Sonnet, luego pregúntale a Claude qué orientación tiene sobre el modelo actual.

3557 3547 

3558<h4 id="postmodelswitch-input">3548<h4 id="postmodelswitch-input">

3559 Entrada de PostModelSwitch3549 Entrada de PostModelSwitch

3560</h4>3550</h4>

3561 3551 

3562Los hooks PostModelSwitch reciben los mismos campos que [PreModelSwitch](#premodelswitch-input), con `hook_event_name` establecido en `"PostModelSwitch"` y dos valores `source` más: `"auto"` para un fallback automático u otro cambio que Claude Code realizó por su cuenta, y `"resume"` para el modelo restaurado cuando reanuda una sesión.3552Los hooks PostModelSwitch reciben los mismos campos que [PreModelSwitch](#premodelswitch-input), con `hook_event_name` establecido en `"PostModelSwitch"` y dos valores `source` más: `"auto"` para un fallback automático u otro cambio que Claude Code hizo por su cuenta, y `"resume"` para el modelo restaurado cuando reanudas una sesión.

3563 3553 

3564`requested_model` es `null` cuando `source` es `"auto"`. Cuando `source` es `"resume"`, es la configuración de modelo guardada que Claude Code restauró.3554`requested_model` es `null` cuando `source` es `"auto"`. Cuando `source` es `"resume"`, es la configuración de modelo guardada que Claude Code restauró.

3565 3555 


3567 Control de decisión de PostModelSwitch3557 Control de decisión de PostModelSwitch

3568</h4>3558</h4>

3569 3559 

3570Claude Code toma su stdout de texto plano del hook [](#exit-code-0) en salida 0, o `additionalContext` de salida JSON, y lo entrega a Claude con la siguiente solicitud después del cambio. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puede devolver:3560Claude Code toma tu stdout de texto plano del hook en salida 0, o `additionalContext` de salida JSON, y lo entrega a Claude con la siguiente solicitud después del cambio. Además de los [campos de salida JSON](#json-output) disponibles para todos los hooks, puedes devolver:

3571 3561 

3572| Campo | Descripción |3562| Campo | Descripción |

3573| :- | :- |3563| :- | :- |

3574| `additionalContext` | Cadena agregada al contexto de Claude con la siguiente solicitud. Consulte [Agregar contexto para Claude](#add-context-for-claude) |3564| `additionalContext` | Cadena añadida al contexto de Claude con la siguiente solicitud. Consulta [Añadir contexto para Claude](#add-context-for-claude) |

3575 3565 

3576Si el hook no se ha completado dentro de cinco segundos después de que envía la siguiente solicitud, Claude Code envía esa solicitud sin la salida y la adjunta a la siguiente solicitud en su lugar. Si el modelo cambia varias veces antes de la siguiente solicitud, Claude Code entrega solo la salida para el modelo de destino del último cambio.3566Si el hook no se ha completado dentro de cinco segundos después de que envíes la siguiente solicitud, Claude Code envía esa solicitud sin la salida y la adjunta a la siguiente solicitud en su lugar. Si el modelo cambia varias veces antes de la siguiente solicitud, Claude Code entrega solo la salida para el cambio del modelo objetivo final.

3577 3567 

3578<h3 id="sessionend">3568<h3 id="sessionend">

3579 SessionEnd3569 SessionEnd

3580</h3>3570</h3>

3581 3571 

3582Se ejecuta cuando termina una sesión de Claude Code. Útil para tareas de limpieza, registro de estadísticas de sesión o guardado del estado de sesión. Admite matchers para filtrar por razón de salida.3572Se ejecuta cuando termina una sesión de Claude Code. Útil para tareas de limpieza, registrar estadísticas de sesión o guardar estado de sesión. Admite matchers para filtrar por razón de salida.

3583 3573 

3584El campo `reason` en la entrada del hook indica por qué terminó la sesión:3574El campo `reason` en la entrada del hook indica por qué terminó la sesión:

3585 3575 


3590| `logout` | Usuario cerró sesión |3580| `logout` | Usuario cerró sesión |

3591| `prompt_input_exit` | Usuario salió mientras la entrada de prompt era visible |3581| `prompt_input_exit` | Usuario salió mientras la entrada de prompt era visible |

3592| `other` | Otras razones de salida |3582| `other` | Otras razones de salida |

3593| `bypass_permissions_disabled` | Eliminado en v2.1.234; Claude Code no lo envía. Elimine de sus matchers `SessionEnd` |3583| `bypass_permissions_disabled` | Eliminado en v2.1.234; Claude Code no lo envía. Elimina de tus matchers `SessionEnd` |

3594 3584 

3595<h4 id="sessionend-input">3585<h4 id="sessionend-input">

3596 Entrada de SessionEnd3586 Entrada de SessionEnd

3597</h4>3587</h4>

3598 3588 

3599Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionEnd reciben un campo `reason` que indica por qué terminó la sesión. Consulte la [tabla de razones](#sessionend) anterior para todos los valores.3589Además de los [campos de entrada comunes](#common-input-fields), los hooks SessionEnd reciben un campo `reason` indicando por qué terminó la sesión. Consulta la [tabla de razones](#sessionend) anterior para todos los valores.

3600 3590 

3601```json theme={null}3591```json theme={null}

3602{3592{


3608}3598}

3609```3599```

3610 3600 

3611Los hooks SessionEnd no tienen control de decisión. No pueden bloquear la terminación de la sesión pero pueden realizar tareas de limpieza. Claude Code descarta sus [campos de salida JSON](#json-output), como `systemMessage`.3601Los hooks SessionEnd no tienen control de decisión. No pueden bloquear la terminación de sesión pero pueden realizar tareas de limpieza. Claude Code descarta sus [campos de salida JSON](#json-output), como `systemMessage`.

3612 3602 

3613Los hooks SessionEnd tienen un tiempo de espera predeterminado de 1.5 segundos. Se aplica cuando sale, ejecuta `/clear`, o cambia sesiones con `/resume` interactivo. Puede dar a un hook más tiempo de dos formas:3603Los hooks SessionEnd tienen un tiempo de espera predeterminado de 1.5 segundos. Se aplica cuando sales, ejecutas `/clear`, o cambias sesiones con `/resume` interactivo. Puedes dar a un hook más tiempo de dos formas:

3614 3604 

3615* **`timeout` por hook**: establezca `timeout` en la configuración de ese hook. El presupuesto general se eleva automáticamente para coincidir con el `timeout` por hook más alto en sus archivos de configuración, hasta 60 segundos. Si eleva el presupuesto de esta manera, un hook sin su propio `timeout` aún mantiene el predeterminado. Los tiempos de espera establecidos en hooks proporcionados por plugins no elevan el presupuesto.3605* **`timeout` por hook**: establece `timeout` en la configuración de ese hook. El presupuesto general sube automáticamente para coincidir con el `timeout` por hook más alto en tus archivos de configuración, hasta 60 segundos. Si subes el presupuesto de esta forma, un hook sin su propio `timeout` aún mantiene el predeterminado. Los tiempos de espera establecidos en hooks proporcionados por plugins no suben el presupuesto.

3616* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: establezca esta variable de entorno en milisegundos para anular el presupuesto explícitamente. El valor que establezca también se convierte en el tiempo de espera para cada hook sin su propio `timeout`.3606* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: establece esta variable de entorno en milisegundos para anular el presupuesto explícitamente. El valor que estableces también se convierte en el tiempo de espera para cada hook sin su propio `timeout`.

3617 3607 

3618Este ejemplo establece el presupuesto en 5 segundos:3608Este ejemplo establece el presupuesto a 5 segundos:

3619 3609 

3620```bash theme={null}3610```bash theme={null}

3621CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3611CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3622```3612```

3623 3613 

3624Antes de v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` solo elevaba el presupuesto general, y un hook sin su propio `timeout` aún se cancelaba después de 1.5 segundos.3614Antes de v2.1.268, `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` solo subía el presupuesto general, y un hook sin su propio `timeout` aún se cancelaba después de 1.5 segundos.

3625 3615 

3626<h3 id="elicitation">3616<h3 id="elicitation">

3627 Elicitation3617 Elicitation

3628</h3>3618</h3>

3629 3619 

3630Se ejecuta cuando un servidor MCP solicita entrada del usuario a mitad de tarea. De forma predeterminada, Claude Code muestra un diálogo interactivo para que el usuario responda. Los hooks pueden interceptar esta solicitud y responder programáticamente, omitiendo completamente el diálogo.3620Se ejecuta cuando un servidor MCP solicita entrada del usuario a mitad de tarea. Por defecto, Claude Code muestra un diálogo interactivo para que el usuario responda. Los hooks pueden interceptar esta solicitud y responder programáticamente, omitiendo completamente el diálogo.

3631 3621 

3632El campo matcher coincide contra el nombre del servidor MCP.3622El campo matcher coincide contra el nombre del servidor MCP.

3633 3623 


3637 3627 

3638Además de los [campos de entrada comunes](#common-input-fields), los hooks Elicitation reciben `mcp_server_name`, `message`, y campos opcionales `mode`, `url`, `elicitation_id`, y `requested_schema`.3628Además de los [campos de entrada comunes](#common-input-fields), los hooks Elicitation reciben `mcp_server_name`, `message`, y campos opcionales `mode`, `url`, `elicitation_id`, y `requested_schema`.

3639 3629 

3640Para elicitación de modo de formulario, el caso más común:3630Para elicitación de modo formulario, el caso más común:

3641 3631 

3642```json theme={null}3632```json theme={null}

3643{3633{


3676 Salida de Elicitation3666 Salida de Elicitation

3677</h4>3667</h4>

3678 3668 

3679Para responder programáticamente sin mostrar el diálogo, devuelva un objeto JSON con `hookSpecificOutput`:3669Para responder programáticamente sin mostrar el diálogo, devuelve un objeto JSON con `hookSpecificOutput`:

3680 3670 

3681```json theme={null}3671```json theme={null}

3682{3672{


3695| `action` | `accept`, `decline`, `cancel` | Si aceptar, rechazar o cancelar la solicitud |3685| `action` | `accept`, `decline`, `cancel` | Si aceptar, rechazar o cancelar la solicitud |

3696| `content` | object | Valores de campo de formulario a enviar. Solo se usa cuando `action` es `accept` |3686| `content` | object | Valores de campo de formulario a enviar. Solo se usa cuando `action` es `accept` |

3697 3687 

3698El código de salida 2 deniega la elicitación. Claude Code no muestra su mensaje stderr en ningún lugar.3688El código de salida 2 niega la elicitación. Claude Code no muestra tu mensaje stderr en ningún lugar.

3699 3689 

3700Claude Code actúa sobre `hookSpecificOutput` de la salida JSON de un hook Elicitation y descarta `systemMessage` y `continue`.3690Claude Code actúa sobre `hookSpecificOutput` de la salida JSON de un hook Elicitation y descarta `systemMessage` y `continue`.

3701 3691 


3703 ElicitationResult3693 ElicitationResult

3704</h3>3694</h3>

3705 3695 

3706Se ejecuta después de que un usuario responde a una elicitación de MCP. Los hooks pueden observar, modificar o bloquear la respuesta antes de que se devuelva al servidor MCP.3696Se ejecuta después de que un usuario responda a una elicitación de MCP. Los hooks pueden observar, modificar o bloquear la respuesta antes de que se devuelva al servidor MCP.

3707 3697 

3708El campo matcher coincide contra el nombre del servidor MCP.3698El campo matcher coincide contra el nombre del servidor MCP.

3709 3699 


3731 Salida de ElicitationResult3721 Salida de ElicitationResult

3732</h4>3722</h4>

3733 3723 

3734Para anular la respuesta del usuario, devuelva un objeto JSON con `hookSpecificOutput`:3724Para anular la respuesta del usuario, devuelve un objeto JSON con `hookSpecificOutput`:

3735 3725 

3736```json theme={null}3726```json theme={null}

3737{3727{


3746| Campo | Valores | Descripción |3736| Campo | Valores | Descripción |

3747| :- | :- | :- |3737| :- | :- | :- |

3748| `action` | `accept`, `decline`, `cancel` | Anula la acción del usuario |3738| `action` | `accept`, `decline`, `cancel` | Anula la acción del usuario |

3749| `content` | object | Anula los valores del campo de formulario. Solo significativo cuando `action` es `accept` |3739| `content` | object | Anula valores de campo de formulario. Solo significativo cuando `action` es `accept` |

3750 3740 

3751El código de salida 2 bloquea la respuesta, cambiando la acción efectiva a `decline`. Claude Code no muestra su mensaje stderr en ningún lugar.3741El código de salida 2 bloquea la respuesta, cambiando la acción efectiva a `decline`. Claude Code no muestra tu mensaje stderr en ningún lugar.

3752 3742 

3753Claude Code actúa sobre `hookSpecificOutput` de la salida JSON de un hook ElicitationResult y descarta `systemMessage` y `continue`.3743Claude Code actúa sobre `hookSpecificOutput` de la salida JSON de un hook ElicitationResult y descarta `systemMessage` y `continue`.

3754 3744 


3804 3794 

3805En lugar de ejecutar un comando Bash, los hooks basados en prompts:3795En lugar de ejecutar un comando Bash, los hooks basados en prompts:

3806 3796 

38071. Envían la entrada del hook y su prompt a un modelo Claude, Haiku por defecto37971. Envían la entrada del hook y su prompt a un modelo Claude, por defecto el que Claude Code usa para [funcionalidad en segundo plano](/docs/es/costs#background-token-usage)

38082. El LLM responde con JSON estructurado que contiene una decisión37982. El LLM responde con JSON estructurado que contiene una decisión

38093. Claude Code procesa la decisión automáticamente37993. Claude Code procesa la decisión automáticamente

3810 3800 


3837| :- | :- | :- |3827| :- | :- | :- |

3838| `type` | sí | Debe ser `"prompt"` |3828| `type` | sí | Debe ser `"prompt"` |

3839| `prompt` | sí | El texto del prompt a enviar al LLM. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Si `$ARGUMENTS` no está presente, la entrada JSON se agrega al prompt |3829| `prompt` | sí | El texto del prompt a enviar al LLM. Use `$ARGUMENTS` como marcador de posición para la entrada JSON del hook. Si `$ARGUMENTS` no está presente, la entrada JSON se agrega al prompt |

3840| `model` | no | Modelo a usar para evaluación. Por defecto es un modelo rápido |3830| `model` | no | Modelo a usar para evaluación. Por defecto es el modelo que Claude Code usa para [funcionalidad en segundo plano](/docs/es/costs#background-token-usage) |

3841| `timeout` | no | Tiempo de espera en segundos. Predeterminado: 30 |3831| `timeout` | no | Tiempo de espera en segundos. Predeterminado: 30 |

3842| `continueOnBlock` | no | En los eventos a los que se aplica, `true` retroalimenta una razón `ok: false` a Claude y continúa en lugar de terminar el turno. Predeterminado: `false`. Consulte [Esquema de respuesta](#response-schema) para el comportamiento por evento |3832| `continueOnBlock` | no | En los eventos a los que se aplica, `true` retroalimenta una razón `ok: false` a Claude y continúa en lugar de terminar el turno. Predeterminado: `false`. Consulte [Esquema de respuesta](#response-schema) para el comportamiento por evento |

3843 3833 

hooks-guide.md +3 −3

Details

538Cada hook tiene un `type` que determina cómo se ejecuta. La mayoría de los hooks usan `"type": "command"`, que ejecuta un comando de shell. Hay otros cuatro tipos disponibles:538Cada hook tiene un `type` que determina cómo se ejecuta. La mayoría de los hooks usan `"type": "command"`, que ejecuta un comando de shell. Hay otros cuatro tipos disponibles:

539 539 

540* `"type": "http"`: POST de datos de evento a una URL. Consulta [HTTP hooks](#http-hooks).540* `"type": "http"`: POST de datos de evento a una URL. Consulta [HTTP hooks](#http-hooks).

541* `"type": "mcp_tool"`: llamar a una herramienta en un servidor MCP ya conectado. Consulta [MCP tool hooks](/docs/es/hooks#mcp-tool-hook-fields).541* `"type": "mcp_tool"`: llamar a una herramienta en un servidor MCP configurado. Consulta [MCP tool hooks](/docs/es/hooks#mcp-tool-hook-fields).

542* `"type": "prompt"`: evaluación LLM de un solo turno. Consulta [Prompt-based hooks](#prompt-based-hooks).542* `"type": "prompt"`: evaluación LLM de un solo turno. Consulta [Prompt-based hooks](#prompt-based-hooks).

543* `"type": "agent"`: verificación multi-turno con acceso a herramientas. Los hooks de agente son experimentales y pueden cambiar. Consulta [Agent-based hooks](#agent-based-hooks).543* `"type": "agent"`: verificación multi-turno con acceso a herramientas. Los hooks de agente son experimentales y pueden cambiar. Consulta [Agent-based hooks](#agent-based-hooks).

544 544 


880 Hooks basados en prompts880 Hooks basados en prompts

881</h2>881</h2>

882 882 

883Para decisiones que requieren criterio en lugar de reglas deterministas, usa hooks `type: "prompt"`. En lugar de ejecutar un comando de shell, Claude Code envía tu prompt y los datos de entrada del hook a un modelo Claude (Haiku por defecto) para tomar la decisión. Puedes especificar un modelo diferente con el campo `model` si necesitas más capacidad.883Para decisiones que requieren criterio en lugar de reglas deterministas, usa hooks `type: "prompt"`. En lugar de ejecutar un comando de shell, Claude Code envía tu prompt y los datos de entrada del hook a un modelo Claude para tomar la decisión. Puedes especificar un modelo diferente con el campo `model` si necesitas más capacidad.

884 884 

885El único trabajo del modelo es devolver su decisión como JSON:885El único trabajo del modelo es devolver su decisión como JSON:

886 886 


995 995 

996Tenga en cuenta estas restricciones al diseñar hooks:996Tenga en cuenta estas restricciones al diseñar hooks:

997 997 

998* Los hooks de comando se comunican solo a través de stdout, stderr y códigos de salida. No pueden activar comandos `/` o llamadas a herramientas. El texto devuelto a través de `additionalContext` se inyecta como un recordatorio del sistema que Claude lee como texto plano. Los HTTP hooks se comunican a través del cuerpo de respuesta en su lugar.998* Los hooks de comando se comunican solo a través de stdout, stderr y códigos de salida. No pueden activar comandos `/` o llamadas a herramientas. El texto devuelto a través de `additionalContext` se inyecta como un [recordatorio del sistema](/docs/es/glossary#system-reminder) que Claude lee como texto plano. Los HTTP hooks se comunican a través del cuerpo de respuesta en su lugar.

999* Los tiempos de espera del hook varían según el tipo. Anule por hook con el campo `timeout` en segundos.999* Los tiempos de espera del hook varían según el tipo. Anule por hook con el campo `timeout` en segundos.

1000 * `command`, `http`, `mcp_tool`: 10 minutos. Claude Code reduce estos valores predeterminados a 30 segundos para los hooks `UserPromptSubmit`, `PreModelSwitch` y `PostModelSwitch`, y a 10 segundos para `MessageDisplay`.1000 * `command`, `http`, `mcp_tool`: 10 minutos. Claude Code reduce estos valores predeterminados a 30 segundos para los hooks `UserPromptSubmit`, `PreModelSwitch` y `PostModelSwitch`, y a 10 segundos para `MessageDisplay`.

1001 * `prompt`: 30 segundos.1001 * `prompt`: 30 segundos.

Details

144 144 

145Para un recorrido interactivo de qué se carga y cuándo, consulte [Explorar la ventana de contexto](/docs/es/context-window).145Para un recorrido interactivo de qué se carga y cuándo, consulte [Explorar la ventana de contexto](/docs/es/context-window).

146 146 

147<h4 id="context-claude-code-adds-on-its-own">

148 Contexto que Claude Code agrega por su cuenta

149</h4>

150 

151Si Claude sigue una regla que usted no escribió, como agregar un remolque `Co-Authored-By` a una confirmación, la regla puede haber venido de un [recordatorio del sistema](/docs/es/glossary#system-reminder). A medida que trabaja, Claude Code agrega su propio contexto a la conversación junto con sus mensajes:

152 

153* Sus archivos CLAUDE.md

154* Las instrucciones de su [estilo de salida](/docs/es/output-styles)

155* Una nota cuando un archivo que Claude leyó anteriormente cambia en el disco

156* Las líneas de atribución de confirmación y solicitud de extracción

157 

158Para cambiar o eliminar las líneas de atribución, establezca [`attribution`](/docs/es/settings-reference#attribution). Para eliminar las instrucciones integradas de confirmación y solicitud de extracción de Claude Code, establezca [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) en `false`. Para los otros interruptores, consulte [Desactivar el contexto que su agente reemplaza](/docs/es/agent-sdk/modifying-system-prompts#turn-off-the-context-your-agent-replaces).

159 

147<h4 id="when-context-fills-up">160<h4 id="when-context-fills-up">

148 Cuando el contexto se llena161 Cuando el contexto se llena

149</h4>162</h4>


188 201 

189Elija un modo de permiso para establecer qué puede hacer Claude sin preguntarle. Presione `Shift+Tab` para ciclar a través de los modos de permiso:202Elija un modo de permiso para establecer qué puede hacer Claude sin preguntarle. Presione `Shift+Tab` para ciclar a través de los modos de permiso:

190 203 

191* **Auto**: un clasificador revisa la mayoría de las acciones en segundo plano y bloquea las arriesgadas en lugar de preguntarle. En los planes Pro, Max y Team, es el [modo de permiso inicial integrado](/docs/es/permission-modes#which-mode-a-session-starts-in) para sesiones interactivas de terminal y VS Code204* **Auto**: un clasificador revisa la mayoría de las acciones en segundo plano y bloquea las arriesgadas en lugar de preguntarle. Con Claude Code v2.1.283 o posterior, es el [modo de permiso inicial integrado](/docs/es/permission-modes#which-mode-a-session-starts-in) para sesiones interactivas de terminal y VS Code, y en versiones anteriores solo en planes Pro, Max y Team

192* **Manual**: Claude pregunta antes de ediciones de archivo y comandos de shell205* **Manual**: Claude pregunta antes de ediciones de archivo y comandos de shell

193* **Accept edits**: Claude edita archivos y ejecuta comandos comunes del sistema de archivos como `mkdir` y `mv` sin preguntar, aún pregunta por otros comandos206* **Accept edits**: Claude edita archivos y ejecuta comandos comunes del sistema de archivos como `mkdir` y `mv` sin preguntar, aún pregunta por otros comandos

194* **Plan**: Claude explora y propone un plan sin editar sus archivos fuente207* **Plan**: Claude explora y propone un plan sin editar sus archivos fuente


241Puede redirigir a Claude en cualquier momento sin comenzar de nuevo. Haga cualquiera de estas cosas:254Puede redirigir a Claude en cualquier momento sin comenzar de nuevo. Haga cualquiera de estas cosas:

242 255 

243* **Presione `Esc`** para detener a Claude inmediatamente. La llamada de herramienta en ejecución se cancela y Claude espera su siguiente instrucción. Si tiene mensajes en cola, Claude Code [los envía a continuación](/docs/es/interactive-mode#queue-messages-while-claude-works).256* **Presione `Esc`** para detener a Claude inmediatamente. La llamada de herramienta en ejecución se cancela y Claude espera su siguiente instrucción. Si tiene mensajes en cola, Claude Code [los envía a continuación](/docs/es/interactive-mode#queue-messages-while-claude-works).

244* **Escriba una corrección y presione `Enter`** sin detener a Claude. El mensaje se muestra en cola encima del cuadro de entrada. Si Claude está ejecutando llamadas de herramienta, lee el mensaje tan pronto como esas llamadas se completen, dentro del mismo turno, y se ajusta antes de su siguiente paso. [Enviar mensajes en cola mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works) cubre cuándo se envían otras entradas en cola.257* **Escriba una corrección y presione `Enter`** sin detener a Claude. El mensaje se muestra en cola en la conversación. Si Claude está ejecutando llamadas de herramienta, lee el mensaje tan pronto como esas llamadas se completen, dentro del mismo turno, y se ajusta antes de su siguiente paso. [Enviar mensajes en cola mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works) cubre cuándo se envían otras entradas en cola.

245 258 

246<h3 id="delegate-don’t-dictate">259<h3 id="delegate-don’t-dictate">

247 Delegue, no dicte260 Delegue, no dicte

Details

34| `Ctrl+T` | Alternar lista de tareas de Claude | Mostrar u ocultar [lista de tareas pendientes de Claude](#task-list) en el área de estado. Esta no es la vista de tareas en segundo plano; use [`/tasks`](/docs/es/commands) para ver shells y subagentes en ejecución |34| `Ctrl+T` | Alternar lista de tareas de Claude | Mostrar u ocultar [lista de tareas pendientes de Claude](#task-list) en el área de estado. Esta no es la vista de tareas en segundo plano; use [`/tasks`](/docs/es/commands) para ver shells y subagentes en ejecución |

35| `Ctrl+S` | Guardar o restaurar símbolo del sistema | Con texto en la entrada, lo guarda y borra el símbolo del sistema. Presionado nuevamente en un símbolo del sistema vacío, restaura el texto guardado, la posición del cursor, el contenido pegado y el modo de entrada, por lo que un `!` guardado [comando shell](#shell-mode-with-prefix) vuelve en modo shell |35| `Ctrl+S` | Guardar o restaurar símbolo del sistema | Con texto en la entrada, lo guarda y borra el símbolo del sistema. Presionado nuevamente en un símbolo del sistema vacío, restaura el texto guardado, la posición del cursor, el contenido pegado y el modo de entrada, por lo que un `!` guardado [comando shell](#shell-mode-with-prefix) vuelve en modo shell |

36| `Ctrl+Z` | Suspender Claude Code | Solo Unix. Suspende el proceso a su shell; ejecute `fg` para reanudar |36| `Ctrl+Z` | Suspender Claude Code | Solo Unix. Suspende el proceso a su shell; ejecute `fg` para reanudar |

37| `Flechas izquierda/derecha` | Ciclar a través de pestañas de diálogo | Navegue entre pestañas en diálogos de permisos y menús |37| `Flechas izquierda/derecha` | Ciclar a través de pestañas de diálogo | Navegue entre pestañas en diálogos de permisos y menús. En un diálogo con pestañas, las teclas cambian de pestaña mientras la fila de pestañas tiene el foco. Consulte [Acciones de pestañas](/docs/es/keybindings#tabs-actions) para ver cómo se mueve el foco |

38| `Tab` | Aceptar una sugerencia de autocompletado o agregar un comentario a una respuesta de permiso | Mientras se muestran sugerencias de autocompletado en la entrada del símbolo del sistema, acepta la sugerencia seleccionada. En la mayoría de los avisos de permiso, con **Sí** o **No** enfocado, abre un campo de comentario en esa opción, y presionarlo nuevamente cierra el campo. Consulte [agregar un comentario cuando responde a un aviso de permiso](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) |38| `Tab` | Aceptar una sugerencia de autocompletado o agregar un comentario a una respuesta de permiso | Mientras se muestran sugerencias de autocompletado en la entrada del símbolo del sistema, acepta la sugerencia seleccionada. En la mayoría de los avisos de permiso, con **Sí** o **No** enfocado, abre un campo de comentario en esa opción, y presionarlo nuevamente cierra el campo. Consulte [agregar un comentario cuando responde a un aviso de permiso](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

39| `Flechas arriba/abajo` o `Ctrl+P`/`Ctrl+N` | Mover cursor o navegar por el historial de comandos | Cuando la entrada abarca más de una fila visual, ya sea envuelta o multilínea, primero mueve el cursor dentro del símbolo del sistema. Una vez que el cursor está en la primera o última fila visual, presionar nuevamente navega por el historial de comandos. Mientras tiene mensajes en cola, `Arriba` desde la primera fila en su lugar [los retira](#take-back-what-you-queued) |39| `Flechas arriba/abajo` o `Ctrl+P`/`Ctrl+N` | Mover cursor o navegar por el historial de comandos | Cuando la entrada abarca más de una fila visual, ya sea envuelta o multilínea, primero mueve el cursor dentro del símbolo del sistema. Una vez que el cursor está en la primera o última fila visual, presionar nuevamente navega por el historial de comandos. Mientras tiene mensajes en cola, `Arriba` desde la primera fila en su lugar [los retira](#take-back-what-you-queued) |

40| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. Mientras un elemento de pie de página está seleccionado, como una fila en el [panel de subagentes](/docs/es/sub-agents#run-subagents-in-foreground-or-background) debajo del símbolo del sistema, `Esc` [lo deselecciona](/docs/es/keybindings#footer-actions) en lugar de interrumpir. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

41| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del símbolo del sistema contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Arriba` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](/docs/es/checkpointing) para restaurar o resumir código y conversación desde un punto anterior |41| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del símbolo del sistema contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Arriba` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](/docs/es/checkpointing) para restaurar o resumir código y conversación desde un punto anterior |

42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Envía sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos de inmediato. [Cuando Claude Code envía lo que puso en cola](#when-claude-code-sends-what-you-queued) cubre lo que sucede con el turno en el que Claude está trabajando. En [modo shell](#shell-mode-with-prefix), la tecla solo pone en cola su comando. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |

43| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](/docs/es/permission-modes). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |43| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](/docs/es/permission-modes). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |

44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |

45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. No tiene efecto en Opus 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. No tiene efecto en Opus 5.5, Sonnet 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |

46| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/docs/es/fast-mode) |46| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/docs/es/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">


235| Comando | Acción |235| Comando | Acción |

236| :- | :- |236| :- | :- |

237| `x` | Eliminar carácter |237| `x` | Eliminar carácter |

238| `r{char}` | Reemplazar carácter bajo el cursor con `{char}` |

238| `dd` | Eliminar línea |239| `dd` | Eliminar línea |

239| `D` | Eliminar hasta el final de la línea |240| `D` | Eliminar hasta el final de la línea |

240| `dw`/`de`/`db` | Eliminar palabra/hasta el final/hacia atrás |241| `dw`/`de`/`db` | Eliminar palabra/hasta el final/hacia atrás |

241| `df{char}`/`dt{char}` | Eliminar hasta e incluyendo, o hasta, la siguiente ocurrencia de un carácter |242| `df{char}`/`dt{char}` | Eliminar hasta e incluyendo, o hasta, la siguiente ocurrencia de un carácter |

243| `dj`/`dk` | Eliminar la línea actual y la línea debajo o arriba |

244| `dgg`/`dG` | Eliminar desde la línea actual hasta la primera o última línea |

245| `d0`/`c0`/`y0` | Eliminar, cambiar o yanquear desde el cursor hacia atrás hasta el principio de la línea. Requiere Claude Code v2.1.281 o posterior |

242| `cc` | Cambiar línea |246| `cc` | Cambiar línea |

243| `C` | Cambiar hasta el final de la línea |247| `C` | Cambiar hasta el final de la línea |

244| `cw`/`ce`/`cb` | Cambiar palabra/hasta el final/hacia atrás |248| `cw`/`ce`/`cb` | Cambiar palabra/hasta el final/hacia atrás |


342* Indicar a Claude Code que ejecute un comando en segundo plano346* Indicar a Claude Code que ejecute un comando en segundo plano

343* Presionar `Ctrl+B` para mover una invocación regular de la herramienta Bash al segundo plano. Los usuarios de Tmux deben presionar `Ctrl+B` dos veces debido a la tecla de prefijo de tmux.347* Presionar `Ctrl+B` para mover una invocación regular de la herramienta Bash al segundo plano. Los usuarios de Tmux deben presionar `Ctrl+B` dos veces debido a la tecla de prefijo de tmux.

344 348 

349Cuando un comando alcanza su tiempo de espera antes de terminar, Claude Code automáticamente [lo mueve al segundo plano](/docs/es/tools-reference#background-commands) en lugar de detenerlo, a menos que el comando comience con `sleep`. Para cambiar cuánto tiempo se ejecutan los comandos antes de que esto suceda, establezca las [variables de entorno de tiempo de espera de Bash](/docs/es/tools-reference#timeout-and-output-limits).

350 

345**Características clave:**351**Características clave:**

346 352 

347* La salida se escribe en un archivo y Claude puede recuperarla usando la herramienta Read353* La salida se escribe en un archivo y Claude puede recuperarla usando la herramienta Read


395 Encolar mensajes mientras Claude trabaja401 Encolar mensajes mientras Claude trabaja

396</h2>402</h2>

397 403 

398Escriba un mensaje y presione `Enter` mientras Claude está trabajando. Claude Code encola el mensaje en lugar de interrumpir el turno, y lista las entradas encoladas encima del cuadro de entrada hasta que las envía. Puede encolar comandos `!` [shell](#shell-mode-with-prefix) y la mayoría de [comandos](/docs/es/commands) de la misma manera, aparte de los comandos, como `/status`, que Claude Code ejecuta tan pronto como los envía.404Escriba un mensaje y presione `Enter` mientras Claude está trabajando. Claude Code encola el mensaje en lugar de interrumpir el turno, y lista las entradas encoladas en la conversación hasta que las envía. Puede encolar comandos `!` [shell](#shell-mode-with-prefix) y la mayoría de [comandos](/docs/es/commands) de la misma manera, aparte de los comandos, como `/status`, que Claude Code ejecuta tan pronto como los envía.

399 405 

400Los mensajes enviados y encolados se muestran en gris hasta que Claude comienza a responder a ellos, por lo que puede saber qué mensajes Claude aún no ha comenzado.406Los mensajes enviados y encolados se muestran en gris hasta que Claude comienza a responder a ellos, por lo que puede saber qué mensajes Claude aún no ha comenzado.

401 407 

408Si encola un mensaje con una selección adjunta desde un [IDE conectado](/docs/es/vs-code#the-built-in-ide-mcp-server) o el [panel de diferencias](#diff-panel), mantiene la selección que tenía cuando presionó `Enter`, sin importar lo que seleccione después.

409 

402<h3 id="when-claude-code-sends-what-you-queued">410<h3 id="when-claude-code-sends-what-you-queued">

403 Cuándo Claude Code envía lo que encoló411 Cuándo Claude Code envía lo que encoló

404</h3>412</h3>

jetbrains.md +5 −1

Details

249 249 

250El servidor se llama `ide` y está oculto de `/mcp` porque no hay nada que configurar. Sin embargo, si su organización utiliza un [hook `PreToolUse`](/docs/es/hooks#pretooluse) para crear una lista de herramientas MCP permitidas, necesitará saber que existe.250El servidor se llama `ide` y está oculto de `/mcp` porque no hay nada que configurar. Sin embargo, si su organización utiliza un [hook `PreToolUse`](/docs/es/hooks#pretooluse) para crear una lista de herramientas MCP permitidas, necesitará saber que existe.

251 251 

252**Contexto de selección y archivo abierto.** Mientras está conectado, la CLI incluye su selección actual del editor y la ruta del archivo activo como contexto en cada indicador que envía. La transcripción muestra una línea `⧉ Selected N lines from <file>` cuando esto sucede. Para excluir un archivo sensible como `.env`, agregue una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) para su ruta. Una regla de denegación coincidente previene tanto el texto seleccionado como el aviso de archivo abierto para ese archivo de llegar a Claude.252**Contexto de selección y archivo abierto.** Mientras está conectado, la CLI incluye su selección actual del editor y la ruta del archivo activo como contexto en cada indicador que envía. La transcripción muestra una línea `⧉ Selected N lines from <file>` cuando esto sucede.

253 

254Si [pone en cola un mensaje mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works), mantiene la selección que tenía cuando presionó `Enter`, sin importar lo que seleccione después.

255 

256Para excluir un archivo sensible como `.env`, agregue una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) para su ruta. Una regla de denegación coincidente previene tanto el texto seleccionado como el aviso de archivo abierto para ese archivo de llegar a Claude.

253 257 

254**Transporte y autenticación.** El servidor escucha en un puerto efímero asignado por el sistema operativo, y el puerto no es configurable. El transporte es `ws://` sin cifrar; en loopback, cualquier proceso que pudiera capturar el tráfico también puede leer el token del archivo de bloqueo, por lo que TLS no agregaría protección contra un atacante local. Cada inicio del IDE genera un token de autenticación aleatorio nuevo, lo escribe en un archivo de bloqueo en `~/.claude/ide/<port>.lock`, y la CLI debe presentarlo como el encabezado `X-Claude-Code-Ide-Authorization` para conectarse. Si se establece `CLAUDE_CONFIG_DIR`, el archivo de bloqueo se escribe en `$CLAUDE_CONFIG_DIR/ide/` en su lugar.258**Transporte y autenticación.** El servidor escucha en un puerto efímero asignado por el sistema operativo, y el puerto no es configurable. El transporte es `ws://` sin cifrar; en loopback, cualquier proceso que pudiera capturar el tráfico también puede leer el token del archivo de bloqueo, por lo que TLS no agregaría protección contra un atacante local. Cada inicio del IDE genera un token de autenticación aleatorio nuevo, lo escribe en un archivo de bloqueo en `~/.claude/ide/<port>.lock`, y la CLI debe presentarlo como el encabezado `X-Claude-Code-Ide-Authorization` para conectarse. Si se establece `CLAUDE_CONFIG_DIR`, el archivo de bloqueo se escribe en `$CLAUDE_CONFIG_DIR/ide/` en su lugar.

255 259 

keybindings.md +33 −12

Details

168 168 

169Los diálogos utilizan `confirm:yes` y `confirm:no` para aceptar y cancelar incluso cuando no hacen una pregunta de sí o no. Si vincula una letra simple como `y` o `n` en este contexto, la letra también actúa sobre diálogos que nunca la muestran como una tecla. Un diálogo que muestra `y` y `n` como sus teclas las lee a sí mismo y no necesita vinculación.169Los diálogos utilizan `confirm:yes` y `confirm:no` para aceptar y cancelar incluso cuando no hacen una pregunta de sí o no. Si vincula una letra simple como `y` o `n` en este contexto, la letra también actúa sobre diálogos que nunca la muestran como una tecla. Un diálogo que muestra `y` y `n` como sus teclas las lee a sí mismo y no necesita vinculación.

170 170 

171En la mayoría de diálogos, presionar `Ctrl+C` o `Ctrl+D` dos veces cierra el diálogo en lugar de salir de Claude Code. La sugerencia después del primer presionamiento dice si el segundo presionamiento cierra el diálogo o sale. Ambas teclas están [reservadas](#reserved-shortcuts) y no se pueden reasignar.

172 

171Este ejemplo vincula `y` a `confirm:yes` y `n` a `confirm:no`:173Este ejemplo vincula `y` a `confirm:yes` y `n` a `confirm:no`:

172 174 

173```json theme={null}175```json theme={null}


268| `tabs:next` | Tab, Right | Siguiente pestaña |270| `tabs:next` | Tab, Right | Siguiente pestaña |

269| `tabs:previous` | Shift+Tab, Left | Pestaña anterior |271| `tabs:previous` | Shift+Tab, Left | Pestaña anterior |

270 272 

273En un diálogo con pestañas, `tabs:next` y `tabs:previous` cambian de pestaña mientras la fila de pestañas tiene el foco. En algunos diálogos, como `/help` y `/sandbox`, las teclas de cambio de pestaña también funcionan desde dentro del contenido de la pestaña.

274 

275`Up` y `Down` mueven el foco entre la fila de pestañas y el contenido de la pestaña, y una lista en el contenido responde a las teclas solo mientras tiene el foco.

276 

271<h3 id="attachments-actions">277<h3 id="attachments-actions">

272 Acciones de adjuntos278 Acciones de adjuntos

273</h3>279</h3>


295| `footer:down` | Down | Navegar hacia abajo en el pie de página |301| `footer:down` | Down | Navegar hacia abajo en el pie de página |

296| `footer:openSelected` | Enter | Abrir elemento de pie de página seleccionado |302| `footer:openSelected` | Enter | Abrir elemento de pie de página seleccionado |

297| `footer:clearSelection` | Escape | Borrar selección de pie de página |303| `footer:clearSelection` | Escape | Borrar selección de pie de página |

298| `footer:dismiss` | Backspace, Delete | Descartar el enlace de [artefacto](/docs/es/artifacts) seleccionado del pie de página; el artefacto publicado en sí no se ve afectado. En otras filas de pie de página, estas teclas no tienen efecto. Requiere v2.1.217 o posterior |304| `footer:dismiss` | (sin asignar) | Eliminado en v2.1.281. Un `keybindings.json` que aún nombra la acción sigue siendo válido, y la vinculación no hace nada. Antes de v2.1.281, Backspace y Delete descartaban el enlace de artefacto seleccionado del pie de página |

299 305 

300Mientras se selecciona un elemento de pie de página, como una fila en el panel de agente debajo de la indicación, `Enter` lo abre incluso cuando reasigna `Enter` en el contexto `Chat` a `chat:queueSubmit` o `chat:newline`.306Mientras se selecciona un elemento de pie de página, como una fila en el panel de agente debajo de la indicación, `Enter` lo abre incluso cuando reasigna `Enter` en el contexto `Chat` a `chat:queueSubmit` o `chat:newline`.

301 307 


305 Acciones del selector de mensajes311 Acciones del selector de mensajes

306</h3>312</h3>

307 313 

308Acciones disponibles en el contexto `MessageSelector`:314En la lista de mensajes del [menú de rebobinado](/docs/es/checkpointing), se mueve a través de mensajes y elige uno con las [acciones de selección](#select-actions) y sus teclas predeterminadas. Sus vinculaciones de `Select` para esas acciones también se aplican allí. El contexto `MessageSelector` no tiene acciones ni vinculaciones predeterminadas propias. Úselo para cambiar una tecla solo para esta lista, vinculando una acción de selección como `select:accept` en un bloque `MessageSelector`.

309 315 

310| Acción | Predeterminado | Descripción |316Este ejemplo vincula `o` para elegir el mensaje resaltado en el menú de rebobinado, sin cambiar ninguna otra lista:

311| :- | :- | :- |317 

312| `messageSelector:up` | Up, K, Ctrl+P | Mover hacia arriba en la lista |318```json theme={null}

313| `messageSelector:down` | Down, J, Ctrl+N | Mover hacia abajo en la lista |319{

314| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | Saltar al principio |320 "bindings": [

315| `messageSelector:bottom` | Ctrl+Down, Shift+Down, Meta+Down, Shift+J | Saltar al final |321 {

316| `messageSelector:select` | Enter | Seleccionar mensaje |322 "context": "MessageSelector",

323 "bindings": {

324 "o": "select:accept"

325 }

326 }

327 ]

328}

329```

330 

331Antes de v2.1.283, esta lista ignoraba las vinculaciones de `Select` y tenía sus propias acciones: `messageSelector:up`, `messageSelector:down`, `messageSelector:top`, `messageSelector:bottom` y `messageSelector:select`. Si su `keybindings.json` vincula uno de esos nombres, la vinculación sigue funcionando en esta lista como la acción de selección que hace lo mismo. `Home` y `End` saltan a cualquiera de los extremos de la lista; antes de v2.1.283, teclas como `Shift+K` y `Shift+J` hacían eso de forma predeterminada.

317 332 

318<h3 id="diff-actions">333<h3 id="diff-actions">

319 Acciones de diferencias334 Acciones de diferencias


328| `diff:nextSource` | Right | Siguiente fuente de diferencia |343| `diff:nextSource` | Right | Siguiente fuente de diferencia |

329| `diff:previousFile` | Up, K | Archivo anterior en la lista de archivos; desplazarse hacia arriba una línea en la vista de detalle |344| `diff:previousFile` | Up, K | Archivo anterior en la lista de archivos; desplazarse hacia arriba una línea en la vista de detalle |

330| `diff:nextFile` | Down, J | Siguiente archivo en la lista de archivos; desplazarse hacia abajo una línea en la vista de detalle |345| `diff:nextFile` | Down, J | Siguiente archivo en la lista de archivos; desplazarse hacia abajo una línea en la vista de detalle |

331| `diff:viewDetails` | Enter | Ver detalles de diferencias |

332| `diff:back` | (sin asignar) | Retroceder en el visor de diferencias. Escape realiza la acción de retroceso a través de `diff:dismiss`. El valor predeterminado anterior de Left en la vista de detalle se eliminó en v2.1.203 |346| `diff:back` | (sin asignar) | Retroceder en el visor de diferencias. Escape realiza la acción de retroceso a través de `diff:dismiss`. El valor predeterminado anterior de Left en la vista de detalle se eliminó en v2.1.203 |

333 347 

348La lista de archivos también responde a las [acciones de selección](#select-actions), a través de sus teclas predeterminadas y sus vinculaciones de `Select`. `select:previous` y `select:next` se mueven al archivo anterior y siguiente, y `Enter` abre el diff del archivo seleccionado a través de `select:accept`. Para cambiar una de esas teclas solo para la lista de archivos, vincule la acción de selección en un bloque `DiffDialog`.

349 

350Antes de v2.1.283, la lista de archivos ignoraba las vinculaciones de `Select`, y `Enter` abría el diff del archivo seleccionado a través de una acción `diff:viewDetails` separada. Si su `keybindings.json` vincula `diff:viewDetails`, la vinculación sigue funcionando en la lista de archivos como `select:accept`.

351 

334La vista de detalle de diferencias también vincula teclas de estilo paginador a las [acciones de desplazamiento](#scroll-actions) estándar. Estas vinculaciones son parte del contexto `DiffDialog` y se aplican solo en la vista de detalle; los valores predeterminados del contexto `Scroll` enumerados en [Acciones de desplazamiento](#scroll-actions) no cambian.352La vista de detalle de diferencias también vincula teclas de estilo paginador a las [acciones de desplazamiento](#scroll-actions) estándar. Estas vinculaciones son parte del contexto `DiffDialog` y se aplican solo en la vista de detalle; los valores predeterminados del contexto `Scroll` enumerados en [Acciones de desplazamiento](#scroll-actions) no cambian.

335 353 

336| Acción | Predeterminado | Descripción |354| Acción | Predeterminado | Descripción |


373 Acciones del control deslizante de esfuerzo391 Acciones del control deslizante de esfuerzo

374</h3>392</h3>

375 393 

376Acciones disponibles en el contexto `EffortSlider`, el control deslizante que se abre cuando ejecuta `/effort` sin argumentos. Las teclas Left, Right, Enter y Escape del control deslizante no se pueden reasignar.394Acciones disponibles en el contexto `EffortSlider`, el control deslizante que se abre cuando ejecuta `/effort` sin argumentos. Las teclas Enter y Escape del control deslizante no se pueden reasignar.

377 395 

378| Acción | Predeterminado | Descripción |396| Acción | Predeterminado | Descripción |

379| :- | :- | :- |397| :- | :- | :- |

398| `effortSlider:decreaseEffort` | Left | Mover el control deslizante al siguiente nivel de esfuerzo más bajo. Requiere v2.1.284 o posterior |

399| `effortSlider:increaseEffort` | Right | Mover el control deslizante al siguiente nivel de esfuerzo más alto. Requiere v2.1.284 o posterior |

400| `effortSlider:toggleUltracode` | Tab | Activar [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) o desactivarlo para esta sesión, cuando el control deslizante [lo ofrece](/docs/es/model-config#when-ultracode-is-available). Requiere v2.1.284 o posterior |

380| `effortSlider:thisSessionOnly` | s | Aplicar el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enfocado solo a esta sesión. Requiere v2.1.257 o posterior |401| `effortSlider:thisSessionOnly` | s | Aplicar el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enfocado solo a esta sesión. Requiere v2.1.257 o posterior |

381 402 

382<h3 id="select-actions">403<h3 id="select-actions">


396| `select:accept` | Enter | Aceptar selección |417| `select:accept` | Enter | Aceptar selección |

397| `select:cancel` | Escape | Cancelar selección |418| `select:cancel` | Escape | Cancelar selección |

398 419 

399Claude Code aplica sus vinculaciones de `select:pageUp`, `select:pageDown`, `select:first` y `select:last` en el menú `/skills`. En la mayoría de otras listas, como el selector `/model`, se aplican sus vinculaciones de `select:first` y `select:last`. PageUp y PageDown avanzan por las opciones en esas listas independientemente de sus vinculaciones.420En paneles de lista como `/skills` y `/mcp`, Claude Code aplica sus vinculaciones de `select:pageUp`, `select:pageDown`, `select:first` y `select:last`. En la mayoría de otras listas, como el selector `/model`, se aplican sus vinculaciones de `select:first` y `select:last`. PageUp y PageDown avanzan por las opciones en esas listas independientemente de sus vinculaciones.

400 421 

401Antes de v2.1.280, esas otras listas ignoraban Home, End y sus vinculaciones de `select:first` y `select:last`.422Antes de v2.1.280, esas otras listas ignoraban Home, End y sus vinculaciones de `select:first` y `select:last`.

402 423 

llm-gateway.md +1 −1

Details

49 Suscripciones y puertas de enlace49 Suscripciones y puertas de enlace

50</h2>50</h2>

51 51 

52Mientras una [variable de credencial de puerta de enlace](/docs/es/llm-gateway-connect#set-the-credential-variable) o `apiKeyHelper` está activa, la suscripción de claude.ai de un desarrollador no se usa: la credencial reemplaza el inicio de sesión de suscripción para esa sesión, y los límites de uso de la suscripción no se aplican. Ese tráfico se factura por token a quien sea propietario de la credencial que la puerta de enlace reenvía, como la cuenta de Consola de Anthropic de su organización, o su cuenta de Amazon Bedrock, Agent Platform de Google Cloud o Foundry de Microsoft cuando la puerta de enlace enruta allí.52Mientras una [variable de credencial de puerta de enlace](/docs/es/llm-gateway-connect#set-the-credential-variable) o `apiKeyHelper` está activa, las solicitudes llevan esa credencial en lugar del inicio de sesión de suscripción de claude.ai de un desarrollador, y los límites de uso de la suscripción no se aplican a ellas. Claude Code mantiene un inicio de sesión de claude.ai guardado en la máquina pero no lo envía con esas solicitudes. Ese tráfico se factura por token a quien sea propietario de la credencial que la puerta de enlace reenvía, como la cuenta de Consola de Anthropic de su organización, o su cuenta de Amazon Bedrock, Agent Platform de Google Cloud o Foundry de Microsoft cuando la puerta de enlace enruta allí.

53 53 

54[`ANTHROPIC_BASE_URL`](/docs/es/llm-gateway-connect#set-the-base-url-and-credential) es la variable que apunta Claude Code a la puerta de enlace. Establecer solo esa variable, sin una credencial de puerta de enlace, no reemplaza la suscripción. Las solicitudes aún se enrutan a través de la puerta de enlace, pero un inicio de sesión de claude.ai guardado permanece como la credencial activa, por lo que sus límites de uso y facturación se aplican. Las puertas de enlace que pasan este tráfico a Anthropic deben reenviar la capacidad OAuth en `anthropic-beta`; consulte la [referencia de encabezados de solicitud](/docs/es/llm-gateway-protocol#request-headers).54[`ANTHROPIC_BASE_URL`](/docs/es/llm-gateway-connect#set-the-base-url-and-credential) es la variable que apunta Claude Code a la puerta de enlace. Establecer solo esa variable, sin una credencial de puerta de enlace, no reemplaza la suscripción. Las solicitudes aún se enrutan a través de la puerta de enlace, pero un inicio de sesión de claude.ai guardado permanece como la credencial activa, por lo que sus límites de uso y facturación se aplican. Las puertas de enlace que pasan este tráfico a Anthropic deben reenviar la capacidad OAuth en `anthropic-beta`; consulte la [referencia de encabezados de solicitud](/docs/es/llm-gateway-protocol#request-headers).

55 55 

Details

140<Tabs>140<Tabs>

141 <Tab title="Bash o Zsh">141 <Tab title="Bash o Zsh">

142 ```bash theme={null}142 ```bash theme={null}

143 curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \143 curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \

144 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \144 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \

145 -H "anthropic-version: 2023-06-01" \145 -H "anthropic-version: 2023-06-01" \

146 -H "content-type: application/json" \146 -H "content-type: application/json" \


594| `/fast` reporta `Fast mode has been disabled by your organization` en una sesión autenticada con `ANTHROPIC_AUTH_TOKEN`, aunque la organización tiene modo rápido habilitado | La verificación de disponibilidad requiere un inicio de sesión en claude.ai o una clave de API de Anthropic; con solo un token portador, Claude Code trata el modo rápido como deshabilitado sin enviar la verificación | Establezca `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |594| `/fast` reporta `Fast mode has been disabled by your organization` en una sesión autenticada con `ANTHROPIC_AUTH_TOKEN`, aunque la organización tiene modo rápido habilitado | La verificación de disponibilidad requiere un inicio de sesión en claude.ai o una clave de API de Anthropic; con solo un token portador, Claude Code trata el modo rápido como deshabilitado sin enviar la verificación | Establezca `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

595| Claude Code le pide que inicie sesión aunque la [prueba de curl](#verify-the-connection) tenga éxito | La CLI no tiene credencial propia: una URL base alcanzable no es una, y en una sesión interactiva un bloque `env` en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto se aplica solo después del asistente de primera ejecución y la [solicitud de confianza](/docs/es/permissions#what-runs-before-you-trust-a-folder) | Establezca `ANTHROPIC_AUTH_TOKEN` en algún lugar que Claude Code lea antes de la configuración de primera ejecución: una exportación de shell, el bloque `env` en `~/.claude/settings.json`, o configuración administrada |595| Claude Code le pide que inicie sesión aunque la [prueba de curl](#verify-the-connection) tenga éxito | La CLI no tiene credencial propia: una URL base alcanzable no es una, y en una sesión interactiva un bloque `env` en el `.claude/settings.json` o `.claude/settings.local.json` de un proyecto se aplica solo después del asistente de primera ejecución y la [solicitud de confianza](/docs/es/permissions#what-runs-before-you-trust-a-folder) | Establezca `ANTHROPIC_AUTH_TOKEN` en algún lugar que Claude Code lea antes de la configuración de primera ejecución: una exportación de shell, el bloque `env` en `~/.claude/settings.json`, o configuración administrada |

596| `ANTHROPIC_API_KEY` está establecido pero ignorado, sin solicitud | La clave necesita una aprobación única en sesiones interactivas, y una clave previamente rechazada se ignora sin preguntar de nuevo | Habilítela bajo `/config` con la opción `Use custom API key` |596| `ANTHROPIC_API_KEY` está establecido pero ignorado, sin solicitud | La clave necesita una aprobación única en sesiones interactivas, y una clave previamente rechazada se ignora sin preguntar de nuevo | Habilítela bajo `/config` con la opción `Use custom API key` |

597| `This machine's managed settings require a first-party login` | La configuración administrada incluye `forceLoginMethod` o `forceLoginOrgUUID`, que no pueden coexistir con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` | Su administrador debe eliminar `forceLoginMethod` y `forceLoginOrgUUID` de la configuración administrada para usar credenciales de puerta de enlace, o eliminar la credencial de puerta de enlace para usar inicio de sesión de primera parte. Los dos no pueden combinarse |597| `This machine's managed settings require a first-party login`, o [`Administrator policy requires a Cloud gateway sign-in`](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) cuando la configuración administrada establece `forceLoginMethod` en `"gateway"` o también establece `forceLoginGatewayUrl` | La configuración administrada incluye `forceLoginMethod` o `forceLoginOrgUUID`, que no pueden coexistir con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, o `apiKeyHelper` | Su administrador debe eliminar `forceLoginMethod`, `forceLoginOrgUUID`, y `forceLoginGatewayUrl` de la configuración administrada para usar credenciales de puerta de enlace, o eliminar la credencial de puerta de enlace y usar el inicio de sesión que la configuración administrada requiere. Los dos no pueden combinarse |

598| `403` con un cuerpo HTML como `403 Forbidden`, cuando los registros propios de la puerta de enlace no muestran ninguna solicitud recibida | Un firewall de aplicación web o proxy inverso frente a la puerta de enlace bloqueó el cuerpo de la solicitud antes de que llegara a la puerta de enlace. Los avisos de Claude Code incluyen etiquetas de estilo XML y código fuente que coinciden con reglas de cuerpo de secuencias de comandos entre sitios, por lo que una prueba de curl corta pasa mientras una sesión real no | Exima la ruta `/v1/messages` de la puerta de enlace de la inspección del cuerpo de la solicitud. En AWS WAF esta es la regla administrada `CrossSiteScripting_Body`; en nginx con ModSecurity es la regla de cuerpo OWASP CRS equivalente |598| `403` con un cuerpo HTML como `403 Forbidden`, cuando los registros propios de la puerta de enlace no muestran ninguna solicitud recibida | Un firewall de aplicación web o proxy inverso frente a la puerta de enlace bloqueó el cuerpo de la solicitud antes de que llegara a la puerta de enlace. Los avisos de Claude Code incluyen etiquetas de estilo XML y código fuente que coinciden con reglas de cuerpo de secuencias de comandos entre sitios, por lo que una prueba de curl corta pasa mientras una sesión real no | Exima la ruta `/v1/messages` de la puerta de enlace de la inspección del cuerpo de la solicitud. En AWS WAF esta es la regla administrada `CrossSiteScripting_Body`; en nginx con ModSecurity es la regla de cuerpo OWASP CRS equivalente |

599| Errores de certificado o TLS como `SSL certificate verification failed` o `Self-signed certificate detected`, cuando la [prueba de curl](#verify-the-connection) tiene éxito | El tiempo de ejecución de Claude Code no está confiando en la misma autoridad de certificación que `curl` usa. Común detrás de proxies de inspección TLS corporativos | Establezca `NODE_EXTRA_CA_CERTS` a la ruta del paquete de CA; consulte [almacén de certificados de CA](/docs/es/network-config#ca-certificate-store) |599| Errores de certificado o TLS como `SSL certificate verification failed` o `Self-signed certificate detected`, cuando la [prueba de curl](#verify-the-connection) tiene éxito | El tiempo de ejecución de Claude Code no está confiando en la misma autoridad de certificación que `curl` usa. Común detrás de proxies de inspección TLS corporativos | Establezca `NODE_EXTRA_CA_CERTS` a la ruta del paquete de CA; consulte [almacén de certificados de CA](/docs/es/network-config#ca-certificate-store) |

600 600 

Details

73 73 

74Transmita respuestas de inferencia. Claude Code lee la transmisión a medida que llega, por lo que si su puerta de enlace almacena en búfer respuestas completas antes de retransmitirlas, Claude Code se detiene.74Transmita respuestas de inferencia. Claude Code lee la transmisión a medida que llega, por lo que si su puerta de enlace almacena en búfer respuestas completas antes de retransmitirlas, Claude Code se detiene.

75 75 

76Entregue la secuencia de eventos completa de cada respuesta sin descartar, duplicar ni reordenar eventos. Cuando un evento hace referencia a un bloque de contenido cuyo `content_block_start` nunca llegó, o a un bloque cuyo `content_block_stop` ya llegó, Claude Code deja de leer la transmisión en ese evento en lugar de aplicarlo, por lo que un `content_block_stop` duplicado no puede ejecutar la misma llamada de herramienta dos veces. [La respuesta anterior puede estar incompleta](/docs/es/errors#the-response-above-may-be-incomplete) describe lo que el usuario ve, bajo las variantes `Part of the response never arrived` y `The response stream was malformed`.

77 

78Retransmita cada respuesta a través de sus eventos finales `message_delta` y `message_stop` antes de terminar el cuerpo. Un cuerpo que termina después de un `message_delta` que lleva un `stop_reason`, sin bloque de contenido aún abierto y sin evento de bloque de contenido después de ese fotograma, se cuenta como completo incluso cuando falta `message_stop`. Un cuerpo que su puerta de enlace termina limpiamente antes, una vez que ha comenzado un bloque de contenido, se trata igual que una conexión caída: [Reintentos automáticos](/docs/es/errors#automatic-retries) dice cuándo Claude Code vuelve a emitir la solicitud, y [La respuesta anterior puede estar incompleta](/docs/es/errors#the-response-above-may-be-incomplete) cubre lo que mantiene una vez que ha llegado contenido visible. Claude Code mantiene el `stop_reason` que entrega un `message_delta`, por lo que un `message_delta` posterior solo de uso cuyo `delta` tiene `stop_reason: null` o no tiene clave `stop_reason` no lo borra.

79 

76Cuando el cliente habla el formato Amazon Bedrock, retransmita el cuerpo de respuesta `InvokeModelWithResponseStream` y su encabezado `Content-Type: application/vnd.amazon.eventstream` sin modificar, y no convierta la transmisión a eventos enviados por el servidor. Consulte [Errores de streaming detrás de una puerta de enlace o proxy](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).80Cuando el cliente habla el formato Amazon Bedrock, retransmita el cuerpo de respuesta `InvokeModelWithResponseStream` y su encabezado `Content-Type: application/vnd.amazon.eventstream` sin modificar, y no convierta la transmisión a eventos enviados por el servidor. Consulte [Errores de streaming detrás de una puerta de enlace o proxy](/docs/es/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

77 81 

78Reenvíe también los pings de mantenimiento de conexión. En conexiones a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`, Claude Code cuenta cada byte que su puerta de enlace retransmite, incluidos los eventos SSE `ping` y líneas de comentario, e interrumpe una transmisión que se queda en silencio durante 300 segundos de forma predeterminada. Los pings del proveedor ascendente son el único tráfico durante pausas de pensamiento prolongado, por lo que si su puerta de enlace los elimina o los almacena en búfer, Claude Code interrumpe la transmisión durante esas pausas; [Reintentos automáticos](/docs/es/errors#automatic-retries) cubre lo que una transmisión interrumpida informa según cuán lejos había progresado la respuesta. Un proveedor ascendente que no envía pings en absoluto, como el flujo de eventos binarios de Amazon Bedrock, deja esas pausas sin nada que reenviar. Al traducir desde tal proveedor ascendente, emita sus propios eventos `ping` durante brechas silenciosas. Las puertas de enlace alcanzadas a través de `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, o `ANTHROPIC_FOUNDRY_BASE_URL` no están envueltas por este perro guardián a nivel de bytes, incluso cuando retransmiten el formato Anthropic Messages; allí, un [tiempo de espera de inactividad de 5 minutos](/docs/es/env-vars) interrumpe una transmisión silenciosa en su lugar, y en conexiones `ANTHROPIC_BEDROCK_BASE_URL` puede agregar el perro guardián de bytes con [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/es/env-vars).82Reenvíe también los pings de mantenimiento de conexión. En conexiones a través de `ANTHROPIC_BASE_URL` o `ANTHROPIC_AWS_BASE_URL`, Claude Code cuenta cada byte que su puerta de enlace retransmite, incluidos los eventos SSE `ping` y líneas de comentario, e interrumpe una transmisión que se queda en silencio durante 300 segundos de forma predeterminada. Los pings del proveedor ascendente son el único tráfico durante pausas de pensamiento prolongado, por lo que si su puerta de enlace los elimina o los almacena en búfer, Claude Code interrumpe la transmisión durante esas pausas; [Reintentos automáticos](/docs/es/errors#automatic-retries) cubre lo que una transmisión interrumpida informa según cuán lejos había progresado la respuesta. Un proveedor ascendente que no envía pings en absoluto, como el flujo de eventos binarios de Amazon Bedrock, deja esas pausas sin nada que reenviar. Al traducir desde tal proveedor ascendente, emita sus propios eventos `ping` durante brechas silenciosas. Las puertas de enlace alcanzadas a través de `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, o `ANTHROPIC_FOUNDRY_BASE_URL` no están envueltas por este perro guardián a nivel de bytes, incluso cuando retransmiten el formato Anthropic Messages; allí, un [tiempo de espera de inactividad de 5 minutos](/docs/es/env-vars) interrumpe una transmisión silenciosa en su lugar, y en conexiones `ANTHROPIC_BEDROCK_BASE_URL` puede agregar el perro guardián de bytes con [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/es/env-vars).


158 162 

159Establecer `CLAUDE_CODE_GATEWAY_HINT_HEADERS` a `0` detiene los encabezados en cada conexión.163Establecer `CLAUDE_CODE_GATEWAY_HINT_HEADERS` a `0` detiene los encabezados en cada conexión.

160 164 

161Los encabezados llevan solo lo que las filas a continuación enumeran: vocabularios fijos, nombres de herramientas y duraciones, nunca texto de solicitud o contenidos de archivo. Cada valor es ASCII imprimible.165Los encabezados llevan solo lo que las filas a continuación enumeran: vocabularios fijos, nombres de herramientas, duraciones y un identificador de solicitud aleatorio, nunca texto de solicitud o contenidos de archivo. Cada valor es ASCII imprimible.

162 166 

163| Encabezado | Descripción |167| Encabezado | Descripción |

164| :- | :- |168| :- | :- |


167| `x-claude-code-compaction` | Presente en la solicitud que resume la conversación durante una [compactación](/docs/es/prompt-caching#compacting-the-conversation). El valor dice qué la activó: `auto` cuando la ventana de contexto se acercaba a la capacidad, `manual` para `/compact`, o `reactive` cuando la API rechazó una solicitud como demasiado larga. Ausente en todas las otras solicitudes |171| `x-claude-code-compaction` | Presente en la solicitud que resume la conversación durante una [compactación](/docs/es/prompt-caching#compacting-the-conversation). El valor dice qué la activó: `auto` cuando la ventana de contexto se acercaba a la capacidad, `manual` para `/compact`, o `reactive` cuando la API rechazó una solicitud como demasiado larga. Ausente en todas las otras solicitudes |

168| `x-claude-code-context-compacted` | Presente una vez, en la primera solicitud de conversación principal después de una compactación, con los mismos valores que `x-claude-code-compaction`. El prefijo de conversación antes de esta solicitud ya no se usa, así que un caché codificado en él puede descartarse |172| `x-claude-code-context-compacted` | Presente una vez, en la primera solicitud de conversación principal después de una compactación, con los mismos valores que `x-claude-code-compaction`. El prefijo de conversación antes de esta solicitud ya no se usa, así que un caché codificado en él puede descartarse |

169| `x-claude-code-prev-tool-durations` | Tiempo de ejecución medido de las llamadas de herramienta cuyos resultados lleva esta solicitud, como `<name>=<ms>;<name>=<ms>`, por ejemplo `Bash=742;Read=9`. Enviado en la siguiente solicitud de la misma conversación después de un lote de llamadas de herramienta, desde la sesión principal o un subagente |173| `x-claude-code-prev-tool-durations` | Tiempo de ejecución medido de las llamadas de herramienta cuyos resultados lleva esta solicitud, como `<name>=<ms>;<name>=<ms>`, por ejemplo `Bash=742;Read=9`. Enviado en la siguiente solicitud de la misma conversación después de un lote de llamadas de herramienta, desde la sesión principal o un subagente |

174| `x-claude-code-prompt-id` | UUID aleatorio que identifica la solicitud del usuario que sirve una solicitud. Las solicitudes que sirven una solicitud comparten el valor, incluidos los turnos de subagentes que la solicitud inició. Las solicitudes no atribuidas a una solicitud la omiten. Úselo para agrupar las solicitudes de una sesión por solicitud. Requiere Claude Code v2.1.283 o posterior |

170 175 

171Antes de analizar `x-claude-code-prev-tool-durations`, verifique cómo Claude Code construye el valor y qué deja fuera:176Antes de analizar `x-claude-code-prev-tool-durations`, verifique cómo Claude Code construye el valor y qué deja fuera:

172 177 


265 Deshabilitar capacidades de pre-lanzamiento270 Deshabilitar capacidades de pre-lanzamiento

266</h3>271</h3>

267 272 

268`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` detiene Claude Code de enviar capacidades de pre-lanzamiento y sus campos de cuerpo en cada proveedor, incluida la gestión de contexto y los campos de herramienta beta. La variable no afecta el razonamiento adaptativo, que se selecciona por modelo en lugar de por beta. Nunca suprime la capacidad OAuth que la autenticación de suscripción requiere.273`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` detiene Claude Code de enviar capacidades de pre-lanzamiento y sus campos de cuerpo, incluida la gestión de contexto y los campos de herramienta beta. La variable no afecta el razonamiento adaptativo, que se selecciona por modelo en lugar de por beta. Nunca suprime la capacidad OAuth que la autenticación de suscripción requiere.

274 

275Cuando una plataforma anfitriona que integra Claude Code establece [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` no detiene sesiones en modo automático en Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, o una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) de solicitar al servidor [revisión de clasificador](/docs/es/permission-modes#server-side-classifier-review). Esa revisión agrega un valor `anthropic-beta` y un campo de solicitud `safeguards`. Establezca `CLAUDE_CODE_AUTO_MODE_SERVER=0` para detenerlo allí.

269 276 

270En Claude Code v2.1.227 o posterior, su organización puede mantener [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search) activada bajo esta variable a través de [configuración administrada](/docs/es/managed-settings). Lo que Claude Code envía con esa anulación en su lugar depende de cómo se conecte:277En Claude Code v2.1.227 o posterior, su organización puede mantener [búsqueda de herramientas MCP](/docs/es/mcp#scale-with-mcp-tool-search) activada bajo esta variable a través de [configuración administrada](/docs/es/managed-settings). Lo que Claude Code envía con esa anulación en su lugar depende de cómo se conecte:

271 278 


340Una ID descubierta no obtiene su propia fila cuando coincide con una fila ya en el selector:347Una ID descubierta no obtiene su propia fila cuando coincide con una fila ya en el selector:

341 348 

342* ID igual: la ID descubierta coincide exactamente con el ID de una fila existente, o los dos ID son ortografías de la misma versión de [Fable](/docs/es/model-config#work-with-fable).349* ID igual: la ID descubierta coincide exactamente con el ID de una fila existente, o los dos ID son ortografías de la misma versión de [Fable](/docs/es/model-config#work-with-fable).

343* Mismo modelo que un alias integrado: cuando una ID explícita descubierta nombra el modelo al que un alias integrado se resuelve actualmente, el selector muestra solo la fila de alias. Por ejemplo, mientras `sonnet` se resuelve a `claude-sonnet-5`, un `claude-sonnet-5` descubierto se colapsa en la fila `sonnet`, y un `claude-sonnet-4-6` descubierto aún obtiene su propia fila. Antes de v2.1.197, Claude Code no plegaba estos ID en filas integradas, por lo que `claude-sonnet-5` también obtenía su propia fila "From gateway".350* Mismo modelo que un alias integrado: cuando una ID explícita descubierta nombra el modelo al que un alias integrado se resuelve actualmente, el selector muestra solo la fila de alias. Por ejemplo, mientras `sonnet` se resuelve a `claude-sonnet-5-5`, un `claude-sonnet-5-5` descubierto se colapsa en la fila `sonnet`, y un `claude-sonnet-5` descubierto aún obtiene su propia fila. Antes de v2.1.197, Claude Code no plegaba estos ID en filas integradas, por lo que el ID al que se resolvía un alias también obtenía su propia fila "From gateway".

344 351 

345Los resultados se almacenan en caché en `~/.claude/cache/gateway-models.json`, o `%USERPROFILE%\.claude\cache\gateway-models.json` en Windows, y se actualizan en cada inicio. Si establece [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el caché se encuentra bajo ese directorio en su lugar. 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. Si su puerta de enlace sirve modelos de Claude bajo alias que no coinciden con el filtro de descubrimiento, los desarrolladores pueden agregar esos alias manualmente con las [variables de configuración de modelo](/docs/es/model-config).352Los resultados se almacenan en caché en `~/.claude/cache/gateway-models.json`, o `%USERPROFILE%\.claude\cache\gateway-models.json` en Windows, y se actualizan en cada inicio. Si establece [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars), el caché se encuentra bajo ese directorio en su lugar. 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. Si su puerta de enlace sirve modelos de Claude bajo alias que no coinciden con el filtro de descubrimiento, los desarrolladores pueden agregar esos alias manualmente con las [variables de configuración de modelo](/docs/es/model-config).

346 353 

Details

208 208 

209Añada las variables condicionales de la tabla al mismo bloque `env`. Un `ANTHROPIC_BASE_URL` administrado se aplica y no puede ser anulado por una exportación de shell de un desarrollador, ya que Claude Code lo aplica sobre el entorno del proceso y configuraciones de menor precedencia.209Añada las variables condicionales de la tabla al mismo bloque `env`. Un `ANTHROPIC_BASE_URL` administrado se aplica y no puede ser anulado por una exportación de shell de un desarrollador, ya que Claude Code lo aplica sobre el entorno del proceso y configuraciones de menor precedencia.

210 210 

211No incluya `forceLoginMethod` o `forceLoginOrgUUID` en la configuración administrada junto con una credencial de puerta de enlace. Cualquiera de las dos claves bloquea `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` y `apiKeyHelper` al inicio, y los desarrolladores no pueden proceder. Ven `This machine's managed settings require a first-party login`, o [`Administrator policy requires a Cloud gateway sign-in`](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) bajo un valor `"gateway"`.211No incluya `forceLoginMethod`, `forceLoginOrgUUID`, o `forceLoginGatewayUrl` en la configuración administrada junto con una credencial de puerta de enlace. `forceLoginMethod` o `forceLoginOrgUUID`, con cualquier valor, bloquea `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, y `apiKeyHelper` al inicio, y los desarrolladores no pueden proceder. Ven `This machine's managed settings require a first-party login`, o [`Administrator policy requires a Cloud gateway sign-in`](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) cuando el archivo establece `forceLoginMethod` a `"gateway"` o establece `forceLoginGatewayUrl`.

212 212 

213La entrega de [configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability) requiere una conexión directa a `api.anthropic.com`, por lo que no alcanza sesiones enrutadas por puerta de enlace. Las implementaciones de puerta de enlace usan esta ruta de configuración administrada basada en archivos, que aplica las mismas claves.213La entrega de [configuración administrada por servidor](/docs/es/server-managed-settings#platform-availability) requiere una conexión directa a `api.anthropic.com`, por lo que no alcanza sesiones enrutadas por puerta de enlace. Las implementaciones de puerta de enlace usan esta ruta de configuración administrada basada en archivos, que aplica las mismas claves.

214 214 

managed-mcp.md +1 −1

Details

526 Monitorear el uso de MCP526 Monitorear el uso de MCP

527</h2>527</h2>

528 528 

529Cuando se configura [exportación de OpenTelemetry](/docs/es/monitoring-usage), Claude Code puede registrar qué servidores MCP y herramientas invocan los usuarios. Establezca `OTEL_LOG_TOOL_DETAILS=1` para incluir nombres de servidor MCP y herramientas en eventos de herramientas, luego agréguelos en su recopilador para ver qué servidores conectan realmente sus usuarios. Consulte [Monitoring](/docs/es/monitoring-usage) para configurar el exportador y para el esquema de evento completo.529Cuando se configura [exportación de OpenTelemetry](/docs/es/monitoring-usage), Claude Code puede registrar qué servidores MCP y herramientas invocan los usuarios. Establezca `OTEL_LOG_TOOL_DETAILS=1` para incluir nombres de servidor MCP y herramientas en eventos de herramientas y en los [contadores de costo y tokens](/docs/es/monitoring-usage#cost-counter), luego agréguelos en su recopilador para ver qué servidores conectan realmente sus usuarios. Consulte [Monitoring](/docs/es/monitoring-usage) para configurar el exportador y para el esquema de evento completo.

530 530 

531<h2 id="configuration-summary">531<h2 id="configuration-summary">

532 Resumen de configuración532 Resumen de configuración

Details

75| [Configuración administrada por servidor](/docs/es/server-managed-settings) | En la consola de administración de claude.ai, o en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) autohospedada | Se obtiene al inicio y se sondea cada hora; consulte [cambios que necesitan aprobación](#where-and-when-a-policy-applies) | Desea un lugar para cambiar la política de una organización de claude.ai sin tocar cada máquina |75| [Configuración administrada por servidor](/docs/es/server-managed-settings) | En la consola de administración de claude.ai, o en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) autohospedada | Se obtiene al inicio y se sondea cada hora; consulte [cambios que necesitan aprobación](#where-and-when-a-policy-applies) | Desea un lugar para cambiar la política de una organización de claude.ai sin tocar cada máquina |

76| Política MDM o a nivel de SO | Como un perfil de configuración de macOS o un valor de registro `HKLM` de Windows, a través de Jamf, Intune, Group Policy o una herramienta similar; consulte [dónde cada mecanismo almacena la política](#where-each-mechanism-stores-the-policy) | Se lee al inicio y se verifica si hay cambios cada 30 minutos | Ya administra dispositivos con MDM o Group Policy |76| Política MDM o a nivel de SO | Como un perfil de configuración de macOS o un valor de registro `HKLM` de Windows, a través de Jamf, Intune, Group Policy o una herramienta similar; consulte [dónde cada mecanismo almacena la política](#where-each-mechanism-stores-the-policy) | Se lee al inicio y se verifica si hay cambios cada 30 minutos | Ya administra dispositivos con MDM o Group Policy |

77| Basado en archivo | Como `managed-settings.json` en un directorio del sistema en cada máquina; consulte [dónde cada mecanismo almacena la política](#where-each-mechanism-stores-the-policy) | Se lee al inicio y se recarga cuando cambia un archivo | Máquinas sin MDM, hosts Linux o imágenes que construye usted mismo |77| Basado en archivo | Como `managed-settings.json` en un directorio del sistema en cada máquina; consulte [dónde cada mecanismo almacena la política](#where-each-mechanism-stores-the-policy) | Se lee al inicio y se recarga cuando cambia un archivo | Máquinas sin MDM, hosts Linux o imágenes que construye usted mismo |

78| Registro HKCU, Windows y WSL | Como un valor de registro `HKCU` de Windows; consulte [dónde cada mecanismo almacena la política](#where-each-mechanism-stores-the-policy) | Se lee al inicio y se verifica si hay cambios cada 30 minutos; Claude Code lo usa solo cuando ninguna otra fuente administrada entrega una clave de política y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) proporciona una clave restrictiva | No puede escribir la clave `HKLM` a nivel de máquina |78| Registro HKCU, Windows y WSL | Como un valor de registro `HKCU` de Windows; consulte [dónde cada mecanismo almacena la política](#where-each-mechanism-stores-the-policy) | Se lee al inicio y se verifica si hay cambios cada 30 minutos; Claude Code lo usa solo cuando [no hay documento de administrador presente arriba](#present-admin-documents) y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) proporciona una clave restrictiva | No puede escribir la clave `HKLM` a nivel de máquina |

79 79 

80Las plantillas de inicio para Jamf, Iru, Intune y Group Policy están en el [repositorio de ejemplos de MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).80Las plantillas de inicio para Jamf, Iru, Intune y Group Policy están en el [repositorio de ejemplos de MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).

81 81 


88Una política implementada llega a las sesiones del desarrollador de la siguiente manera:88Una política implementada llega a las sesiones del desarrollador de la siguiente manera:

89 89 

90* **Superficies**: en la máquina del desarrollador, la terminal, las extensiones de VS Code y JetBrains, la pestaña Code de la aplicación de escritorio y las sesiones de [Agent SDK](/docs/es/agent-sdk/typescript) leen todas estas fuentes. Las sesiones de Agent SDK cargan la configuración administrada incluso cuando `settingSources` excluye los archivos de usuario, proyecto y local.90* **Superficies**: en la máquina del desarrollador, la terminal, las extensiones de VS Code y JetBrains, la pestaña Code de la aplicación de escritorio y las sesiones de [Agent SDK](/docs/es/agent-sdk/typescript) leen todas estas fuentes. Las sesiones de Agent SDK cargan la configuración administrada incluso cuando `settingSources` excluye los archivos de usuario, proyecto y local.

91* **Sesiones en la nube**: una sesión en un entorno alojado por Anthropic no lee un perfil MDM o archivo de dispositivo, por lo que la política para ella debe provenir de la configuración administrada por servidor. Una sesión en un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuración administrada en su imagen de ejecutor, por defecto solo cuando la configuración administrada por servidor no entrega una clave de política, aparte de las [claves que Claude Code lee de cada fuente de administrador](#keys-read-from-every-admin-source). [Cómo Claude Code combina fuentes administradas](#how-claude-code-combines-managed-sources) cubre la opción de participación que aplica ambas.91* **Sesiones en la nube**: una sesión en un entorno alojado por Anthropic no lee un perfil MDM o archivo de dispositivo, por lo que la política para ella debe provenir de la configuración administrada por servidor. Una sesión en un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuración administrada en su imagen de ejecutor, por defecto solo cuando la configuración administrada por servidor no entrega ninguna clave de política, aparte de las [claves que Claude Code lee de cada fuente de administrador](#keys-read-from-every-admin-source). [Cómo Claude Code combina fuentes administradas](#how-claude-code-combines-managed-sources) cubre la opción de participación que aplica ambas.

92* **Sesiones de Cowork**: [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop ejecuta sus sesiones en Claude Code. En una sesión de Cowork, Claude Code nunca obtiene la configuración administrada por servidor de la consola de administración de claude.ai, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise, por lo que la política que se aplica depende de dónde se ejecute la sesión:92* **Sesiones de Cowork**: [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop ejecuta sus sesiones en Claude Code. En una sesión de Cowork, Claude Code nunca obtiene la configuración administrada por servidor de la consola de administración de claude.ai, incluso cuando el usuario inicia sesión con una cuenta de Team o Enterprise, por lo que la política que se aplica depende de dónde se ejecute la sesión:

93 93 

94 * **En la máquina del usuario**: por defecto, Claude Code en una sesión de Cowork lee la política MDM o a nivel de SO y el archivo de configuración administrada en ese dispositivo, así que implemente la política allí.94 * **En la máquina del usuario**: por defecto, Claude Code en una sesión de Cowork lee la política MDM o a nivel de SO y el archivo de configuración administrada en ese dispositivo, así que implemente la política allí.


143 143 

144Cuando su organización entrega más de una fuente administrada a la misma máquina, la clave [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) decide qué hace Claude Code con las demás:144Cuando su organización entrega más de una fuente administrada a la misma máquina, la clave [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) decide qué hace Claude Code con las demás:

145 145 

146* **`"first-wins"`, el valor predeterminado**: Claude Code utiliza la fuente de mayor rango que entrega al menos una clave de política e ignora el resto en lugar de fusionarlas, aparte de las claves en [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source). Claude Code no muestra ninguna advertencia para las fuentes que omite; `/status` [nombra la fuente que utilizó y las que omitió](#read-the-source-in-/status).146* **`"first-wins"`, el valor predeterminado**: Claude Code utiliza la fuente con mayor rango que entrega al menos una clave de política e ignora el resto en lugar de fusionarlas, aparte de las claves en [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source). Claude Code no muestra ninguna advertencia para las fuentes que omite; `/status` [nombra la fuente que utilizó y las que omitió](#read-the-source-in-/status).

147* **`"merge"`**: Claude Code aplica cada fuente de administrador que entrega una clave de política y las combina por tipo de clave: en la mayoría de las claves se aplica el valor de la fuente de mayor rango, las listas se unen y los bloqueos toman el valor más restrictivo. [Componer cada fuente administrada](#compose-every-managed-source) dice dónde establecer la clave y cómo se combina cada tipo de clave. Requiere Claude Code v2.1.242 o posterior.147* **`"merge"`**: Claude Code aplica cada fuente de administrador que entrega una clave de política y las combina por tipo de clave: en la mayoría de las claves se aplica el valor de la fuente con mayor rango, las listas se unen y los bloqueos toman el valor más restrictivo. [Componer cada fuente administrada](#compose-every-managed-source) dice dónde establecer la clave y cómo se combina cada tipo de clave. Requiere Claude Code v2.1.242 o posterior.

148 148 

149Ambas configuraciones clasifican las fuentes de la misma manera. Estos términos se repiten en esta sección:149Ambas configuraciones clasifican las fuentes de la misma manera. Estos términos se repiten en esta sección:

150 150 


154Claude Code comprueba las fuentes en este orden, con la máxima prioridad primero:154Claude Code comprueba las fuentes en este orden, con la máxima prioridad primero:

155 155 

1561. Configuración remota, entregada desde claude.ai como [configuración administrada por servidor](/docs/es/server-managed-settings) o por una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway). Claude Code obtiene esta fuente solo cuando la sesión se autentica en la API de Anthropic directamente con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), o inicia sesión en una puerta de enlace con `/login`. En otros proveedores, o cuando `ANTHROPIC_BASE_URL` apunta a algún lugar que no sea la API de Anthropic, comienza en la siguiente fuente1561. Configuración remota, entregada desde claude.ai como [configuración administrada por servidor](/docs/es/server-managed-settings) o por una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway). Claude Code obtiene esta fuente solo cuando la sesión se autentica en la API de Anthropic directamente con un [inicio de sesión o clave elegible](/docs/es/server-managed-settings#platform-availability), o inicia sesión en una puerta de enlace con `/login`. En otros proveedores, o cuando `ANTHROPIC_BASE_URL` apunta a algún lugar que no sea la API de Anthropic, comienza en la siguiente fuente

1572. Políticas de MDM o a nivel del SO: la clave de registro plist de macOS o HKLM1572. Políticas de MDM o nivel del SO: la clave de registro plist de macOS o HKLM

1583. Archivos de configuración administrada, `managed-settings.d/*.json` y `managed-settings.json` fusionados juntos1583. Archivos de configuración administrada, `managed-settings.d/*.json` y `managed-settings.json` fusionados juntos

1594. El registro HKCU, en Windows, y en WSL una vez que el registro HKLM o el archivo de configuración administrada de Windows activa [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y el valor HKCU también lo establece. Claude Code lo lee solo cuando ninguna fuente anterior entrega una clave de política y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) suministra una clave restrictiva1594. El registro HKCU, en Windows, y en WSL una vez que el registro HKLM o el archivo de configuración administrada de Windows activa [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) y el valor HKCU también lo establece. Claude Code lo lee solo cuando no hay ningún documento de administrador presente arriba y ninguna [configuración principal suministrada por el host](#let-an-embedding-host-add-policy) suministra una clave restrictiva

160 

161<span id="present-admin-documents" />

162 

163Claude Code nunca aplica el registro HKCU escribible por el usuario debajo de un documento de administrador que está presente. Un documento está presente cuando establece cualquier clave de política en un valor que no sea `null`, incluso un valor que Claude Code no puede leer. Un valor HKLM, archivo de configuración administrada, o directorio `managed-settings.d` que existe pero no se puede leer también está presente. En WSL, `/etc/claude-code` también es escribible por el usuario, y la entrada [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) dice cuándo los documentos de Windows están por encima.

160 164 

161Este diagrama muestra la clasificación, con ejemplos de las claves entre fuentes que Claude Code lee de las tres primeras fuentes bajo cualquier configuración:165Este diagrama muestra la clasificación, con ejemplos de las claves entre fuentes que Claude Code lee de las tres primeras fuentes bajo cualquier configuración:

162 166 


176 180 

177* `sandbox.network.allowManagedDomainsOnly` y `sandbox.filesystem.allowManagedReadPathsOnly`: un `true` en cualquier fuente de administrador activa el bloqueo. Mientras un bloqueo está activo, Claude Code une la lista de permitidos que bloquea, `sandbox.network.allowedDomains` junto con reglas de permiso `WebFetch(domain:...)`, o `sandbox.filesystem.allowRead`, en cada fuente de administrador. Sin el bloqueo, Claude Code trata la lista de permitidos como cualquier otra clave, por lo que bajo `"first-wins"` la lista de permitidos de una fuente de administrador no seleccionada se ignora181* `sandbox.network.allowManagedDomainsOnly` y `sandbox.filesystem.allowManagedReadPathsOnly`: un `true` en cualquier fuente de administrador activa el bloqueo. Mientras un bloqueo está activo, Claude Code une la lista de permitidos que bloquea, `sandbox.network.allowedDomains` junto con reglas de permiso `WebFetch(domain:...)`, o `sandbox.filesystem.allowRead`, en cada fuente de administrador. Sin el bloqueo, Claude Code trata la lista de permitidos como cualquier otra clave, por lo que bajo `"first-wins"` la lista de permitidos de una fuente de administrador no seleccionada se ignora

178* `allowAllClaudeAiMcps`182* `allowAllClaudeAiMcps`

179* `allowManagedMcpServersOnly`: un `true` en cualquier fuente de administrador activa el bloqueo de lista de permitidos de MCP. Mientras el bloqueo está activo, la lista `allowedMcpServers` administrada proviene de la fuente de administrador de mayor rango que establece una. Una lista administrada por servidor reemplaza la lista de una fuente inferior en lugar de combinarse con ella.183* `allowManagedMcpServersOnly`: un `true` en cualquier fuente de administrador activa el bloqueo de lista de permitidos de MCP. Mientras el bloqueo está activo, la lista `allowedMcpServers` administrada proviene de la fuente de administrador con mayor rango que establece una. Una lista administrada por servidor reemplaza la lista de una fuente inferior en lugar de combinarse con ella.

180 184 

181 Si ninguna fuente de administrador establece una lista, cada servidor que pase la lista de denegación se carga, a menos que la [configuración principal](#let-an-embedding-host-add-policy) suministre una lista.185 Si ninguna fuente de administrador establece una lista, cada servidor que pase la lista de denegación se carga, a menos que [la configuración principal](#let-an-embedding-host-add-policy) suministre una lista.

182 186 

183 Sin el bloqueo, Claude Code lee `allowedMcpServers` de la fuente administrada que aplica, por lo que bajo `"first-wins"` la lista de una fuente de administrador no seleccionada se ignora. Requiere Claude Code v2.1.273 o posterior187 Sin el bloqueo, Claude Code lee `allowedMcpServers` de la fuente administrada que aplica, por lo que bajo `"first-wins"` la lista de una fuente de administrador no seleccionada se ignora. Requiere Claude Code v2.1.273 o posterior

184* `deniedMcpServers` y [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors): una entrada o un `true` en cualquier fuente de administrador se aplica. Requiere Claude Code v2.1.273 o posterior188* `deniedMcpServers` y [`disableClaudeAiConnectors`](/docs/es/settings-reference#disableclaudeaiconnectors): una entrada o un `true` en cualquier fuente de administrador se aplica. Requiere Claude Code v2.1.273 o posterior

185* Las rutas binarias de sandbox `sandbox.bwrapPath` y `sandbox.socatPath`189* Las rutas binarias de sandbox `sandbox.bwrapPath` y `sandbox.socatPath`

186* El binario `ripgrep` de sandbox, [`sandbox.ripgrep`](/docs/es/settings-reference#sandbox-ripgrep)190* El binario `ripgrep` de sandbox, [`sandbox.ripgrep`](/docs/es/settings-reference#sandbox-ripgrep)

187* `sandbox.filesystem.disabled` y `sandbox.network.strictAllowlist`191* `sandbox.filesystem.disabled` y `sandbox.network.strictAllowlist`

188* [`useAutoModeDuringPlan`](/docs/es/settings-reference#useautomodeduringplan), [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) y [`syncClaudeAiPlugins`](/docs/es/settings-reference#syncclaudeaiplugins), donde un `false` de cualquier fuente de administrador desactiva el comportamiento. Un `false` en la configuración de usuario o local del desarrollador también lo desactiva; cada clave solo puede negar192* [`useAutoModeDuringPlan`](/docs/es/settings-reference#useautomodeduringplan), [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) y [`syncClaudeAiPlugins`](/docs/es/settings-reference#syncclaudeaiplugins), donde un `false` de cualquier fuente de administrador desactiva el comportamiento. Un `false` en la configuración de usuario o local del desarrollador también lo desactiva; cada clave solo puede denegar

189* [`enableArtifact`](/docs/es/settings-reference#enableartifact), donde un `false` de cualquier fuente de administrador desactiva la [herramienta Artifact](/docs/es/artifacts). Un `false` en la configuración de usuario, proyecto o local del desarrollador también lo desactiva, y ninguna fuente lo vuelve a activar; vea [qué valores de nivel inferior aún cuentan](/docs/es/settings#exceptions-to-managed-settings-precedence). Requiere Claude Code v2.1.242 o posterior193* [`enableArtifact`](/docs/es/settings-reference#enableartifact), donde un `false` de cualquier fuente de administrador desactiva la [herramienta Artifact](/docs/es/artifacts). Un `false` en la configuración de usuario, proyecto o local del desarrollador también lo desactiva, y ninguna fuente lo vuelve a activar; vea [qué valores de nivel inferior aún cuentan](/docs/es/settings#exceptions-to-managed-settings-precedence). Requiere Claude Code v2.1.242 o posterior

190* [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel), donde se aplica el límite más bajo en cualquier fuente de administrador. Si un desarrollador establece un límite más bajo en su propia configuración o con `--settings`, Claude Code aplica ese; ninguna fuente puede aumentar el límite. Requiere Claude Code v2.1.267 o posterior194* [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel), donde se aplica el límite más bajo en cualquier fuente de administrador. Si un desarrollador establece un límite más bajo en su propia configuración o con `--settings`, Claude Code aplica ese; ninguna fuente puede aumentar el límite. Requiere Claude Code v2.1.267 o posterior

191* Una exclusión de remolque de confirmación en `attribution`, o en el `includeCoAuthoredBy` deprecado, de cualquier nivel195* Una exclusión de remolque de confirmación en `attribution`, o en el `includeCoAuthoredBy` deprecado, de cualquier nivel

192* [`forceRemoteSettingsRefresh`](/docs/es/server-managed-settings)196* [`forceRemoteSettingsRefresh`](/docs/es/server-managed-settings)

193* `env`, fusionado por variable en las fuentes de administrador: cada variable proviene de la fuente de mayor prioridad que la define, por lo que las fuentes inferiores rellenan las variables que las superiores dejan sin establecer. Algunas variables siguen sus propias reglas; [Excepciones por clave en fuentes administradas](/docs/es/server-managed-settings#per-key-exceptions-across-managed-sources) nombra cada una. Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplicaba solo el bloque `env` completo de la fuente seleccionada197* `env`, fusionado por variable en las fuentes de administrador: cada variable proviene de la fuente de mayor prioridad que la define, por lo que las fuentes inferiores rellenan las variables que las superiores dejan sin establecer. Algunas variables siguen sus propias reglas; [Excepciones por clave en fuentes administradas](/docs/es/server-managed-settings#per-key-exceptions-across-managed-sources) nombra cada una. Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplicaba solo el bloque `env` completo de la fuente seleccionada

194 198 

195Las [claves de inicio de sesión de puerta de enlace](#choose-a-delivery-mechanism) siguen una regla separada. Claude Code nunca las lee de la configuración administrada por servidor, por lo que mientras la configuración administrada por servidor es la fuente seleccionada, la fuente de administrador de mayor rango en la máquina que lleva una clave de política aún las suministra. Se ignora un valor en una fuente de administrador clasificada por debajo de esa, o en el registro HKCU.199Las [claves de inicio de sesión de puerta de enlace](#choose-a-delivery-mechanism) siguen una regla separada. Claude Code nunca las lee de la configuración administrada por servidor, por lo que mientras la configuración administrada por servidor es la fuente seleccionada, la fuente de administrador con mayor rango en la máquina que lleva una clave de política aún las suministra. Un valor en una fuente de administrador clasificada por debajo de esa, o en el registro HKCU, se ignora.

196 200 

197Cuando una fuente de administrador establece `allowManagedMcpServersOnly` o una lista `allowedMcpServers` y ese valor no es el que está en vigor, `/status` y `claude doctor` nombran esa fuente y clave.201Cuando una fuente de administrador establece `allowManagedMcpServersOnly` o una lista `allowedMcpServers` y ese valor no es el que está en vigor, `/status` y `claude doctor` nombran esa fuente y clave.

198 202 


200 Componer cada fuente administrada204 Componer cada fuente administrada

201</h3>205</h3>

202 206 

203Para que Claude Code aplique cada fuente de administrador que su organización entrega, establezca [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) en `"merge"` en la fuente de mayor rango que implemente. Claude Code lee la clave solo de la fuente de mayor rango que lleva la clave o una clave de política, por lo que una fuente inferior no puede optar por fusionarse con la fuente anterior, y una máquina que nunca recibe configuración administrada por servidor necesita la clave en su perfil MDM también. El registro HKCU escribible por el usuario nunca se fusiona con otra fuente. Requiere Claude Code v2.1.242 o posterior.207Para que Claude Code aplique cada fuente de administrador que su organización entrega, establezca [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) en `"merge"` en la fuente con mayor rango que implemente. Claude Code lee la clave solo de la fuente con mayor rango que lleva la clave o una clave de política, por lo que una fuente inferior no puede optar por fusionarse con la fuente anterior, y una máquina que nunca recibe configuración administrada por servidor necesita la clave en su perfil MDM también. El registro HKCU escribible por el usuario nunca se fusiona con otra fuente. Requiere Claude Code v2.1.242 o posterior.

204 208 

205Bajo `"merge"`, Claude Code agrega las entradas de lista de una fuente inferior, como reglas `permissions.allow` y hooks, a la política, por lo que actívelo solo cuando cada fuente clasificada por debajo de la más alta esté bajo el control de un administrador.209Bajo `"merge"`, Claude Code agrega entradas de lista de una fuente inferior, como reglas `permissions.allow` y hooks, a la política, por lo que actívelo solo cuando cada fuente clasificada por debajo de la más alta esté bajo el control de un administrador.

206 210 

207Esta tabla muestra cómo Claude Code combina cada tipo de clave bajo `"merge"`. La [entrada `managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) nombra cada clave en tres de las filas: listas de permitidos de restricción, valores tomados completos y claves leídas solo de la fuente de mayor rango.211Esta tabla muestra cómo Claude Code combina cada tipo de clave bajo `"merge"`. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) nombra cada clave en tres de las filas: listas de permitidos de restricción, valores tomados completos y claves leídas solo de la fuente con mayor rango.

208 212 

209| Tipo de clave | Cómo Claude Code la combina | Ejemplos |213| Tipo de clave | Cómo Claude Code la combina | Ejemplos |

210| :- | :- | :- |214| :- | :- | :- |

211| Listas | Combina las entradas de cada fuente | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers` |215| Listas | Combina las entradas de cada fuente | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers`, `deniedModels` |

212| Bloqueos | Aplica el valor más restrictivo que establece cualquier fuente; un valor más flexible se aplica solo de la fuente de mayor rango | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound` |216| Bloqueos | Aplica el valor más restrictivo que establece cualquier fuente; un valor más flexible se aplica solo de la fuente con mayor rango | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound`, `availableModelsMatch` |

213| Listas de permitidos de restricción | Toma la lista completa de la fuente de mayor rango que la establece, sin agregar entradas de fuentes inferiores | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins` y la cadena `fallbackModel` |217| Listas de permitidos de restricción | Toma la lista completa de la fuente con mayor rango que la establece, sin agregar entradas de fuentes inferiores | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins` y la cadena `fallbackModel` |

214| Valores tomados completos | Toma el valor completo de la fuente de mayor rango que lo establece, sin combinar entradas o campos de fuentes inferiores | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |218| Valores tomados completos | Toma el valor completo de la fuente con mayor rango que lo establece, sin combinar entradas o campos de fuentes inferiores | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |

215| Servidores MCP proporcionados | Combina los nombres de servidor de cada fuente; cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente de mayor rango | `managedMcpServers` |219| Servidores MCP proporcionados | Combina los nombres de servidor de cada fuente; cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente con mayor rango | `managedMcpServers` |

216| Claves leídas solo de la fuente de mayor rango | Ignora la clave en cada fuente inferior, incluso cuando la fuente de mayor rango la deja sin establecer | Ayudantes de credenciales como `apiKeyHelper`, pines de inicio de sesión como `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |220| Claves leídas solo de la fuente con mayor rango | Ignora la clave en cada fuente inferior, incluso cuando la fuente con mayor rango la deja sin establecer | Ayudantes de credenciales como `apiKeyHelper`, pines de inicio de sesión como `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |

217| `env` | Se fusiona por variable en fuentes de administrador bajo cualquier configuración, como [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source) describe | |221| `env` | Se fusiona por variable en fuentes de administrador bajo cualquier configuración, como [Claves leídas de cada fuente de administrador](#keys-read-from-every-admin-source) describe | |

218| Cualquier otra clave | Toma el valor de la fuente de mayor rango que lo establece | `model`, `cleanupPeriodDays` |222| Cualquier otra clave | Toma el valor de la fuente con mayor rango que lo establece | `model`, `cleanupPeriodDays` |

219 223 

220Para confirmar qué fuentes se combinaron en una máquina, [lea la línea `Setting sources` en `/status`](#read-the-source-in-/status); esa sección dice qué significa cada etiqueta.224Para confirmar qué fuentes se combinaron en una máquina, [lea la línea `Setting sources` en `/status`](#read-the-source-in-/status); esa sección dice qué significa cada etiqueta.

221 225 


227 231 

228* **El objeto `managedSettings` emitido es la única configuración administrada para la sesión**, incluyendo para las [claves que de otro modo lee de cada fuente de administrador](#keys-read-from-every-admin-source), aparte de [`forceRemoteSettingsRefresh`, que tiene su propia regla de inicio](/docs/es/settings-reference#forceremotesettingsrefresh)232* **El objeto `managedSettings` emitido es la única configuración administrada para la sesión**, incluyendo para las [claves que de otro modo lee de cada fuente de administrador](#keys-read-from-every-admin-source), aparte de [`forceRemoteSettingsRefresh`, que tiene su propia regla de inicio](/docs/es/settings-reference#forceremotesettingsrefresh)

229 233 

230Para qué fallos de auxiliar se ejecutan y qué hace Claude Code cuando uno lo hace, vea [Fallos de auxiliar](/docs/es/settings-reference#helper-failures).234Para qué fallos de auxiliar, y qué hace Claude Code cuando uno lo hace, vea [Fallos de auxiliar](/docs/es/settings-reference#helper-failures).

231 235 

232<span id="parent-settings-from-embedding-hosts" />236<span id="parent-settings-from-embedding-hosts" />

233 237 


241 245 

242Cuando otra aplicación inicia Claude Code, como Claude Desktop, una extensión IDE o una aplicación Agent SDK, ese host puede pasar su propia configuración administrada a través de la opción SDK `managedSettings`. Claude Code llama a estas configuraciones principales.246Cuando otra aplicación inicia Claude Code, como Claude Desktop, una extensión IDE o una aplicación Agent SDK, ese host puede pasar su propia configuración administrada a través de la opción SDK `managedSettings`. Claude Code llama a estas configuraciones principales.

243 247 

244De forma predeterminada, Claude Code ignora la configuración principal siempre que una fuente de administrador esté presente: configuración administrada por servidor, una política MDM o a nivel del SO, o un archivo de configuración administrada.248De forma predeterminada, Claude Code ignora la configuración principal siempre que una fuente de administrador esté presente: configuración administrada por servidor, una política de MDM o nivel del SO, o un archivo de configuración administrada.

245 249 

246Para que Claude Code fusione la configuración principal junto con una fuente de administrador, establezca [`parentSettingsBehavior`](/docs/es/settings-reference#parentsettingsbehavior) en `"merge"` en la fuente administrada de mayor prioridad; Claude Code lee la clave solo de esa fuente.250Para que Claude Code fusione la configuración principal junto con una fuente de administrador, establezca [`parentSettingsBehavior`](/docs/es/settings-reference#parentsettingsbehavior) en `"merge"` en la fuente administrada de mayor prioridad; Claude Code lee la clave solo de esa fuente.

247 251 


254* Cuando cualquier fuente de administrador establece `allowManagedPermissionRulesOnly`, Claude Code descarta [reglas de permiso de permitidos suministradas por el principal](/docs/es/claude-apps-gateway#restrict-parent-settings) y `additionalDirectories` mientras las lee, incluso cuando una fuente de mayor prioridad deja la clave sin establecer. El efecto de la clave en sus propias reglas de permiso proviene de la configuración administrada que Claude Code aplica, o de la configuración principal que ha elegido fusionar258* Cuando cualquier fuente de administrador establece `allowManagedPermissionRulesOnly`, Claude Code descarta [reglas de permiso de permitidos suministradas por el principal](/docs/es/claude-apps-gateway#restrict-parent-settings) y `additionalDirectories` mientras las lee, incluso cuando una fuente de mayor prioridad deja la clave sin establecer. El efecto de la clave en sus propias reglas de permiso proviene de la configuración administrada que Claude Code aplica, o de la configuración principal que ha elegido fusionar

255* Claude Code aplica el valor `forceLoginOrgUUID` o `allowedMcpServers` en la configuración administrada que aplica y bloquea uno suministrado por el principal. Fuera del bloqueo de lista de permitidos de MCP, un valor en una fuente de administrador inferior que Claude Code no aplica ni se aplica ni bloquea el del principal.259* Claude Code aplica el valor `forceLoginOrgUUID` o `allowedMcpServers` en la configuración administrada que aplica y bloquea uno suministrado por el principal. Fuera del bloqueo de lista de permitidos de MCP, un valor en una fuente de administrador inferior que Claude Code no aplica ni se aplica ni bloquea el del principal.

256 260 

257 En Claude Code v2.1.273 o posterior, mientras `allowManagedMcpServersOnly` está activo, la lista `allowedMcpServers` de la fuente de administrador de mayor rango que establece una se aplica y bloquea la del principal, como una [clave entre fuentes](#keys-read-from-every-admin-source). La lista del principal se aplica solo cuando ninguna fuente de administrador establece una. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente suministra cada clave bajo `"merge"`. Antes de v2.1.223, un valor en cualquier fuente de administrador bloqueaba el del principal261 En Claude Code v2.1.273 o posterior, mientras `allowManagedMcpServersOnly` está activo, la lista `allowedMcpServers` de la fuente de administrador con mayor rango que establece una se aplica y bloquea la del principal, como una [clave entre fuentes](#keys-read-from-every-admin-source). La lista del principal se aplica solo cuando ninguna fuente de administrador establece una. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente suministra cada clave bajo `"merge"`. Antes de v2.1.223, un valor en cualquier fuente de administrador bloqueaba la del principal

258* Para `availableModels`, Claude Code aplica el valor en la configuración administrada que aplica y bloquea una lista suministrada por el principal262* Para `availableModels`, Claude Code aplica el valor en la configuración administrada que aplica y bloquea una lista suministrada por el principal

259* Para `strictKnownMarketplaces`, Claude Code asimismo aplica la lista en la configuración administrada que aplica y bloquea una suministrada por el principal. La lista del principal se aplica solo cuando ninguna fuente administrada aplicada establece una. Requiere Claude Code v2.1.282 o posterior263* Para `strictKnownMarketplaces`, Claude Code asimismo aplica la lista en la configuración administrada que aplica y bloquea una suministrada por el principal. La lista del principal se aplica solo cuando ninguna fuente administrada aplicada establece una. Requiere Claude Code v2.1.282 o posterior

260* Un `blockedMarketplaces` suministrado por el principal se aplica además de cualquier lista de denegación que una fuente administrada establece. Requiere Claude Code v2.1.282 o posterior264* Un `blockedMarketplaces` suministrado por el principal se aplica además de cualquier lista de denegación que una fuente administrada establece. Requiere Claude Code v2.1.282 o posterior


287Los archivos de configuración propios de un desarrollador, valores `--settings` y archivos de proyecto nunca anulan un valor administrado; las [excepciones](/docs/es/settings#exceptions-to-managed-settings-precedence) solo permiten que un valor de nivel inferior más restrictivo cuente. Estos casos se encuentran fuera de esa regla:291Los archivos de configuración propios de un desarrollador, valores `--settings` y archivos de proyecto nunca anulan un valor administrado; las [excepciones](/docs/es/settings#exceptions-to-managed-settings-precedence) solo permiten que un valor de nivel inferior más restrictivo cuente. Estos casos se encuentran fuera de esa regla:

288 292 

289* **El modelo para una sesión**: un `model` administrado es un valor predeterminado, no un bloqueo. `--model` y `ANTHROPIC_MODEL` aún seleccionan el modelo para esa sesión, por lo que implemente [`availableModels`](/docs/es/settings-reference#availablemodels) para restringir la opción.293* **El modelo para una sesión**: un `model` administrado es un valor predeterminado, no un bloqueo. `--model` y `ANTHROPIC_MODEL` aún seleccionan el modelo para esa sesión, por lo que implemente [`availableModels`](/docs/es/settings-reference#availablemodels) para restringir la opción.

290* **Derechos de administrador local**: un desarrollador que es administrador en la máquina puede editar la fuente administrada en sí, por lo que las herramientas MDM pueden reimplementar el perfil o archivo en un cronograma y por qué existen el registro HKLM y el dominio de preferencias administradas de macOS.294* **Derechos de administrador local**: un desarrollador que es administrador en la máquina puede editar la fuente administrada en sí, por lo que la herramienta MDM puede reimplementar el perfil o archivo en un cronograma y por qué el registro HKLM y el dominio de preferencias administradas de macOS existen.

291* **La caché de configuración administrada por servidor**: la configuración administrada por servidor proviene de los servidores de Anthropic, y una edición en la caché local [dura solo hasta la siguiente obtención exitosa](/docs/es/server-managed-settings#security-considerations).295* **La caché de configuración administrada por servidor**: la configuración administrada por servidor proviene de los servidores de Anthropic, y una edición en la caché local [dura solo hasta la siguiente obtención exitosa](/docs/es/server-managed-settings#security-considerations).

292* **Otras herramientas**: la configuración administrada vincula solo Claude Code. Un desarrollador que llama a la API desde otra herramienta no está bajo ellas.296* **Otras herramientas**: la configuración administrada vincula solo Claude Code. Un desarrollador que llama a la API desde otra herramienta no está bajo ellas.

293 297 


332 Encontrar entradas que Claude Code descartó336 Encontrar entradas que Claude Code descartó

333</h3>337</h3>

334 338 

335Cuando un archivo de configuración administrada, perfil MDM, valor de registro o carga administrada por servidor falla la validación del esquema, Claude Code primero omite las entradas individuales que puede reparar, como una regla de permiso inválida, con una advertencia para cada una, luego descarta cualquier clave de nivel superior cuyo valor aún falla y continúa aplicando cada clave válida restante.339Si su archivo de configuración administrada, perfil MDM, valor de registro o carga administrada por servidor falla la validación del esquema, Claude Code primero omite cada entrada individual que puede reparar, como una regla de permiso inválida, y advierte sobre cada una. Claude Code luego descarta cualquier valor que aún falla, a menos que el valor pertenezca a una de las claves que [fallan cerradas](#keys-that-fail-closed) en su lugar.

336 340 

337Claude Code es más estricto con el `managedSettings` que un [`policyHelper`](/docs/es/settings-reference#policyhelper) emite: realiza las mismas reparaciones de entrada, pero cualquier violación de esquema que sobreviva falla toda la ejecución del auxiliar, y al inicio Claude Code se niega a iniciar, lo mismo que para un auxiliar que sale con código distinto de cero.341Claude Code es más estricto con el `managedSettings` que un [`policyHelper`](/docs/es/settings-reference#policyhelper) emite: realiza las mismas reparaciones de entrada, pero cualquier violación de esquema que sobreviva falla toda la ejecución del auxiliar, y al inicio Claude Code se niega a iniciar, lo mismo que para un auxiliar que sale con código distinto de cero.

338 342 


360 Claves que fallan cerradas364 Claves que fallan cerradas

361</h4>365</h4>

362 366 

363Algunas claves de aplicación no se descartan cuando son inválidas. Claude Code aplica una reserva más restrictiva hasta que se corrija el valor; la tabla muestra qué aplica para cada clave:367Cuando una fuente administrada establece una clave de nivel superior que tiene un único valor restrictivo, como `allowManagedPermissionRulesOnly`, `disableAutoMode` o `skipDangerousModePermissionPrompt`, a algo que Claude Code no puede leer, la clave se lee como ese valor hasta que lo corrija. El informe dice que la clave `was present but invalid` y nombra el valor que Claude Code la trata como. Para una clave dentro de `sandbox`, consulte [Valores inválidos dentro de `sandbox`](#invalid-values-inside-sandbox).

368 

369Estos casos no fallan cerrados:

370 

371* Un `null` elimina la clave.

372* Un `disableAllHooks` inválido, incluso un booleano entrecomillado, se descarta con una advertencia, porque aplicar `true` también descargaría los hooks que su propia configuración administrada implementa.

373* Para cada otra clave booleana que cubre la regla, la cadena `"true"` o `"false"` se lee como ese booleano, con un aviso en `/status` pidiéndole que elimine las comillas.

374 

375Claude Code repara los bloques `permissions`, `autoMode`, `worktree` y `attribution` por campo en lugar de descartarlos completamente:

376 

377* Un bloqueo dentro de uno, como `permissions.disableBypassPermissionsMode`, se lee como su valor restrictivo.

378* Un `permissions.defaultMode` inválido se lee como `default`.

379* Mientras que una lista `deny` o `ask` en `permissions` no se puede leer en absoluto, Claude Code retiene `allow` y `additionalDirectories`, por lo que las concesiones nunca se aplican sin las restricciones escritas al lado. El informe nombra cada concesión retenida y la lista que no se pudo leer.

380* En `autoMode`, una lista `soft_deny` o `hard_deny` que no se puede leer, o que perdió una entrada inválida, retiene `allow` y `environment` de la misma manera.

381 

382La regla de fallo cerrado para claves con un único valor restrictivo y las reparaciones por campo requieren Claude Code v2.1.282 o posterior.

383 

384Estas claves tienen su propia reserva:

364 385 

365| Campo | Comportamiento cuando está presente pero es inválido |386| Campo | Comportamiento cuando está presente pero es inválido |

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


369| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |390| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

370| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |391| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |

371| `strictKnownMarketplaces` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ninguna [fuente de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) se admite. Una entrada individual que es inválida o no se puede aplicar, como una expresión regular `hostPattern` que no se compila, se elimina y el subconjunto válido se aplica. |392| `strictKnownMarketplaces` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ninguna [fuente de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) se admite. Una entrada individual que es inválida o no se puede aplicar, como una expresión regular `hostPattern` que no se compila, se elimina y el subconjunto válido se aplica. |

372| `allowManagedHooksOnly` | Se trata como `true` hasta que se corrija: se aplican las [restricciones de hook](/docs/es/settings-reference#allowmanagedhooksonly) y, a menos que `disableCommandPluginSources` sea explícitamente `false`, los plugins de origen de comando se desactivan. |

373| `allowManagedMcpServersOnly` | Se trata como `true`. |

374| `disableCommandPluginSources` | Se trata como `true`, por lo que los plugins de origen de comando permanecen desactivados hasta que se corrija el valor. |

375| `disableSideloadFlags` | Se trata como `true` hasta que se corrija el valor, con los efectos enumerados para [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags). |

376| `availableModels` | Se aplica como una lista de permitidos vacía hasta que se corrija, por lo que solo el modelo predeterminado está disponible; una entrada que no es cadena se elimina y el subconjunto válido se aplica. |393| `availableModels` | Se aplica como una lista de permitidos vacía hasta que se corrija, por lo que solo el modelo predeterminado está disponible; una entrada que no es cadena se elimina y el subconjunto válido se aplica. |

377| `enforceAvailableModels` | Se trata como `true`. |394| [`availableModelsMatch`](/docs/es/settings-reference#availablemodelsmatch) | Se trata como `exact` hasta que se corrija el valor. |

378| `syncClaudeAiPlugins` | Se trata como `false`, por lo que la sincronización de [plugins de claude.ai](/docs/es/settings-reference#syncclaudeaiplugins) está desactivada hasta que se corrija el valor. |

379| `forceLoginOrgUUID` | Ninguna organización puede iniciar sesión hasta que se corrija el valor. |395| `forceLoginOrgUUID` | Ninguna organización puede iniciar sesión hasta que se corrija el valor. |

380| `gatewayInternalNetworks` | Cuando el valor inválido proviene de la fuente administrada más alta en la máquina, `/login` rechaza cada nuevo inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en esa máquina hasta que se corrija el valor. |396| `gatewayInternalNetworks` | Cuando el valor inválido proviene de la fuente administrada más alta en la máquina, `/login` rechaza cada nuevo inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en esa máquina hasta que se corrija el valor. |

381| `crossSessionInbound` | Se trata como `refuse`, el valor más restrictivo, por lo que los [mensajes entre sesiones](/docs/es/cross-session-messaging#control-inbound-messages) entrantes se rechazan hasta que se corrija el valor. El desarrollador ve [una advertencia](/docs/es/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |397| `crossSessionInbound` | Se trata como `refuse`, el valor más restrictivo, por lo que los [mensajes entre sesiones](/docs/es/cross-session-messaging#control-inbound-messages) entrantes se rechazan hasta que se corrija el valor. El desarrollador ve [una advertencia](/docs/es/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

382| `deniedMcpServers` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Un valor completamente inválido se descarta con una advertencia, ya que negar cada servidor bloquearía servidores que la política nunca nombró. |398| `deniedMcpServers` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Un valor completamente inválido se descarta con una advertencia, ya que negar cada servidor bloquearía servidores que la política nunca nombró. |

399| [`deniedModels`](/docs/es/settings-reference#deniedmodels) | Una entrada que no es cadena se elimina y el resto de la lista se aplica. Un valor completamente inválido se descarta con una advertencia y no bloquea ningún modelo hasta que se corrija. |

383| `blockedMarketplaces` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Una entrada que se analiza pero nunca puede coincidir, como una expresión regular `hostPattern` que no se compila, se mantiene con una advertencia. No bloquea nada hasta que se corrija, pero las [restricciones de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) permanecen activas. Un valor completamente inválido se descarta con una advertencia, ya que bloquear cada marketplace bloquearía fuentes que la política nunca nombró. |400| `blockedMarketplaces` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Una entrada que se analiza pero nunca puede coincidir, como una expresión regular `hostPattern` que no se compila, se mantiene con una advertencia. No bloquea nada hasta que se corrija, pero las [restricciones de marketplace](/docs/es/plugins/org#restrict-what-users-can-install) permanecen activas. Un valor completamente inválido se descarta con una advertencia, ya que bloquear cada marketplace bloquearía fuentes que la política nunca nombró. |

384| `sandbox.credentials` | Una entrada inválida recuperable se degrada a `mode: "deny"` con una advertencia; una irrecuperable se elimina; las entradas válidas permanecen aplicadas. Consulte [entradas de credenciales inválidas](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings) |401| `sandbox` | Cuando un valor dentro del bloque es inválido, Claude Code no descarta el bloque completo. Para lo que sucede con cada tipo de campo inválido, consulte [Valores inválidos dentro de `sandbox`](#invalid-values-inside-sandbox). |

402| `sandbox.credentials` | Una entrada inválida recuperable se degrada a `mode: "deny"` con una advertencia; una irrecuperable se elimina; las entradas válidas permanecen aplicadas. Consulte [entradas de credenciales inválidas](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings). |

403| `strictPluginOnlyCustomization` | Se trata como `true`, bloqueando las cuatro superficies, cuando el valor no es ni un booleano ni una matriz. Una entrada de matriz que esta versión no reconoce como una superficie no bloquea nada; una nota de estado cuenta tales entradas para que pueda verificarlas en busca de errores tipográficos. |

404| `enabledPlugins` | Una entrada inválida se descarta con una advertencia y las otras entradas permanecen aplicadas. Un valor que no es un mapa de IDs de plugin, o cuya cada entrada es inválida, se descarta completamente con una advertencia. |

385 405 

386`allowedHttpHookUrls` y `httpHookAllowedEnvVars` se fusionan en archivos de configuración, por lo que las entradas en su configuración de usuario, proyecto o local aún se aplican mientras la lista administrada está vacía.406`allowedHttpHookUrls` y `httpHookAllowedEnvVars` se fusionan en archivos de configuración, por lo que las entradas en su configuración de usuario, proyecto o local aún se aplican mientras la lista administrada está vacía.

387 407 

388Las reservas para esas dos claves y para `allowedChannelPlugins` requieren Claude Code v2.1.267 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Las reservas para `strictKnownMarketplaces`, `blockedMarketplaces` y `disableSideloadFlags` requieren Claude Code v2.1.277 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida.408Las reservas para esas dos claves y para `allowedChannelPlugins` requieren Claude Code v2.1.267 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Las reservas para `strictKnownMarketplaces` y `blockedMarketplaces` requieren Claude Code v2.1.277 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Las reservas para `strictPluginOnlyCustomization` y `enabledPlugins` requieren Claude Code v2.1.282 o posterior.

389 409 

390`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se descarta en lugar de aplicarse.410`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se descarta en lugar de aplicarse.

391 411 

392Esta tolerancia se aplica solo a la configuración administrada. Los archivos de configuración de usuario, proyecto y local permanecen estrictos: un archivo cuyo JSON o forma de nivel superior falla la validación se rechaza completamente y se reporta, y una entrada individual que falla, como una regla de permiso malformada, se omite con una advertencia mientras el resto del archivo se aplica.412Esta tolerancia se aplica solo a la configuración administrada. Los archivos de configuración de usuario, proyecto y local permanecen estrictos: un archivo cuyo JSON o forma de nivel superior falla la validación se rechaza completamente y se reporta, y una entrada individual que falla, como una regla de permiso malformada, se omite con una advertencia mientras el resto del archivo se aplica.

393 413 

414<h4 id="invalid-values-inside-sandbox">

415 Valores inválidos dentro de `sandbox`

416</h4>

417 

418Cuando un valor en su bloque `sandbox` administrado es inválido, Claude Code no descarta el bloque completo, porque valida cada campo por su cuenta. Este manejo por campo requiere Claude Code v2.1.283 o posterior. En versiones anteriores a v2.1.283, Claude Code descarta cada campo `sandbox` excepto [`credentials`](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings) cuando un valor fuera de `credentials` es inválido.

419 

420La advertencia que obtiene para un campo inválido nombra el campo y le dice qué sucede con él. Lo que sucede depende de lo que controle el campo:

421 

422* Si establece una clave booleana en un `"true"` o `"false"` entrecomillado, el valor cuenta como ese booleano. En lugar de una advertencia, `/status` muestra un aviso pidiéndole que elimine las comillas.

423* Si `failIfUnavailable` es inválido, Claude Code descarta el valor en lugar de tratarlo como `true`, por lo que un valor ilegible nunca detiene sesiones de iniciarse en toda su flota.

424* Claude Code trata cada otro booleano inválido como el valor que mantiene el sandbox más estricto hasta que lo corrija. Una clave que activa el sandbox o una de sus restricciones, como `enabled` o `network.allowManagedDomainsOnly`, cuenta como `true`. Una clave que lo afloja, como `allowUnsandboxedCommands`, cuenta como `false`.

425* En una lista fuera de `credentials`, como `excludedCommands` o `network.allowedDomains`, Claude Code descarta una entrada inválida y mantiene el resto de la lista. Una lista que no es una matriz, o que no tiene una entrada válida, no se aplica en absoluto.

426* Mientras `network.deniedDomains` o cualquier entrada en ella es inválida, Claude Code también retiene `network.allowedDomains`, por lo que la lista de permitidos administrada no otorga nada hasta que corrija la lista de denegación.

427* Mientras `filesystem.denyRead`, `filesystem.denyWrite`, o cualquier entrada en cualquiera de ellas es inválida, Claude Code también retiene tanto `filesystem.allowRead` como `filesystem.allowWrite` hasta que corrija la lista de denegación.

428 

394<span id="managed-only-settings" />429<span id="managed-only-settings" />

395 430 

396<h2 id="keys-only-a-managed-source-can-set">431<h2 id="keys-only-a-managed-source-can-set">


401 436 

402La mayoría de ellas son bloqueos: el valor que un bloqueo rige, como reglas de permisos o `sandbox.network.allowedDomains`, es una clave ordinaria que cualquier nivel puede establecer, y el bloqueo le dice a Claude Code que honre solo el valor administrado.437La mayoría de ellas son bloqueos: el valor que un bloqueo rige, como reglas de permisos o `sandbox.network.allowedDomains`, es una clave ordinaria que cualquier nivel puede establecer, y el bloqueo le dice a Claude Code que honre solo el valor administrado.

403 438 

404La tabla cubre los controles de permisos, plugins y entrega. Para cualquier clave no enumerada aquí, la columna Scope de la [referencia de configuración](/docs/es/settings-reference#all-settings) dice si es solo administrada; las claves solo administradas restantes allí incluyen la URL de inicio de sesión de puerta de enlace, versión, navegador, simulador móvil, host SSH, sesión local de Desktop, ruta binaria de sandbox, precios de modelo y controles CLAUDE.md.439La tabla cubre los controles de permisos, plugins y entrega. Para cualquier clave no enumerada aquí, la columna Scope de la [referencia de configuración](/docs/es/settings-reference#all-settings) dice si es solo administrada; las claves solo administradas restantes allí incluyen la URL de inicio de sesión de puerta de enlace, versión, navegador, simulador móvil, host SSH, sesión local de Desktop, ruta binaria de sandbox, precios de modelo, restricción de modelo y controles CLAUDE.md.

405 440 

406| Configuración | Descripción |441| Configuración | Descripción |

407| :- | :- |442| :- | :- |


425| [`sandbox.network.allowManagedDomainsOnly`](/docs/es/settings-reference#sandbox-network-allowmanageddomainsonly) | Honre solo los dominios `allowedDomains` administrados y las reglas de permitidos `WebFetch(domain:...)`; bloquee otros dominios sin preguntar |460| [`sandbox.network.allowManagedDomainsOnly`](/docs/es/settings-reference#sandbox-network-allowmanageddomainsonly) | Honre solo los dominios `allowedDomains` administrados y las reglas de permitidos `WebFetch(domain:...)`; bloquee otros dominios sin preguntar |

426| [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) | Controla qué fuentes de mercado de plugins pueden agregar los usuarios e instalar plugins. Consulte [restricciones de mercado administradas](/docs/es/plugins/org#restrict-what-users-can-install) |461| [`strictKnownMarketplaces`](/docs/es/settings-reference#strictknownmarketplaces) | Controla qué fuentes de mercado de plugins pueden agregar los usuarios e instalar plugins. Consulte [restricciones de mercado administradas](/docs/es/plugins/org#restrict-what-users-can-install) |

427| [`strictPluginOnlyCustomization`](/docs/es/settings-reference#strictpluginonlycustomization) | Bloquee skills, agentes, hooks y servidores MCP de fuentes de usuario y proyecto; `true` bloquea los cuatro, una matriz nombra cuál |462| [`strictPluginOnlyCustomization`](/docs/es/settings-reference#strictpluginonlycustomization) | Bloquee skills, agentes, hooks y servidores MCP de fuentes de usuario y proyecto; `true` bloquea los cuatro, una matriz nombra cuál |

428| [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) | Cuando se establece en el registro HKLM o un archivo bajo `C:\Program Files\ClaudeCode`, haga que WSL lea la cadena de política de Windows, y lea `/etc/claude-code` solo cuando ningún archivo de configuración administrada o complemento bajo ese directorio entregue una [clave de política](#how-claude-code-combines-managed-sources); la entrada da el orden |463| [`wslInheritsWindowsSettings`](/docs/es/settings-reference#wslinheritswindowssettings) | Cuando se establece en el registro HKLM o un archivo bajo `C:\Program Files\ClaudeCode`, haga que WSL lea la cadena de política de Windows, y lea `/etc/claude-code` solo cuando [no hay ningún documento de administrador presente](#present-admin-documents); la entrada da el orden |

429 464 

430<Note>465<Note>

431 En planes de Team y Enterprise, un Owner habilita o deshabilita [Remote Control](/docs/es/remote-control) y [sesiones web](/docs/es/claude-code-on-the-web) en toda la organización en [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control también se puede deshabilitar por dispositivo con la configuración [`disableRemoteControl`](/docs/es/settings-reference#disableremotecontrol). Las sesiones web no tienen clave de configuración administrada por dispositivo.466 En planes de Team y Enterprise, un Owner habilita o deshabilita [Remote Control](/docs/es/remote-control) y [sesiones en la nube](/docs/es/claude-code-on-the-web) en toda la organización en [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control también se puede deshabilitar por dispositivo con la configuración [`disableRemoteControl`](/docs/es/settings-reference#disableremotecontrol). Las sesiones en la nube no tienen clave de configuración administrada por dispositivo.

432 467 

433 Para verificar si estas configuraciones de organización llegaron a una máquina determinada, ejecute `claude doctor` allí y lea la línea `Organization policy`, que dice dónde Claude Code cargó la política o por qué no la cargó. Requiere Claude Code v2.1.261 o posterior. En una sesión en ejecución, `/status` muestra la misma línea cuando la política no se cargó.468 Para verificar si estas configuraciones de organización llegaron a una máquina determinada, ejecute `claude doctor` allí y lea la línea `Organization policy`, que dice dónde Claude Code cargó la política o por qué no la cargó. Requiere Claude Code v2.1.261 o posterior. En una sesión en ejecución, `/status` muestra la misma línea cuando la política no se cargó.

434</Note>469</Note>


449 484 

450Claude Code aplica un valor de `1` sin mostrar al usuario el [diálogo de aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog).485Claude Code aplica un valor de `1` sin mostrar al usuario el [diálogo de aprobación](/docs/es/server-managed-settings#environment-variables-and-the-approval-dialog).

451 486 

452Si desactiva la telemetría, Claude Code deja de enviar los datos de uso que alimentan el [panel de análisis](/docs/es/analytics) de su organización para los desarrolladores que la política alcanza. La variable también desactiva la obtención de indicadores de características, lo que hace que Remote Control, modo automático predeterminado y las otras [características que necesitan obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) no estén disponibles para esos desarrolladores.487Si desactiva la telemetría, Claude Code deja de enviar los datos de uso que alimentan el [panel de análisis](/docs/es/analytics) de su organización para los desarrolladores que la política alcanza. La variable también desactiva la [obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) para esos desarrolladores. Para Remote Control, consulte los [requisitos de Remote Control](/docs/es/remote-control#requirements).

453 488 

454[Dónde y cuándo se aplica una política](#where-and-when-a-policy-applies) dice qué mecanismo de entrega alcanza cada superficie, y [Disponibilidad de plataforma](/docs/es/server-managed-settings#platform-availability) dice qué sesiones omiten la obtención de configuración administrada por servidor.489[Dónde y cuándo se aplica una política](#where-and-when-a-policy-applies) dice qué mecanismo de entrega alcanza cada superficie, y [Disponibilidad de plataforma](/docs/es/server-managed-settings#platform-availability) dice qué sesiones omiten la obtención de configuración administrada por servidor.

455 490 

mcp.md +86 −69

Details

92 92 

93Una entrada JSON que tiene una `url` pero no tiene `type` es un error de configuración, porque Claude Code lee una entrada sin `type` como un servidor stdio. Claude Code omite ese servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes de v2.1.202, Claude Code informaba esta configuración incorrecta como `command: expected string, received undefined`.93Una entrada JSON que tiene una `url` pero no tiene `type` es un error de configuración, porque Claude Code lee una entrada sin `type` como un servidor stdio. Claude Code omite ese servidor e informa `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Antes de v2.1.202, Claude Code informaba esta configuración incorrecta como `command: expected string, received undefined`.

94 94 

95Solo una aplicación host del SDK, como una aplicación [Agent SDK](/docs/es/agent-sdk/mcp) o la [aplicación de escritorio](/docs/es/desktop), puede registrar un servidor `"type": "sdk"` en proceso. Claude Code omite una entrada `"type": "sdk"` en `.mcp.json`, `~/.claude.json`, o configuración e informa `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 

95En ejecuciones `--output-format stream-json`, Claude Code también informa una entrada `--mcp-config` omitida en el campo [`mcp_server_errors`](/docs/es/headless#stream-responses) del evento `system/init`, para que los scripts puedan detectar que el servidor nunca se cargó. Esto requiere Claude Code v2.1.219 o posterior.97En ejecuciones `--output-format stream-json`, Claude Code también informa una entrada `--mcp-config` omitida en el campo [`mcp_server_errors`](/docs/es/headless#stream-responses) del evento `system/init`, para que los scripts puedan detectar que el servidor nunca se cargó. Esto requiere Claude Code v2.1.219 o posterior.

96 98 

97<h3 id="option-2-add-a-remote-sse-server">99<h3 id="option-2-add-a-remote-sse-server">


297 299 

298El caché de descubrimiento está desactivado de forma predeterminada a menos que un lanzamiento gradual lo haya habilitado para su cuenta. Establezca [`MCP_DISCOVERY_CACHE=1`](/docs/es/env-vars) para activarlo, o `0` para mantenerlo desactivado incluso cuando el lanzamiento lo haya habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada.300El caché de descubrimiento está desactivado de forma predeterminada a menos que un lanzamiento gradual lo haya habilitado para su cuenta. Establezca [`MCP_DISCOVERY_CACHE=1`](/docs/es/env-vars) para activarlo, o `0` para mantenerlo desactivado incluso cuando el lanzamiento lo haya habilitado. Antes de v2.1.238, el caché estaba activado de forma predeterminada.

299 301 

300Dos acciones en el menú de un servidor en `/mcp` también afectan la entrada de caché de ese servidor:302Cuando selecciona **Disable** o **Clear authentication** desde el menú de un servidor en `/mcp`, Claude Code también descarta la entrada de caché de ese servidor. **Reconnect** también la descarta en un servidor conectado o fallido; en un servidor `cached`, **Reconnect** conecta el servidor ahora y mantiene la entrada. La próxima vez que Claude Code se conecte al servidor después de descartar la entrada, obtiene la lista de herramientas del servidor en lugar de del caché.

301 

302* **Reconnect**: en un servidor `cached`, Claude Code lo conecta ahora en lugar de en su primera llamada de herramienta y mantiene la entrada. En un servidor conectado o fallido, Claude Code lo reconecta y también descarta la entrada.

303* **Clear authentication**: Claude Code revoca la autenticación del servidor y también descarta la entrada.

304 

305Después de descartar la entrada, Claude Code obtiene la lista de herramientas del servidor desde el servidor en lugar de desde el caché.

306 303 

307Cuando el estado de un servidor es `✘ Failed to connect`, `claude mcp list` agrega el detalle de falla a esa línea de estado, y `claude mcp get <name>` lo muestra en una línea `Issue:`: el estado HTTP o código de error, más cualquier texto de error que el servidor devolvió. La vista de detalle del servidor en `/mcp` incluye el mismo texto informado por el servidor en su fila `Issue:`. Claude Code redacta texto similar a credenciales de este detalle y nunca incluye la URL del servidor expandida, que puede llevar secretos. Claude Code no agrega detalle a un estado `✘ Connection error`, porque el texto de excepción que imprimiría allí puede incrustar esa URL. Antes de v2.1.219, ambos comandos mostraban solo el estado de falla desnudo, sin el código de estado o el texto de error del servidor.304Cuando el estado de un servidor es `✘ Failed to connect`, `claude mcp list` agrega el detalle de falla a esa línea de estado, y `claude mcp get <name>` lo muestra en una línea `Issue:`: el estado HTTP o código de error, más cualquier texto de error que el servidor devolvió. La vista de detalle del servidor en `/mcp` incluye el mismo texto informado por el servidor en su fila `Issue:`. Claude Code redacta texto similar a credenciales de este detalle y nunca incluye la URL del servidor expandida, que puede llevar secretos. Claude Code no agrega detalle a un estado `✘ Connection error`, porque el texto de excepción que imprimiría allí puede incrustar esa URL. Antes de v2.1.219, ambos comandos mostraban solo el estado de falla desnudo, sin el código de estado o el texto de error del servidor.

308 305 


6694. [Servidores proporcionados por plugins](/docs/es/plugins/components#mcp-servers)6664. [Servidores proporcionados por plugins](/docs/es/plugins/components#mcp-servers)

6705. [Conectores de claude.ai](#use-mcp-servers-from-claude-ai)6675. [Conectores de claude.ai](#use-mcp-servers-from-claude-ai)

671 668 

672Los tres alcances coinciden duplicados por nombre. Los plugins y conectores coinciden por punto final, por lo que uno que apunta a la misma URL o comando que un servidor anterior se trata como un duplicado.669Claude Code coincide duplicados en los tres alcances por nombre. Los plugins y conectores coinciden por punto final, por lo que uno que apunta a la misma URL o comando que un servidor anterior se trata como un duplicado.

670 

671Dos ortografías de URL cuentan como el mismo punto final cuando difieren solo en la mayúscula y minúscula de la letra del esquema u host, el puerto predeterminado del esquema, como `:443` en `https`, o una barra diagonal final. Una ruta diferente, cadena de consulta, información de usuario o puerto no predeterminado hace que sean servidores diferentes.

673 672 

674Un servidor que su organización proporciona a través de la configuración administrada [`managedMcpServers`](/docs/es/managed-mcp#provide-servers-through-managed-settings) se clasifica por encima de todos estos, por lo que cuando uno de ellos lo duplica, Claude Code conecta la definición de la organización. Requiere Claude Code v2.1.259 o posterior.673Un servidor que su organización proporciona a través de la configuración administrada [`managedMcpServers`](/docs/es/managed-mcp#provide-servers-through-managed-settings) se clasifica por encima de todos estos, por lo que cuando uno de ellos lo duplica, Claude Code conecta la definición de la organización. Requiere Claude Code v2.1.259 o posterior.

675 674 


821 820 

822Muchos servidores MCP basados en la nube requieren autenticación. Claude Code admite OAuth 2.0 para conexiones seguras.821Muchos servidores MCP basados en la nube requieren autenticación. Claude Code admite OAuth 2.0 para conexiones seguras.

823 822 

824Claude Code marca un servidor remoto como que requiere autenticación cuando el servidor responde con `401 Unauthorized` o `403 Forbidden`. Lo que Claude Code muestra depende del servidor:823Claude Code marca un servidor remoto como que necesita autenticación cuando el servidor responde con `401 Unauthorized` o `403 Forbidden`. Lo que Claude Code muestra depende del servidor:

825 824 

826* Para un servidor en el que no ha iniciado sesión, cualquiera de estos códigos de estado lo marca en `/mcp` para que pueda completar el flujo de OAuth.825* Para un servidor en el que no ha iniciado sesión, cualquiera de los códigos de estado lo marca en `/mcp` para que pueda completar el flujo de OAuth.

827* Para un [conector de claude.ai](#use-mcp-servers-from-claude-ai), un `401` causado por claude.ai rechazando su token de sesión no marca el conector, porque reautorizar el conector no puede solucionar su inicio de sesión. Claude Code muestra el [estado de token de sesión rechazado](/docs/es/errors#claude-ai-rejected-the-session-token) en su lugar.826* Para un [conector de claude.ai](#use-mcp-servers-from-claude-ai), un `401` causado por claude.ai rechazando su token de sesión no marca el conector, porque volver a autorizar el conector no puede solucionar su inicio de sesión. Claude Code muestra el [estado de token de sesión rechazado](/docs/es/errors#claude-ai-rejected-the-session-token) en su lugar.

828* Para un servidor cuyo encabezado `Authorization` configuró, en `headers` o a través de un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` mientras se conecta no marca el servidor, porque la credencial a corregir es la que configuró. Claude Code reporta la conexión como fallida en su lugar. Si establece ese encabezado desde una referencia `${VAR}`, verifique si esa variable es una que Claude Code [lee como vacía](#credential-variables-that-read-as-empty).827* Para un servidor cuyo encabezado `Authorization` configuró, en `headers` o a través de un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), un `401` o `403` al conectar no marca el servidor, porque la credencial a corregir es la que configuró. Claude Code informa que la conexión falló en su lugar. Si establece ese encabezado desde una referencia `${VAR}`, verifique si esa variable es una que Claude Code [lee como vacía](#credential-variables-that-read-as-empty).

829* Para un conector [entregado a una sesión en la nube](#how-connectors-reach-claude-code), Claude Code no ejecuta un flujo de inicio de sesión, porque el proxy de la sesión se autentica con el conector con la autorización que otorgó en claude.ai. Cuando un conector allí necesita autorización nuevamente, reconéctelo en [claude.ai/customize/connectors](https://claude.ai/customize/connectors) en lugar de desde la sesión.828* Para un conector [entregado a una sesión en la nube](#how-connectors-reach-claude-code), Claude Code no ejecuta un flujo de inicio de sesión, porque el proxy de la sesión se autentica con el conector con la autorización que otorgó en claude.ai. Cuando un conector allí necesita autorización nuevamente, reconéctelo en [claude.ai/customize/connectors](https://claude.ai/customize/connectors) en lugar de desde la sesión.

830 829 

831Cuando una solicitud a un servidor OAuth en el que ya ha iniciado sesión devuelve `401 Unauthorized`, Claude Code actualiza el token almacenado, se reconecta e intenta la solicitud una vez más. Solo marca el servidor en `/mcp` si ese reintento también falla. Antes de v2.1.206, una actualización de token que falló por una razón transitoria, como un error de red, marcaba un servidor OAuth como que necesitaba autenticación durante el resto de la sesión aunque su token de actualización seguía siendo válido.830Cuando una solicitud a un servidor OAuth en el que ya inició sesión devuelve `401 Unauthorized`, Claude Code actualiza el token almacenado, se reconecta e intenta la solicitud una vez más. Solo marca el servidor en `/mcp` si ese reintento también falla. Antes de v2.1.206, una actualización de token que falló por una razón transitoria, como un error de red, marcaba un servidor OAuth como que necesita autenticación para el resto de la sesión aunque su token de actualización aún fuera válido.

832 831 

833Cuando el servidor rechaza el token de actualización almacenado, Claude Code muestra inmediatamente un aviso que apunta a `/mcp`. Abra `/mcp` y seleccione **Re-authenticate** en el servidor para iniciar sesión nuevamente antes de que la siguiente llamada de herramienta falle.832Cuando el servidor rechaza el token de actualización almacenado, Claude Code muestra inmediatamente un aviso que apunta a `/mcp`. Abra `/mcp` y seleccione **Re-authenticate** en el servidor para iniciar sesión nuevamente antes de que la siguiente llamada de herramienta falle.

834 833 

835Un servidor personalizado que devuelve un encabezado `WWW-Authenticate` que apunta a su servidor de autorización obtiene el mismo descubrimiento automático que cualquier otro servidor remoto.834Un servidor personalizado que devuelve un encabezado `WWW-Authenticate` que apunta a su servidor de autorización obtiene el mismo descubrimiento automático que cualquier otro servidor remoto.

836 835 

837Claude Code también muestra un aviso de inicio cuando uno o más servidores configurados necesitan autenticación, por lo que no tiene que abrir `/mcp` para descubrir qué servidores necesitan iniciar sesión. El aviso requiere Claude Code v2.1.193 o posterior. Solo cuenta servidores en los que puede iniciar sesión desde Claude Code. Antes de v2.1.218, también contaba [conectores de claude.ai](#use-mcp-servers-from-claude-ai) que no estaban conectados en claude.ai, que solo puede conectar desde la configuración de claude.ai.836Claude Code también muestra un aviso de inicio cuando uno o más servidores configurados necesitan autenticación, para que no tenga que abrir `/mcp` para descubrir qué servidores necesitan inicio de sesión. El aviso requiere Claude Code v2.1.193 o posterior. Solo cuenta los servidores en los que puede iniciar sesión desde Claude Code. Antes de v2.1.218, también contaba [conectores de claude.ai](#use-mcp-servers-from-claude-ai) que no estaban conectados en claude.ai, que solo puede conectar desde la configuración de claude.ai.

838 837 

839El aviso anuncia cada servidor una vez y lo excluye del recuento en lanzamientos posteriores hasta que ese servidor se haya conectado y necesite iniciar sesión nuevamente. `/mcp` aún enumera todos los servidores que necesitan iniciar sesión.838El aviso anuncia cada servidor una vez y lo excluye del recuento en lanzamientos posteriores hasta que ese servidor se haya conectado y necesite iniciar sesión nuevamente. `/mcp` aún enumera todos los servidores que necesitan iniciar sesión.

840 839 

841En modo no interactivo no hay panel `/mcp`, por lo que Claude Code no puede ejecutar el flujo de OAuth para usted. A partir de v2.1.196, cuando un servidor configurado necesita autenticación durante una ejecución de `claude -p` o Agent SDK con [búsqueda de herramientas](#scale-with-mcp-tool-search) habilitada, que es la predeterminada, Claude Code le dice a Claude que las herramientas del servidor no están disponibles hasta que lo autorice. Claude puede entonces nombrar el servidor que necesita iniciar sesión en lugar de responder como si el servidor no estuviera configurado. Complete el inicio de sesión desde una sesión interactiva con `/mcp` o `claude mcp login <name>`.840En modo no interactivo no hay panel `/mcp`, por lo que Claude Code no puede ejecutar el flujo de OAuth para usted. A partir de v2.1.196, cuando un servidor configurado necesita autenticación durante una ejecución `claude -p` o Agent SDK con [búsqueda de herramientas](#scale-with-mcp-tool-search) habilitada, que es la predeterminada, Claude Code le dice a Claude que las herramientas del servidor no están disponibles hasta que lo autorice. Claude puede entonces nombrar el servidor que necesita iniciar sesión en lugar de responder como si el servidor no estuviera configurado. Complete el inicio de sesión desde una sesión interactiva con `/mcp` o `claude mcp login <name>`.

842 841 

843Si configuró `headers.Authorization` para el servidor y el servidor rechaza ese encabezado, Claude Code reporta la conexión como fallida en lugar de recurrir a OAuth. Verifique que el token sea válido para el punto final de MCP, o elimine el encabezado para usar el flujo de OAuth.842Si configuró `headers.Authorization` para el servidor y el servidor rechaza ese encabezado, Claude Code informa que la conexión falló en lugar de recurrir a OAuth. Verifique que el token sea válido para el punto final de MCP, o elimine el encabezado para usar el flujo de OAuth.

844 843 

845<Steps>844<Steps>

846 <Step title="Agregar el servidor que requiere autenticación">845 <Step title="Agregue el servidor que requiere autenticación">

847 Si ya agregó el servidor `sentry` en el [inicio rápido de MCP](/docs/es/mcp-quickstart#connect-a-server-that-requires-sign-in), omita este paso: ejecutar `claude mcp add` nuevamente con el mismo nombre de servidor en el mismo alcance falla con `MCP server sentry already exists in local config`. De lo contrario, ejecute:846 Si ya agregó el servidor `sentry` en el [inicio rápido de MCP](/docs/es/mcp-quickstart#connect-a-server-that-requires-sign-in), omita este paso: ejecutar `claude mcp add` nuevamente con el mismo nombre de servidor en el mismo alcance falla con `MCP server sentry already exists in local config`. De lo contrario, ejecute:

848 847 

849 ```bash theme={null}848 ```bash theme={null}


868 * Los tokens de autenticación se almacenan de forma segura y se actualizan automáticamente867 * Los tokens de autenticación se almacenan de forma segura y se actualizan automáticamente

869 * Use "Clear authentication" en el menú `/mcp` para revocar el acceso868 * Use "Clear authentication" en el menú `/mcp` para revocar el acceso

870 * Si su navegador no se abre automáticamente, copie la URL proporcionada y ábrala manualmente869 * Si su navegador no se abre automáticamente, copie la URL proporcionada y ábrala manualmente

871 * Si el redireccionamiento del navegador falla con un error de conexión después de autenticarse, pegue la URL de devolución de llamada completa de la barra de direcciones de su navegador en el indicador de URL que aparece en Claude Code870 * Si la redirección del navegador falla con un error de conexión después de autenticarse, pegue la URL de devolución de llamada completa de la barra de direcciones de su navegador en el aviso de URL que aparece en Claude Code

872 * La autenticación OAuth funciona con servidores HTTP871 * La autenticación OAuth funciona con servidores HTTP

873</Tip>872</Tip>

874 873 


876 Autenticarse desde la línea de comandos875 Autenticarse desde la línea de comandos

877</h3>876</h3>

878 877 

879El comando `claude mcp login <name>` ejecuta el flujo de OAuth de un servidor configurado directamente desde su shell, por lo que no necesita abrir el panel `/mcp` dentro de una sesión.878El comando `claude mcp login <name>` ejecuta el flujo de OAuth de un servidor configurado directamente desde su shell, para que no necesite abrir el panel `/mcp` dentro de una sesión.

880 879 

881```bash theme={null}880```bash theme={null}

882claude mcp login sentry881claude mcp login sentry


884 883 

885Para borrar las credenciales almacenadas más tarde, ejecute `claude mcp logout <name>`.884Para borrar las credenciales almacenadas más tarde, ejecute `claude mcp logout <name>`.

886 885 

887`claude mcp login` detecta cuando no hay navegador local disponible, como durante una sesión SSH o en Linux sin un servidor de pantalla, e imprime la URL de autorización en lugar de intentar abrir un navegador. Abra la URL en su máquina local, luego pegue la URL de redireccionamiento completa de la barra de direcciones de su navegador nuevamente en el indicador. El comando necesita una terminal interactiva para el paso de pegado, así que conéctese con `ssh -t`. Pase `--no-browser` para forzar el indicador de URL incluso cuando se detecta un navegador local.886`claude mcp login` detecta cuando no hay navegador local disponible, como durante una sesión SSH o en Linux sin un servidor de pantalla, e imprime la URL de autorización en lugar de intentar abrir un navegador. Abra la URL en su máquina local, luego pegue la URL de redirección completa de la barra de direcciones de su navegador nuevamente en el aviso. El comando necesita una terminal interactiva para el paso de pegado, así que conéctese con `ssh -t`. Pase `--no-browser` para forzar el aviso de URL incluso cuando se detecta un navegador local.

888 887 

889```bash theme={null}888```bash theme={null}

890claude mcp login sentry --no-browser889claude mcp login sentry --no-browser

891```890```

892 891 

893<h3 id="use-a-fixed-oauth-callback-port">892<h3 id="use-a-fixed-oauth-callback-port">

894 Usar un puerto de devolución de llamada OAuth fijo893 Use un puerto de devolución de llamada de OAuth fijo

895</h3>894</h3>

896 895 

897Algunos servidores MCP requieren un URI de redireccionamiento específico registrado de antemano. De forma predeterminada, Claude Code elige un puerto disponible aleatorio para la devolución de llamada de OAuth. Use `--callback-port` para fijar el puerto de modo que coincida con un URI de redireccionamiento preregistrado de la forma `http://localhost:PORT/callback`. Si el inicio de sesión en Claude Code v2.1.229 falla con un error de desajuste de URI de redireccionamiento, consulte la nota de versión en [Usar credenciales OAuth preconfiguradas](#use-pre-configured-oauth-credentials).896Algunos servidores MCP requieren un URI de redirección específico registrado con anticipación. De forma predeterminada, Claude Code elige un puerto disponible aleatorio para la devolución de llamada de OAuth. Use `--callback-port` para fijar el puerto para que coincida con un URI de redirección preregistrado del formulario `http://localhost:PORT/callback`. Si el inicio de sesión en Claude Code v2.1.229 falla con una falta de coincidencia de URI de redirección, consulte la nota de versión en [Use pre-configured OAuth credentials](#use-pre-configured-oauth-credentials).

898 897 

899Puede usar `--callback-port` por sí solo (con registro dinámico de clientes) o junto con `--client-id` (con credenciales preconfiguradas).898Puede usar `--callback-port` por sí solo (con registro dinámico de cliente) o junto con `--client-id` (con credenciales preconfiguradas).

900 899 

901```bash theme={null}900```bash theme={null}

902# Puerto de devolución de llamada fijo con registro dinámico de clientes901# Fixed callback port with dynamic client registration

903claude mcp add --transport http \902claude mcp add --transport http \

904 --callback-port 8080 \903 --callback-port 8080 \

905 my-server https://mcp.example.com/mcp904 my-server https://mcp.example.com/mcp

906```905```

907 906 

908<h3 id="use-pre-configured-oauth-credentials">907<h3 id="use-pre-configured-oauth-credentials">

909 Usar credenciales OAuth preconfiguradas908 Use credenciales de OAuth preconfiguradas

910</h3>909</h3>

911 910 

912Algunos servidores MCP no admiten configuración automática de OAuth mediante Registro Dinámico de Clientes. Si ve un error como "Incompatible auth server: does not support dynamic client registration", el servidor requiere credenciales preconfiguradas. Claude Code también admite servidores que usan un Documento de Metadatos de ID de Cliente (CIMD) en lugar de Registro Dinámico de Clientes, y los descubre automáticamente. Si el descubrimiento automático falla, registre una aplicación OAuth a través del portal de desarrolladores del servidor primero, luego proporcione las credenciales al agregar el servidor.911Algunos servidores MCP no admiten la configuración automática de OAuth a través del Registro Dinámico de Clientes. Si ve un error como "Incompatible auth server: does not support dynamic client registration", el servidor requiere credenciales preconfiguradas. Claude Code también admite servidores que usan un Documento de Metadatos de ID de Cliente (CIMD) en lugar del Registro Dinámico de Clientes, y los descubre automáticamente. Si el descubrimiento automático falla, registre una aplicación OAuth a través del portal de desarrolladores del servidor primero, luego proporcione las credenciales al agregar el servidor.

913 912 

914<Steps>913<Steps>

915 <Step title="Registrar una aplicación OAuth con el servidor">914 <Step title="Registre una aplicación OAuth con el servidor">

916 Cree una aplicación a través del portal de desarrolladores del servidor y anote su ID de cliente y secreto de cliente.915 Cree una aplicación a través del portal de desarrolladores del servidor y anote su ID de cliente y secreto de cliente.

917 916 

918 Muchos servidores también requieren un URI de redireccionamiento. Si es así, elija un puerto y registre un URI de redireccionamiento en el formato `http://localhost:PORT/callback`. Use ese mismo puerto con `--callback-port` en el siguiente paso.917 Si el formulario de registro solicita un URI de redirección, elija cualquier puerto disponible e ingrese `http://localhost:PORT/callback` con ese puerto. Usará el mismo puerto en el siguiente paso.

919 918 

920 En v2.1.229, Claude Code envió `http://127.0.0.1:PORT/callback` en su lugar, y los servidores que coincidían exactamente con el URI de redireccionamiento registrado rechazaban el inicio de sesión con un error de desajuste de URI de redireccionamiento. Claude Code v2.1.231 restauró la forma `localhost`. Para recuperarse en v2.1.229, actualice Claude Code, o agregue temporalmente la forma `http://127.0.0.1:PORT/callback` a los URI de redireccionamiento registrados del servidor.919 En v2.1.229, Claude Code envió `http://127.0.0.1:PORT/callback` en su lugar, y los servidores que coincidían exactamente con el URI de redirección registrado rechazaban el inicio de sesión con una falta de coincidencia de URI de redirección. Claude Code v2.1.231 restauró el formulario `localhost`. Para recuperarse en v2.1.229, actualice Claude Code, o agregue temporalmente el formulario `http://127.0.0.1:PORT/callback` a los URI de redirección registrados del servidor.

921 </Step>920 </Step>

922 921 

923 <Step title="Agregar el servidor con sus credenciales">922 <Step title="Agregue el servidor con sus credenciales">

924 Elija uno de los siguientes métodos. El puerto utilizado para `--callback-port` puede ser cualquier puerto disponible. Solo necesita coincidir con el URI de redireccionamiento que registró en el paso anterior.923 Las pestañas cubren ambos comandos: `claude mcp add` toma su ID de cliente y puerto de devolución de llamada como banderas, y `claude mcp add-json` los toma en un objeto `oauth`. Si registró un URI de redirección, establezca el puerto de devolución de llamada en el puerto en ese URI.

925 924 

926 <Tabs>925 <Tabs>

927 <Tab title="claude mcp add">926 <Tab title="claude mcp add">


944 ```943 ```

945 </Tab>944 </Tab>

946 945 

947 <Tab title="claude mcp add-json (solo puerto de devolución de llamada)">946 <Tab title="claude mcp add-json (callback port only)">

948 Use `--callback-port` sin un ID de cliente para fijar el puerto mientras usa registro dinámico de clientes:947 Para fijar solo el puerto de devolución de llamada y dejar que Claude Code registre el cliente automáticamente, establezca `callbackPort` por sí solo:

949 948 

950 ```bash theme={null}949 ```bash theme={null}

951 claude mcp add-json my-server \950 claude mcp add-json my-server \


953 ```952 ```

954 </Tab>953 </Tab>

955 954 

956 <Tab title="CI / variable de entorno">955 <Tab title="CI / env var">

957 Establezca el secreto a través de una variable de entorno para omitir el indicador interactivo:956 Establezca el secreto a través de una variable de entorno para omitir el aviso interactivo:

958 957 

959 ```bash theme={null}958 ```bash theme={null}

960 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \959 MCP_CLIENT_SECRET=your-secret claude mcp add --transport http \


965 </Tabs>964 </Tabs>

966 </Step>965 </Step>

967 966 

968 <Step title="Autenticarse en Claude Code">967 <Step title="Autentíquese en Claude Code">

969 Ejecute `/mcp` en Claude Code y siga el flujo de inicio de sesión del navegador.968 Ejecute `/mcp` en Claude Code y siga el flujo de inicio de sesión del navegador.

970 </Step>969 </Step>

971</Steps>970</Steps>


974 Consejos:973 Consejos:

975 974 

976 * El secreto del cliente se almacena de forma segura en su llavero del sistema (macOS) o un archivo de credenciales, no en su configuración975 * El secreto del cliente se almacena de forma segura en su llavero del sistema (macOS) o un archivo de credenciales, no en su configuración

977 * Puede establecer el secreto del cliente solo cuando agrega el servidor. Cuando se autentica con `claude mcp login` o desde `/mcp`, Claude Code usa el secreto almacenado y no solicita uno ni lee `MCP_CLIENT_SECRET`976 * Solo puede establecer el secreto del cliente cuando agrega el servidor. Cuando se autentica con `claude mcp login` o desde `/mcp`, Claude Code usa el secreto almacenado y no solicita uno ni lee `MCP_CLIENT_SECRET`

978 * Para agregar o cambiar el secreto más tarde, elimine el servidor con `claude mcp remove <name>`, luego agréguelo nuevamente con `--client-secret` y el mismo `--scope`977 * Para agregar o cambiar el secreto más tarde, elimine el servidor con `claude mcp remove <name>`, luego agréguelo nuevamente con `--client-secret` y el mismo `--scope`

979 * Si el servidor usa un cliente OAuth público sin secreto, use solo `--client-id` sin `--client-secret`978 * Si el servidor usa un cliente OAuth público sin secreto, use solo `--client-id` sin `--client-secret`

980 * Estas banderas solo se aplican a transportes HTTP y SSE. No tienen efecto en servidores stdio979 * Estas banderas solo se aplican a transportes HTTP y SSE. No tienen efecto en servidores stdio

981 * Use `claude mcp get <name>` para verificar que las credenciales OAuth estén configuradas para un servidor980 * Use `claude mcp get <name>` para verificar que las credenciales de OAuth estén configuradas para un servidor

982</Tip>981</Tip>

983 982 

984<h3 id="override-oauth-metadata-discovery">983<h3 id="override-oauth-metadata-discovery">

985 Anular el descubrimiento de metadatos de OAuth984 Anule el descubrimiento de metadatos de OAuth

986</h3>985</h3>

987 986 

988Apunte Claude Code a una URL de metadatos de servidor de autorización OAuth específica para omitir la cadena de descubrimiento predeterminada. Establezca `authServerMetadataUrl` cuando los puntos finales estándar del servidor MCP generen errores, o cuando desee enrutar el descubrimiento a través de un proxy interno. De forma predeterminada, Claude Code primero verifica los Metadatos de Recursos Protegidos RFC 9728 en `/.well-known/oauth-protected-resource`, luego recurre a los metadatos del servidor de autorización RFC 8414 en `/.well-known/oauth-authorization-server`.987Apunte Claude Code a una URL de metadatos de servidor de autorización de OAuth específica para omitir la cadena de descubrimiento predeterminada. Establezca `authServerMetadataUrl` cuando los puntos finales estándar del servidor MCP generen errores, o cuando desee enrutar el descubrimiento a través de un proxy interno. De forma predeterminada, Claude Code primero verifica los Metadatos de Recurso Protegido de RFC 9728 en `/.well-known/oauth-protected-resource`, luego recurre a los metadatos del servidor de autorización de RFC 8414 en `/.well-known/oauth-authorization-server`.

989 988 

990Establezca `authServerMetadataUrl` en el objeto `oauth` de la configuración de su servidor en `.mcp.json`:989Establezca `authServerMetadataUrl` en el objeto `oauth` de la configuración de su servidor en `.mcp.json`:

991 990 


1003}1002}

1004```1003```

1005 1004 

1006La URL debe usar `https://`. Los `scopes_supported` de la URL de metadatos anulan los alcances que el servidor ascendente anuncia.1005La URL debe usar `https://`. El `scopes_supported` de la URL de metadatos anula los alcances que el servidor ascendente anuncia.

1007 1006 

1008<h3 id="restrict-oauth-scopes">1007<h3 id="restrict-oauth-scopes">

1009 Restringir alcances de OAuth1008 Restrinja los alcances de OAuth

1010</h3>1009</h3>

1011 1010 

1012Establezca `oauth.scopes` para fijar los alcances que Claude Code solicita durante el flujo de autorización. Esta es la forma soportada de restringir un servidor MCP a un subconjunto aprobado por el equipo de seguridad cuando el servidor de autorización ascendente anuncia más alcances de los que desea otorgar. El valor es una cadena única separada por espacios, que coincide con el formato del parámetro `scope` en RFC 6749 §3.3.1011Establezca `oauth.scopes` para fijar los alcances que Claude Code solicita durante el flujo de autorización. Esta es la forma admitida de restringir un servidor MCP a un subconjunto aprobado por el equipo de seguridad cuando el servidor de autorización ascendente anuncia más alcances de los que desea otorgar. El valor es una cadena única separada por espacios, que coincide con el formato del parámetro `scope` en RFC 6749 §3.3.

1013 1012 

1014```json theme={null}1013```json theme={null}

1015{1014{


1025}1024}

1026```1025```

1027 1026 

1028`oauth.scopes` tiene precedencia sobre tanto `authServerMetadataUrl` como los alcances que el servidor descubre en `/.well-known`. Déjelo sin establecer para permitir que el servidor MCP determine el conjunto de alcances solicitados.1027`oauth.scopes` tiene prioridad sobre `authServerMetadataUrl` y los alcances que el servidor descubre en `/.well-known`. Déjelo sin establecer para permitir que el servidor MCP determine el conjunto de alcances solicitados.

1029 1028 

1030A partir de v2.1.196, cuando `oauth.scopes` no está establecido, Claude Code solicita el alcance proporcionado por el encabezado `WWW-Authenticate` del servidor o sus metadatos de recursos protegidos, y no envía ningún parámetro `scope` cuando ninguno proporciona uno. Ya no solicita el catálogo completo de `scopes_supported` de los metadatos del servidor de autorización descubiertos automáticamente. Solicitar ese catálogo hizo que los proveedores de identidad que anuncian alcances solo para administrador o de plantilla rechazaran la solicitud de autorización con un error `invalid_scope`. Los metadatos obtenidos de un `authServerMetadataUrl` configurado aún proporcionan su `scopes_supported` como los alcances solicitados.1029A partir de v2.1.196, cuando `oauth.scopes` no está establecido, Claude Code solicita el alcance proporcionado por el encabezado `WWW-Authenticate` del servidor o sus metadatos de recurso protegido, y no envía ningún parámetro `scope` cuando ninguno proporciona uno. Ya no solicita el catálogo completo de `scopes_supported` de los metadatos del servidor de autorización descubiertos automáticamente. Solicitar ese catálogo hizo que los proveedores de identidad que anuncian alcances solo para administrador o plantilla rechazaran la solicitud de autorización con un error `invalid_scope`. Los metadatos obtenidos de un `authServerMetadataUrl` configurado aún proporcionan su `scopes_supported` como los alcances solicitados.

1031 1030 

1032Si el servidor de autorización anuncia `offline_access` en `scopes_supported`, Claude Code lo añade a los alcances fijados para que el token de acceso pueda actualizarse sin un nuevo inicio de sesión en el navegador.1031Si el servidor de autorización anuncia `offline_access` en `scopes_supported`, Claude Code lo agrega a los alcances fijados para que el token de acceso pueda actualizarse sin un nuevo inicio de sesión del navegador.

1033 1032 

1034Si el servidor luego devuelve un 403 `insufficient_scope` para una llamada de herramienta, la llamada falla con un mensaje de [`necesita permisos adicionales`](/docs/es/errors#mcp-server-needs-you-to-sign-in-again) que nombra el alcance que el servidor solicita. El servidor se muestra como que necesita autenticación en `/mcp`.1033Si el servidor luego devuelve un 403 `insufficient_scope` para una llamada de herramienta, la llamada falla con un mensaje [`needs additional permissions`](/docs/es/errors#mcp-server-needs-you-to-sign-in-again) que nombra el alcance que el servidor solicita. El servidor se muestra como que necesita autenticación en `/mcp`.

1035 1034 

1036Si ese alcance no está en su `oauth.scopes` fijado, agréguelo, luego ejecute `/mcp` y autentique el servidor nuevamente. Claude Code solicita los alcances fijados en lugar del alcance que el servidor nombró, por lo que si se autentica nuevamente sin agregarlo, el token que obtiene aún carece de él.1035Si ese alcance no está en su `oauth.scopes` fijado, agréguelo, luego ejecute `/mcp` y autentique el servidor nuevamente. Claude Code solicita los alcances fijados en lugar del alcance que el servidor nombró, por lo que si se autentica nuevamente sin agregarlo, el token que obtiene aún carece de él.

1037 1036 

1038<h3 id="use-dynamic-headers-for-custom-authentication">1037<h3 id="use-dynamic-headers-for-custom-authentication">

1039 Usar encabezados dinámicos para autenticación personalizada1038 Use encabezados dinámicos para autenticación personalizada

1040</h3>1039</h3>

1041 1040 

1042Si su servidor MCP usa un esquema de autenticación diferente a OAuth, como Kerberos, tokens de corta duración o un SSO interno, use `headersHelper` para generar encabezados de solicitud en el momento de la conexión. Claude Code ejecuta el comando y fusiona su salida en los encabezados de conexión.1041Si su servidor MCP usa un esquema de autenticación distinto de OAuth, como Kerberos, tokens de corta duración o un SSO interno, use `headersHelper` para generar encabezados de solicitud en el momento de la conexión. Claude Code ejecuta el comando y fusiona su salida en los encabezados de conexión.

1043 1042 

1044```json theme={null}1043```json theme={null}

1045{1044{


1074* Claude Code elige el directorio de trabajo del comando por [dónde configuró el servidor](#where-the-helper-runs), así que proporcione el script como una ruta absoluta o colóquelo en `PATH`1073* Claude Code elige el directorio de trabajo del comando por [dónde configuró el servidor](#where-the-helper-runs), así que proporcione el script como una ruta absoluta o colóquelo en `PATH`

1075* Los encabezados dinámicos anulan cualquier `headers` estático con el mismo nombre1074* Los encabezados dinámicos anulan cualquier `headers` estático con el mismo nombre

1076 1075 

1077Claude Code ejecuta el ayudante nuevamente en cada conexión, al iniciar la sesión y al reconectar, una vez que la [regla de confianza para servidores de alcance de proyecto y local](#trust-a-folder-before-its-headershelper-runs) le permite ejecutarse. No almacena en caché el resultado, por lo que su script es responsable de cualquier reutilización de tokens.1076Claude Code ejecuta el helper nuevamente en cada conexión, al inicio de la sesión y al reconectar, una vez que la [regla de confianza para servidores de alcance de proyecto y local](#trust-a-folder-before-its-headershelper-runs) le permite ejecutarse. No almacena en caché el resultado, por lo que su script es responsable de cualquier reutilización de token.

1078 1077 

1079Si una llamada de herramienta devuelve `401 Unauthorized` o `403 Forbidden`, Claude Code automáticamente vuelve a ejecutar el ayudante bajo la misma regla, se reconecta con los encabezados frescos, e intenta la llamada una vez más. Claude Code marca el servidor como que necesita autenticación en `/mcp` solo si ese reintento también falla.1078Si una llamada de herramienta devuelve `401 Unauthorized` o `403 Forbidden`, Claude Code ejecuta automáticamente el helper nuevamente bajo la misma regla, se reconecta con los encabezados frescos e intenta la llamada una vez más. Claude Code marca el servidor como que necesita autenticación en `/mcp` solo si ese reintento también falla.

1080 1079 

1081Cuando la salida del ayudante incluye un encabezado `Authorization`, Claude Code usa esa credencial como la autenticación del servidor y no recurre a OAuth para el servidor.1080Cuando la salida del helper incluye un encabezado `Authorization`, Claude Code usa esa credencial como la autenticación del servidor y no recurre a OAuth para el servidor.

1082 1081 

1083Si el servidor rechaza la credencial del ayudante mientras se conecta, Claude Code reporta la conexión como fallida en lugar de marcar el servidor como que necesita autenticación. Corrija la credencial que devuelve su ayudante, luego reconéctese desde `/mcp` para volver a ejecutar el ayudante.1082Si el servidor rechaza la credencial del helper al conectar, Claude Code informa que la conexión falló en lugar de marcar el servidor como que necesita autenticación. Corrija la credencial que devuelve su helper, luego reconéctese desde `/mcp` para ejecutar el helper nuevamente.

1084 1083 

1085Claude Code establece estas variables de entorno al ejecutar el ayudante:1084Claude Code establece estas variables de entorno al ejecutar el helper:

1086 1085 

1087| Variable | Valor |1086| Variable | Valor |

1088| :- | :- |1087| :- | :- |


1090| `CLAUDE_CODE_MCP_SERVER_URL` | la URL del servidor MCP |1089| `CLAUDE_CODE_MCP_SERVER_URL` | la URL del servidor MCP |

1091| `CLAUDE_PLUGIN_ROOT` | el directorio raíz del plugin. Se establece solo cuando un [plugin](/docs/es/plugins/components#mcp-servers) proporciona el servidor |1090| `CLAUDE_PLUGIN_ROOT` | el directorio raíz del plugin. Se establece solo cuando un [plugin](/docs/es/plugins/components#mcp-servers) proporciona el servidor |

1092 1091 

1093Use estas para escribir un único script de ayudante que sirva múltiples servidores MCP.1092Úselos para escribir un único script helper que sirva a múltiples servidores MCP.

1094 1093 

1095Un `headersHelper` proporcionado por un plugin no puede hacer referencia a los valores [`${user_config.*}`](/docs/es/plugins/manifest-reference#user-configuration) del plugin, porque el comando se ejecuta a través de un shell. Claude Code reporta el servidor como mal configurado con un [error](/docs/es/errors#plugin-command-references-user-config) y no sustituye el valor. Ponga `${user_config.KEY}` en el campo `headers` del servidor en su lugar, que no se analiza como shell, o haga que el script de ayudante lea el valor de un archivo de configuración. Antes de v2.1.207, `headersHelper` sustituía valores `${user_config.*}`.1094Un `headersHelper` proporcionado por un plugin no puede hacer referencia a los valores [`${user_config.*}`](/docs/es/plugins/manifest-reference#user-configuration) del plugin, porque el comando se ejecuta a través de un shell. Claude Code informa que el servidor está mal configurado con un [error](/docs/es/errors#plugin-command-references-user-config) y no sustituye el valor. Coloque `${user_config.KEY}` en el campo `headers` del servidor en su lugar, que no se analiza mediante shell, o haga que el script helper lea el valor de un archivo de configuración. Antes de v2.1.207, `headersHelper` sustituía valores `${user_config.*}`.

1096 1095 

1097<h4 id="where-the-helper-runs">1096<h4 id="where-the-helper-runs">

1098 Dónde se ejecuta el ayudante1097 Dónde se ejecuta el helper

1099</h4>1098</h4>

1100 1099 

1101Claude Code elige el directorio de trabajo del comando `headersHelper` de la configuración que declara el servidor. Un `cd` que Claude ejecuta en Bash no lo mueve, y [`/cd`](/docs/es/permissions#move-the-session-to-another-directory) lo mueve solo para servidores que se ejecutan desde el directorio de trabajo principal de la sesión. Cada fila a continuación proporciona el directorio contra el cual se resuelve una ruta relativa en su comando `headersHelper`.1100Claude Code elige el directorio de trabajo del comando `headersHelper` de la configuración que declara el servidor. Un `cd` que Claude ejecuta en Bash no lo mueve, y [`/cd`](/docs/es/permissions#move-the-session-to-another-directory) lo mueve solo para servidores que se ejecutan desde el directorio de trabajo principal de la sesión. Cada fila a continuación proporciona el directorio contra el cual se resuelve una ruta relativa en su comando `headersHelper`.


1103| Dónde configuró el servidor | Directorio de trabajo |1102| Dónde configuró el servidor | Directorio de trabajo |

1104| :- | :- |1103| :- | :- |

1105| Un [plugin](/docs/es/plugins/components#mcp-servers) | El directorio raíz del plugin. Requiere Claude Code v2.1.195 o posterior |1104| Un [plugin](/docs/es/plugins/components#mcp-servers) | El directorio raíz del plugin. Requiere Claude Code v2.1.195 o posterior |

1106| Un `.mcp.json` de proyecto o un servidor de [alcance local](#local-scope) | El directorio del proyecto donde se declara el servidor |1105| Un proyecto `.mcp.json` o un servidor de [alcance local](#local-scope) | El directorio del proyecto en el que se declara el servidor |

1107| Un archivo de agente en su proyecto, un servidor de la opción `mcpServers` del SDK o el método `setMcpServers()`, o [`--mcp-config`](/docs/es/cli-reference) | El [directorio de trabajo principal](/docs/es/permissions#working-directories) de la sesión |1106| Un archivo de agente en su proyecto, un servidor de la opción `mcpServers` del SDK o el método `setMcpServers()`, o [`--mcp-config`](/docs/es/cli-reference) | El [directorio de trabajo principal](/docs/es/permissions#working-directories) de la sesión |

1108| [Alcance de usuario](#user-scope), [MCP administrado](/docs/es/managed-mcp), un [conector de claude.ai](#use-mcp-servers-from-claude-ai), o un archivo de agente de fuera de su proyecto, incluido uno de un directorio `--add-dir` | Su directorio de configuración, `~/.claude` a menos que establezca [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) |1107| [Alcance de usuario](#user-scope), [MCP administrado](/docs/es/managed-mcp), un [conector de claude.ai](#use-mcp-servers-from-claude-ai), o un archivo de agente de fuera de su proyecto, incluido uno de un directorio `--add-dir` | Su directorio de configuración, `~/.claude` a menos que establezca [`CLAUDE_CONFIG_DIR`](/docs/es/env-vars) |

1109 1108 

1110Antes de v2.1.238, Claude Code también ejecutaba los ayudantes de servidores de alcance de usuario, administrados y conectores de claude.ai, y de archivos de agente de fuera de su proyecto, desde el directorio desde el que lo inició.1109Antes de v2.1.238, Claude Code también ejecutaba los helpers de servidores de alcance de usuario, administrados y de conector de claude.ai, y de archivos de agente de fuera de su proyecto, desde el directorio en el que lo inició.

1111 1110 

1112<h4 id="which-variables-a-helper-can-read">1111<h4 id="which-variables-a-helper-can-read">

1113 Qué variables puede leer un ayudante1112 Qué variables puede leer un helper

1114</h4>1113</h4>

1115 1114 

1116Un `headersHelper` que un repositorio o plugin proporciona es un comando que no escribió, por lo que Claude Code lo ejecuta sin las variables de credencial de su entorno, como `ANTHROPIC_API_KEY`. Dónde configuró el servidor decide si esto se aplica:1115Un `headersHelper` que un repositorio o plugin proporciona es un comando que no escribió, por lo que Claude Code lo ejecuta sin las variables de credencial de su entorno, como `ANTHROPIC_API_KEY`. Dónde configuró el servidor decide si esto se aplica:

1117 1116 

1118* **Eliminadas**: un servidor en un `.mcp.json` de proyecto o en un plugin, y un servidor en línea en un archivo de agente de su proyecto o de un directorio `--add-dir`1117* **Eliminado**: un servidor en un proyecto `.mcp.json` o en un plugin, y un servidor en línea en un archivo de agente de su proyecto o de un directorio `--add-dir`

1119* **No eliminadas**: un servidor en [alcance de usuario](#user-scope) o [alcance local](#local-scope), en [MCP administrado](/docs/es/managed-mcp), de un [conector de claude.ai](#use-mcp-servers-from-claude-ai), o proporcionado por el SDK o [`--mcp-config`](/docs/es/cli-reference), y un servidor en línea en un archivo de agente de `~/.claude/agents/`, de configuración administrada, o pasado con `--agents`1118* **No eliminado**: un servidor en [alcance de usuario](#user-scope) o [alcance local](#local-scope), en [MCP administrado](/docs/es/managed-mcp), de un [conector de claude.ai](#use-mcp-servers-from-claude-ai), o proporcionado por el SDK o [`--mcp-config`](/docs/es/cli-reference), y un servidor en línea en un archivo de agente de `~/.claude/agents/`, de configuración administrada, o pasado con `--agents`

1120 1119 

1121Aparte de las variables `GIT_CONFIG_KEY_<n>` de Git, Claude Code elimina cada variable de su entorno cuyo nombre se parece a una credencial, como un nombre con `TOKEN`, `SECRET`, `PASSWORD`, `KEY`, o `AUTH` en él en cualquier caso de letra, por lo que `ANTHROPIC_API_KEY` y `MY_REGISTRY_TOKEN` se eliminan. Claude Code también elimina una lista fija de variables de credencial cuyos nombres no siguen ese patrón, como `ANTHROPIC_CUSTOM_HEADERS`.1120Aparte de las variables `GIT_CONFIG_KEY_<n>` de Git, Claude Code elimina todas las variables de su entorno cuyo nombre parece una credencial, como un nombre con `TOKEN`, `SECRET`, `PASSWORD`, `KEY` o `AUTH` en él en cualquier caso de letra, por lo que `ANTHROPIC_API_KEY` y `MY_REGISTRY_TOKEN` se eliminan. Claude Code también elimina una lista fija de variables de credencial cuyos nombres no siguen ese patrón, como `ANTHROPIC_CUSTOM_HEADERS`.

1122 1121 

1123Cuando esto se aplica a su ayudante, haga que el script lea su credencial de un archivo o un almacén de credenciales. Si la `url` del servidor [expande una de estas variables](#environment-variable-expansion-in-mcp-json), el valor `CLAUDE_CODE_MCP_SERVER_URL` que recibe el ayudante tiene esa parte reemplazada con `REDACTED` también.1122Cuando esto se aplica a su helper, haga que el script lea su credencial de un archivo o un almacén de credenciales. Si la `url` del servidor [lleva el valor en vivo de una de estas variables](#environment-variable-expansion-in-mcp-json), como `MY_REGISTRY_TOKEN`, el valor `CLAUDE_CODE_MCP_SERVER_URL` que recibe el helper también tiene esa parte reemplazada con `REDACTED`.

1124 1123 

1125<h4 id="trust-a-folder-before-its-headershelper-runs">1124<h4 id="trust-a-folder-before-its-headershelper-runs">

1126 Confiar en una carpeta antes de que se ejecute su headersHelper1125 Confíe en una carpeta antes de que se ejecute su headersHelper

1127</h4>1126</h4>

1128 1127 

1129Claude Code ejecuta un `headersHelper` como un comando de shell arbitrario. Para un servidor en un `.mcp.json` de proyecto o en [alcance local](#local-scope), lo ejecuta solo después de que acepte el [diálogo de confianza](/docs/es/permissions#project-allow-rules-and-workspace-trust) para el directorio del proyecto donde se declara el servidor. Antes de v2.1.238, una sesión `claude -p` o SDK ejecutaba estos ayudantes sin verificar confianza, y una sesión interactiva los ejecutaba una vez que había confiado en una carpeta principal.1128Claude Code ejecuta un `headersHelper` como un comando de shell arbitrario. Para un servidor en un proyecto `.mcp.json` o en [alcance local](#local-scope), ejecuta el helper solo después de que acepte el [diálogo de confianza](/docs/es/permissions#project-allow-rules-and-workspace-trust) para el directorio del proyecto en el que se declara el servidor. Antes de v2.1.238, una sesión `claude -p` o SDK ejecutaba estos helpers sin verificar la confianza, y una sesión interactiva los ejecutaba una vez que había confiado en una carpeta principal.

1130 1129 

1131* **Confianza que no cuenta**: la confianza de una carpeta principal, y la confianza automática que una sesión `claude -p` o SDK obtiene para [hooks en archivos de configuración](/docs/es/permissions#what-runs-before-you-trust-a-folder)1130* **Confianza que no cuenta**: la confianza de una carpeta principal, y la confianza automática que una sesión `claude -p` o SDK obtiene para [hooks en archivos de configuración](/docs/es/permissions#what-runs-before-you-trust-a-folder)

1132* **Hasta que confíe en la carpeta**: Claude Code conecta el servidor solo con sus `headers` estáticos. En una sesión `claude -p` o SDK también imprime una línea [`headersHelper not run`](/docs/es/errors#headershelper-not-run) por servidor en stderr, diciéndole cómo otorgar la confianza.1131* **Hasta que confíe en la carpeta**: Claude Code conecta el servidor solo con su `headers` estático. En una sesión `claude -p` o SDK también imprime una línea [`headersHelper not run`](/docs/es/errors#headershelper-not-run) por servidor en stderr, diciéndole cómo otorgar la confianza.

1133* **Confianza sin un diálogo**: establezca `projects["<path>"].hasTrustDialogAccepted` en `true` en `~/.claude.json`. `<path>` es la carpeta en la que [Reglas de permiso de proyecto y confianza del espacio de trabajo](/docs/es/permissions#project-allow-rules-and-workspace-trust) dice que Claude Code basa la confianza.1132* **Confianza sin un diálogo**: establezca `projects["<path>"].hasTrustDialogAccepted` en `true` en `~/.claude.json`. `<path>` es la carpeta en la que [Project allow rules and workspace trust](/docs/es/permissions#project-allow-rules-and-workspace-trust) dice que Claude Code basa la confianza.

1134 1133 

1135Claude Code aplica la misma regla a un servidor declarado en línea en un [archivo de agente](/docs/es/sub-agents#scope-mcp-servers-to-a-subagent), verificando de dónde vino ese archivo de agente: su proyecto, para un archivo en su directorio `.claude/agents/`, o un directorio `--add-dir`. Hasta que [confíe en ese proyecto o directorio mismo](/docs/es/permissions#what-runs-before-you-trust-a-folder), Claude Code no carga el servidor en absoluto, por lo que su ayudante nunca se ejecuta tampoco.1134Claude Code aplica la misma regla a un servidor declarado en línea en un [archivo de agente](/docs/es/sub-agents#scope-mcp-servers-to-a-subagent), verificando de dónde vino ese archivo de agente: su proyecto, para un archivo en su directorio `.claude/agents/`, o un directorio `--add-dir`. Hasta que [confíe en ese proyecto o directorio mismo](/docs/es/permissions#what-runs-before-you-trust-a-folder), Claude Code no carga el servidor en absoluto, por lo que su helper nunca se ejecuta tampoco.

1136 1135 

1137<h2 id="add-mcp-servers-from-json-configuration">1136<h2 id="add-mcp-servers-from-json-configuration">

1138 Agregar servidores MCP desde configuración JSON1137 Agregar servidores MCP desde configuración JSON


1235 </Step>1234 </Step>

1236</Steps>1235</Steps>

1237 1236 

1237Anthropic también proporciona algunos conectores por sí mismo, sin que usted o un administrador los añadan. En cuentas donde [Claude Docs](/docs/es/artifacts#write-a-document-with-claude-docs) está disponible, `/mcp` enumera `claude.ai Claude Docs` sin configuración, y Claude lo usa cuando le pide un documento destinado a otras personas. Para desactivarlo, añada una entrada `serverName` de `"claude.ai Claude Docs"` a `deniedMcpServers` o use el botón de alternancia `/mcp`, ambos descritos en [Desactivar conectores de claude.ai](#disable-claude-ai-connectors).

1238 

1238Claude Code marca un conector como `managed` en `/mcp` y en el gestor de [`/plugin`](/docs/es/plugins/install) cuando su organización gestiona su autenticación en claude.ai. El estado managed no cambia cómo Claude Code se conecta al conector ni aplica los [controles de herramientas](#organization-controls-on-connector-tools) de su organización.1239Claude Code marca un conector como `managed` en `/mcp` y en el gestor de [`/plugin`](/docs/es/plugins/install) cuando su organización gestiona su autenticación en claude.ai. El estado managed no cambia cómo Claude Code se conecta al conector ni aplica los [controles de herramientas](#organization-controls-on-connector-tools) de su organización.

1239 1240 

1240Los conectores a los que nunca ha iniciado sesión se contraen detrás de una fila `Show unused connectors` al final de la sección de claude.ai, por lo que una lista provisionada por la organización no llena el panel. Seleccione la fila para expandirlos. Un conector en el que inició sesión antes permanece visible incluso cuando actualmente necesita reautenticación.1241Los conectores a los que nunca ha iniciado sesión se contraen detrás de una fila `Show unused connectors` al final de la sección de claude.ai, por lo que una lista provisionada por la organización no llena el panel. Seleccione la fila para expandirlos. Un conector en el que inició sesión antes permanece visible incluso cuando actualmente necesita reautenticación.


1416 Si frecuentemente encuentra advertencias de salida con servidores de MCP específicos que no controla, considere aumentar el límite de `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que paginen sus respuestas. La anotación no tiene efecto en herramientas que devuelven contenido de imagen; para esas, aumentar `MAX_MCP_OUTPUT_TOKENS` es la única opción.1417 Si frecuentemente encuentra advertencias de salida con servidores de MCP específicos que no controla, considere aumentar el límite de `MAX_MCP_OUTPUT_TOKENS`. También puede pedirle al autor del servidor que agregue la anotación `anthropic/maxResultSizeChars` o que paginen sus respuestas. La anotación no tiene efecto en herramientas que devuelven contenido de imagen; para esas, aumentar `MAX_MCP_OUTPUT_TOKENS` es la única opción.

1417</Warning>1418</Warning>

1418 1419 

1420<h3 id="images-in-tool-results">

1421 Imágenes en resultados de herramientas

1422</h3>

1423 

1424Cuando una herramienta de MCP devuelve una imagen PNG, JPEG, GIF o WebP, Claude ve la imagen en línea en la conversación. La copia en línea puede estar reducida o comprimida para ajustarse a los límites de tamaño de imagen del modelo. Claude Code también guarda los bytes originales en un archivo en el directorio `tool-results` de la sesión bajo [`~/.claude/projects/`](/docs/es/claude-directory#cleaned-up-automatically) y le proporciona a Claude la ruta. Claude puede entonces recortar, convertir o reutilizar el archivo de resolución completa con herramientas como Bash.

1425 

1426Si desactiva la persistencia de sesión con [`--no-session-persistence`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/es/env-vars), Claude Code no escribe ningún archivo de imagen y Claude recibe solo la copia en línea.

1427 

1428Guardar resultados de imágenes de MCP en un archivo requiere Claude Code v2.1.283 o posterior.

1429 

1419<h2 id="tool-input-schemas-with-a-root-level-combinator">1430<h2 id="tool-input-schemas-with-a-root-level-combinator">

1420 Esquemas de entrada de herramientas con un combinador a nivel raíz1431 Esquemas de entrada de herramientas con un combinador a nivel raíz

1421</h2>1432</h2>


1487Los servidores pueden solicitar información de dos formas:1498Los servidores pueden solicitar información de dos formas:

1488 1499 

1489* **Modo de formulario**: Claude Code muestra un diálogo con campos de formulario definidos por el servidor (por ejemplo, una solicitud de nombre de usuario y contraseña). Complete los campos y envíe.1500* **Modo de formulario**: Claude Code muestra un diálogo con campos de formulario definidos por el servidor (por ejemplo, una solicitud de nombre de usuario y contraseña). Complete los campos y envíe.

1490* **Modo de URL**: Claude Code abre una URL del navegador para autenticación o aprobación. Complete el flujo en el navegador y luego confirme en la CLI.1501* **Modo de URL**: Claude Code pregunta si desea abrir un enlace en su navegador y lo abre cuando usted acepta. Los servidores utilizan este modo para un flujo que se completa fuera de la terminal, como el inicio de sesión.

1491 1502 

1492En modo de URL, Claude Code pasa la URL como argumento de línea de comandos al controlador de URL de su sistema y limita la longitud de ese argumento. Cuando la URL, una vez escapada para la línea de comandos, supera ese límite, solo puede rechazar la solicitud. Cada carácter que necesita escaparse, como `%` o `&`, cuenta cuatro veces hacia el límite: su propio carácter más tres caracteres de escape. Una URL sin ninguno de ellos alcanza el límite en aproximadamente 8.000 caracteres. Una URL construida en gran medida con escapes de porcentaje, donde cada tercer carácter es un `%`, lo alcanza en aproximadamente 4.000.1503En modo de URL, Claude Code pasa la URL como argumento de línea de comandos al controlador de URL de su sistema y limita la longitud de ese argumento. Cuando la URL, una vez escapada para la línea de comandos, supera ese límite, solo puede rechazar la solicitud. Cada carácter que necesita escaparse, como `%` o `&`, cuenta cuatro veces hacia el límite: su propio carácter más tres caracteres de escape. Una URL sin ninguno de ellos alcanza el límite en aproximadamente 8.000 caracteres. Una URL construida en gran medida con escapes de porcentaje, donde cada tercer carácter es un `%`, lo alcanza en aproximadamente 4.000.

1493 1504 


1495 1506 

1496Si está creando un servidor MCP que utiliza elicitación, consulte la [especificación de elicitación de MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para obtener detalles del protocolo y ejemplos de esquema.1507Si está creando un servidor MCP que utiliza elicitación, consulte la [especificación de elicitación de MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) para obtener detalles del protocolo y ejemplos de esquema.

1497 1508 

1509En conexiones que utilizan [revisión de protocolo 2026-07-28](#mcp-client-runtimes), Claude Code declara `elicitation: {form: {}, url: {}}` en sus capacidades de cliente, por lo que un servidor allí puede solicitar cualquiera de los modos a través de la solicitud de elicitación estándar del protocolo.

1510 

1498<h2 id="use-mcp-resources">1511<h2 id="use-mcp-resources">

1499 Usar recursos MCP1512 Usar recursos MCP

1500</h2>1513</h2>


1540 * Los recursos pueden contener cualquier tipo de contenido que proporcione el servidor MCP (texto, JSON, datos estructurados, etc.)1553 * Los recursos pueden contener cualquier tipo de contenido que proporcione el servidor MCP (texto, JSON, datos estructurados, etc.)

1541</Tip>1554</Tip>

1542 1555 

1556Los recursos de la interfaz de usuario de MCP Apps son entradas con un URI `ui://` o el tipo de medio `text/html;profile=mcp-app`: páginas para que una aplicación host renderice en lugar de contenido para que Claude lea. No aparecen en las sugerencias de `@` ni en los resultados de la herramienta de lista de recursos, y un servidor que ofrece solo recursos de interfaz de usuario muestra una lista de recursos vacía. Leer un recurso de interfaz de usuario por su URI sigue funcionando.

1557 

1543<h2 id="scale-with-mcp-tool-search">1558<h2 id="scale-with-mcp-tool-search">

1544 Escalar con búsqueda de herramientas MCP1559 Escalar con búsqueda de herramientas MCP

1545</h2>1560</h2>


1643 1658 

1644Los servidores MCP pueden exponer prompts que se vuelven disponibles como comandos en Claude Code.1659Los servidores MCP pueden exponer prompts que se vuelven disponibles como comandos en Claude Code.

1645 1660 

1661Los prompts de un servidor llamado `anthropic-skills` no aparecen, porque Claude Code [reserva ese nombre](/docs/es/skills#names-reserved-for-synced-skills) para skills sincronizadas desde claude.ai. Las herramientas del servidor siguen funcionando. Renombre el servidor en su configuración de MCP para enumerar sus prompts.

1662 

1646<h3 id="execute-mcp-prompts">1663<h3 id="execute-mcp-prompts">

1647 Ejecutar prompts de MCP1664 Ejecutar prompts de MCP

1648</h3>1665</h3>

memory.md +9 −0

Details

103 103 

104**Consistencia**: si dos reglas se contradicen entre sí, Claude puede elegir una arbitrariamente. Revise sus archivos CLAUDE.md, archivos CLAUDE.md anidados en subdirectorios y [`.claude/rules/`](#organize-rules-with-claude/rules/) periódicamente para eliminar instrucciones obsoletas o conflictivas. En monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitir archivos CLAUDE.md de otros equipos que no sean relevantes para su trabajo.104**Consistencia**: si dos reglas se contradicen entre sí, Claude puede elegir una arbitrariamente. Revise sus archivos CLAUDE.md, archivos CLAUDE.md anidados en subdirectorios y [`.claude/rules/`](#organize-rules-with-claude/rules/) periódicamente para eliminar instrucciones obsoletas o conflictivas. En monorepos, use [`claudeMdExcludes`](#exclude-specific-claude-md-files) para omitir archivos CLAUDE.md de otros equipos que no sean relevantes para su trabajo.

105 105 

106Para que Claude verifique estos archivos en busca de instrucciones obsoletas o conflictivas, ejecute `/doctor prompt-audit` en una sesión. Claude lee sus archivos CLAUDE.md, CLAUDE.local.md y AGENTS.md, más las reglas, skills, comandos, subagentes y estilos de salida bajo `.claude/` y `~/.claude/`. Busca problemas como instrucciones escritas para modelos más antiguos, referencias a archivos o comandos que no existen y archivos que se contradicen entre sí. Obtiene un informe de hallazgos y un conjunto de ediciones propuestas, y nada en sus archivos cambia hasta que le pida a Claude que las aplique.

107 

108Para auditar un archivo o directorio en su lugar, pase su ruta, por ejemplo `/doctor prompt-audit .claude/skills/deploy`. La auditoría se ejecuta a través del skill `/claude-api` incluido, por lo que no está disponible mientras ese skill está desactivado en [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) o con [`disableBundledSkills`](/docs/es/settings-reference#disablebundledskills). `/doctor prompt-audit` requiere Claude Code v2.1.283 o posterior.

109 

106<h3 id="import-additional-files">110<h3 id="import-additional-files">

107 Importe archivos adicionales111 Importe archivos adicionales

108</h3>112</h3>


273ln -s ~/company-standards/security.md .claude/rules/security.md277ln -s ~/company-standards/security.md .claude/rules/security.md

274```278```

275 279 

280Si apunta un enlace simbólico `.claude/rules/` o `CLAUDE.md` a una ruta de red como el recurso compartido UNC `\\server\share` o una ruta bajo `/net` o `/Network`, las instrucciones vinculadas no se cargan. Claude Code no sigue el enlace, porque buscar tal ruta puede contactar al host que nombra. Las rutas `\\wsl$` no cuentan como rutas de red.

281 

276<h4 id="user-level-rules">282<h4 id="user-level-rules">

277 Reglas a nivel de usuario283 Reglas a nivel de usuario

278</h4>284</h4>


620* Verifique que el CLAUDE.md relevante esté en una ubicación que se cargue para su sesión (consulte [Elija dónde colocar los archivos CLAUDE.md](#choose-where-to-put-claude-md-files)).626* Verifique que el CLAUDE.md relevante esté en una ubicación que se cargue para su sesión (consulte [Elija dónde colocar los archivos CLAUDE.md](#choose-where-to-put-claude-md-files)).

621* Haga instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".627* Haga instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".

622* Busque instrucciones conflictivas en archivos CLAUDE.md. Si dos archivos dan orientación diferente para el mismo comportamiento, Claude puede elegir uno arbitrariamente.628* Busque instrucciones conflictivas en archivos CLAUDE.md. Si dos archivos dan orientación diferente para el mismo comportamiento, Claude puede elegir uno arbitrariamente.

629* Verifique si su instrucción compite con la orientación que Claude Code añade por su cuenta. Si su CLAUDE.md establece reglas de commit o pull request, desactive las integradas con [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions) y establezca el texto de atribución con [`attribution`](/docs/es/settings-reference#attribution).

623 630 

624Si 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](/docs/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.631Si 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](/docs/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.

625 632 


657 664 

658Los archivos de más de 200 líneas consumen más contexto y pueden reducir la adherencia. Claude Code omite un archivo de más de 4 MiB. Use [reglas con alcance de ruta](#path-specific-rules) para cargar instrucciones solo cuando Claude trabaja con archivos coincidentes, o recorte contenido que no sea necesario en cada sesión. Dividir en [importaciones `@path`](#import-additional-files) ayuda a la organización pero no reduce el contexto, ya que los archivos importados se cargan al iniciar.665Los archivos de más de 200 líneas consumen más contexto y pueden reducir la adherencia. Claude Code omite un archivo de más de 4 MiB. Use [reglas con alcance de ruta](#path-specific-rules) para cargar instrucciones solo cuando Claude trabaja con archivos coincidentes, o recorte contenido que no sea necesario en cada sesión. Dividir en [importaciones `@path`](#import-additional-files) ayuda a la organización pero no reduce el contexto, ya que los archivos importados se cargan al iniciar.

659 666 

667Si uno de sus archivos de instrucciones supera la longitud recomendada, verá una advertencia al iniciar y cuando ejecute `/status`. También verá una advertencia cuando archivos que están cada uno dentro de esa longitud se suman más allá de un límite combinado al inicio de la sesión. Cada CLAUDE.md, archivo de reglas e importación `@path` cuenta como un archivo separado.

668 

660La revisión [`/doctor`](/docs/es/commands#all-commands) propone recortes para un CLAUDE.md registrado: elimina contenido que Claude puede derivar de la base de código, como diseños de directorios, listas de dependencias y descripción general de la arquitectura, y mantiene trampas, justificación y convenciones que difieren de los valores predeterminados de las herramientas. La verificación de recorte requiere Claude Code v2.1.206 o posterior.669La revisión [`/doctor`](/docs/es/commands#all-commands) propone recortes para un CLAUDE.md registrado: elimina contenido que Claude puede derivar de la base de código, como diseños de directorios, listas de dependencias y descripción general de la arquitectura, y mantiene trampas, justificación y convenciones que difieren de los valores predeterminados de las herramientas. La verificación de recorte requiere Claude Code v2.1.206 o posterior.

661 670 

662<h3 id="instructions-seem-lost-after-/compact">671<h3 id="instructions-seem-lost-after-/compact">

mobile.md +1 −1

Details

43| Característica | A qué se conecta | Cuándo usar |43| Característica | A qué se conecta | Cuándo usar |

44| :- | :- | :- |44| :- | :- | :- |

45| [Cloud sessions](/docs/es/claude-code-on-the-web) | Una sesión en infraestructura en la nube, administrada por Anthropic de forma predeterminada | Su repositorio está en GitHub y la tarea debe continuar ejecutándose después de dejar su teléfono. Consulte el [inicio rápido en la nube](/docs/es/web-quickstart) para configurar. |45| [Cloud sessions](/docs/es/claude-code-on-the-web) | Una sesión en infraestructura en la nube, administrada por Anthropic de forma predeterminada | Su repositorio está en GitHub y la tarea debe continuar ejecutándose después de dejar su teléfono. Consulte el [inicio rápido en la nube](/docs/es/web-quickstart) para configurar. |

46| [Projects](/docs/es/claude-projects) | Una conversación donde Claude coordina sesiones en la nube paralelas como hilos | Tiene un flujo de trabajo relacionado en lugar de una tarea y desea ver qué hilos finalizaron o lo necesitan. |46| [Projects](/docs/es/claude-projects) | Una conversación donde Claude coordina hilos de trabajo paralelos e informa de los resultados | Tiene un flujo de trabajo relacionado en lugar de una tarea y desea ver qué hilos finalizaron o lo necesitan. |

47| [Remote Control](/docs/es/remote-control) | Una sesión de Claude Code que se ejecuta en su computadora | El trabajo necesita su sistema de archivos local, herramientas o servidores MCP. |47| [Remote Control](/docs/es/remote-control) | Una sesión de Claude Code que se ejecuta en su computadora | El trabajo necesita su sistema de archivos local, herramientas o servidores MCP. |

48| [Dispatch](/docs/es/desktop#sessions-from-dispatch) | La aplicación de Escritorio en su computadora | Desea enviar un mensaje con una tarea y dejar que Dispatch decida cómo ejecutarla. Requiere un plan Pro o Max. |48| [Dispatch](/docs/es/desktop#sessions-from-dispatch) | La aplicación de Escritorio en su computadora | Desea enviar un mensaje con una tarea y dejar que Dispatch decida cómo ejecutarla. Requiere un plan Pro o Max. |

49 49 

model-config.md +205 −134

Details

17 * API de Anthropic: un **[nombre de modelo](https://platform.claude.com/docs/en/about-claude/models/overview)** completo17 * API de Anthropic: un **[nombre de modelo](https://platform.claude.com/docs/en/about-claude/models/overview)** completo

18 * Amazon Bedrock: un ARN de perfil de inferencia18 * Amazon Bedrock: un ARN de perfil de inferencia

19 * Microsoft Foundry: un nombre de implementación19 * Microsoft Foundry: un nombre de implementación

20 * Agent Platform de Google Cloud: un nombre de versión20 * Plataforma de agentes de Google Cloud: un nombre de versión

21 21 

22Para obtener orientación sobre qué modelo y nivel de esfuerzo se ajustan a diferentes tipos de trabajo, consulte [Choosing a Claude model and effort level in Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code) en el blog.22Para obtener orientación sobre qué modelo y nivel de esfuerzo se ajustan a diferentes tipos de trabajo, consulte [Elegir un modelo de Claude y nivel de esfuerzo en Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code) en el blog.

23 23 

24<Note>24<Note>

25 `ANTHROPIC_BASE_URL` cambia dónde se envían las solicitudes, no qué modelo las responde. Para enrutar Claude a través de una puerta de enlace LLM, consulte [LLM gateways](/docs/es/llm-gateway).25 `ANTHROPIC_BASE_URL` cambia dónde se envían las solicitudes, no qué modelo las responde. Para enrutar Claude a través de una puerta de enlace LLM, consulte [Puertas de enlace LLM](/docs/es/llm-gateway).

26</Note>26</Note>

27 27 

28<h3 id="model-aliases">28<h3 id="model-aliases">


34| Alias de modelo | Comportamiento |34| Alias de modelo | Comportamiento |

35| - | - |35| - | - |

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

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

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

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

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

41| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |41| **`haiku`** | Utiliza el modelo Haiku rápido y eficiente para tareas simples |

42| **`sonnet[1m]`** | Utiliza Sonnet con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas. Sin efecto cuando `sonnet` ya se resuelve a Sonnet 5 con su ventana nativa de 1M; detrás de una [puerta de enlace LLM](/docs/es/llm-gateway), selecciona la ventana de 1M para Sonnet 5 |42| **`sonnet[1m]`** | Utiliza Sonnet con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas. Sin efecto cuando `sonnet` ya se resuelve a Sonnet 5.5 o Sonnet 5 con su ventana nativa de 1M; detrás de una [puerta de enlace LLM](/docs/es/llm-gateway), selecciona la ventana de 1M para ese modelo |

43| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas |43| **`opus[1m]`** | Utiliza Opus con una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas |

44| **`opusplan`** | Modo especial que utiliza `opus` durante Plan Mode, luego cambia a `sonnet` para la ejecución |44| **`opusplan`** | Modo especial que utiliza `opus` durante el modo de plan, luego cambia a `sonnet` para la ejecución |

45 45 

46La versión a la que se resuelven los alias `opus` y `sonnet` depende del proveedor:46La versión a la que se resuelven los alias `opus` y `sonnet` depende del proveedor:

47 47 

48| Proveedor | `opus` | `sonnet` |48| Proveedor | `opus` | `sonnet` |

49| :- | :- | :- |49| :- | :- | :- |

50| API de Anthropic | Opus 5.5 | Sonnet 5 |50| API de Anthropic | Opus 5.5 | Sonnet 5.5 |

51| [Claude Platform on AWS](/docs/es/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |51| [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock, Agent Platform de Google Cloud | Opus 5.5 | Sonnet 4.5 |52| Amazon Bedrock, Plataforma de agentes de Google Cloud | Opus 5.5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55<span id="fable-alias-resolution" />55<span id="fable-alias-resolution" />

56 56 

57A menos que establezca `ANTHROPIC_DEFAULT_FABLE_MODEL`, el alias `fable` se resuelve a Fable 5.1, excepto en sesiones de [Claude apps gateway](/docs/es/claude-apps-gateway), donde `fable` y `best` se resuelven a Fable 5. Antes de v2.1.257, `fable` se resolvía a Fable 5 en cada proveedor.57A menos que establezca `ANTHROPIC_DEFAULT_FABLE_MODEL`, el alias `fable` se resuelve a Fable 5.1, excepto en sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), donde `fable` y `best` se resuelven a Fable 5.

58 58 

59Una puerta de enlace que no está configurada para servir `claude-fable-5-1` rechaza solicitudes para ese modelo. Para usar Fable 5.1 a través de una puerta de enlace que lo sirve, selecciónelo con `/model claude-fable-5-1`.59Una puerta de enlace que no esté configurada para servir `claude-fable-5-1` rechaza solicitudes para ese modelo. Para usar Fable 5.1 a través de una puerta de enlace que lo sirve, selecciónelo con `/model claude-fable-5-1`.

60 60 

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

62 62 

63Antes de v2.1.280, `opus` se resolvía a Opus 5 en la API de Anthropic, Claude Platform on AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.219. Antes de v2.1.219, `opus` se resolvía a Opus 4.8 en la API de Anthropic desde v2.1.154, y en Claude Platform on AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `opus` se resolvía a Opus 4.7 en Claude Platform on AWS y a Opus 4.6 en Amazon Bedrock y Agent Platform de Google Cloud.63Las versiones anteriores resuelven estos alias a modelos más antiguos. Para la versión en la que cada alias cambió, consulte [Historial de versiones](#version-history).

64 64 

65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Opus 5.5 requiere Claude Code v2.1.280 o posterior. Opus 5 requiere v2.1.219 o posterior. Sonnet 5 requiere v2.1.197 o posterior. Ejecute `claude update` para actualizar.68 Sonnet 5.5 requiere Claude Code v2.1.284 o posterior, y Opus 5.5 requiere v2.1.280 o posterior. Ejecute `claude update` para actualizar.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


76 76 

77Ninguno de los modelos Fable es el valor predeterminado de tipo de cuenta en ningún plan o proveedor. Seleccione uno explícitamente:77Ninguno de los modelos Fable es el valor predeterminado de tipo de cuenta en ningún plan o proveedor. Seleccione uno explícitamente:

78 78 

79* **Fable 5.1**: ejecute `/model fable`, o inicie con `claude --model fable`. En sesiones de [Claude apps gateway](/docs/es/claude-apps-gateway), donde el alias se resuelve a Fable 5, ejecute `/model claude-fable-5-1` en su lugar.79* **Fable 5.1**: ejecute `/model fable`, o inicie con `claude --model fable`. En sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), donde el alias se resuelve a Fable 5, ejecute `/model claude-fable-5-1` en su lugar.

80* **Fable 5**: selecciónelo por ID de modelo. En la API de Anthropic, ejecute `/model claude-fable-5` o inicie con `claude --model claude-fable-5`. En otros proveedores, use el ID de modelo Fable 5 de su proveedor o [fíjelo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.80* **Fable 5**: selecciónelo por ID de modelo. En la API de Anthropic, ejecute `/model claude-fable-5` o inicie con `claude --model claude-fable-5`. En otros proveedores, use el ID de modelo Fable 5 de su proveedor o [fíjelo](#pin-models-for-third-party-deployments) con `ANTHROPIC_DEFAULT_FABLE_MODEL`.

81 81 

82Si se conecta a la API de Anthropic directamente y su configuración de usuario contiene `claude-fable-5` o `claude-fable-5[1m]` como modelo, por ejemplo porque seleccionó Fable en el selector `/model` antes de v2.1.257, Claude Code cambia ese valor guardado al alias `fable` o `fable[1m]` la primera vez que ejecuta v2.1.257 o posterior. La línea del modelo de inicio muestra `(auto-updated)` una vez. Un valor `claude-fable-5` en la configuración del proyecto, local o administrada se deja tal como está.82Si se conecta a la API de Anthropic directamente y su configuración de usuario contiene `claude-fable-5` o `claude-fable-5[1m]` como modelo, por ejemplo porque seleccionó Fable en el selector `/model` antes de v2.1.257, Claude Code cambia ese valor guardado al alias `fable` o `fable[1m]` la primera vez que ejecuta v2.1.257 o posterior. La línea de modelo de inicio muestra `(auto-updated)` una vez. Un valor `claude-fable-5` en configuración de proyecto, local o administrada permanece como está.

83 83 

84Las solicitudes que los clasificadores de seguridad de un modelo Fable marcan, más a menudo en dominios de ciberseguridad y biología, desencadenan [alternancia automática de modelo](#automatic-model-fallback).84Las solicitudes que los clasificadores de seguridad del modelo Fable marcan, más a menudo en dominios de ciberseguridad y biología, activan [alternancia automática de modelo](#automatic-model-fallback).

85 85 

86Para aprovechar al máximo Fable:86Para aprovechar al máximo Fable:

87 87 


91* **Dimensione tareas más grandes**: entrégale trabajo que normalmente dividiría en piezas. Mantiene sesiones largas sin perder el hilo.91* **Dimensione tareas más grandes**: entrégale trabajo que normalmente dividiría en piezas. Mantiene sesiones largas sin perder el hilo.

92 92 

93<Note>93<Note>

94 Fable 5.1 requiere Claude Code v2.1.257 o posterior. Si una solicitud de una versión anterior falla, consulte [Claude Code does not support this model](/docs/es/errors#claude-code-does-not-support-this-model). Ejecute `claude update` para actualizar. Para disponibilidad bajo retención de datos cero, consulte [Model availability under ZDR](/docs/es/zero-data-retention#model-availability-under-zdr).94 Fable 5.1 requiere Claude Code v2.1.257 o posterior. Si una solicitud de una versión anterior falla, consulte [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Ejecute `claude update` para actualizar. Para disponibilidad bajo retención cero de datos, consulte [Disponibilidad de modelo bajo ZDR](/docs/es/zero-data-retention#model-availability-under-zdr).

95</Note>95</Note>

96 96 

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

98 98 

99<h4 id="fable-and-usage-credits">99<h4 id="fable-and-usage-credits">

100 Fable y créditos de uso100 Fable y créditos de uso

101</h4>101</h4>

102 102 

103Dependiendo de su plan y nivel de asiento, el uso de Fable puede facturarse a [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en lugar de extraer de los límites incluidos en su plan. Cuando lo hace, el selector `/model` muestra "Requires usage credits" en la fila Fable. Para administrar créditos de uso, consulte [Add usage credits to your subscription](/docs/es/costs#add-usage-credits-to-your-subscription).103Dependiendo de su plan y nivel de asiento, el uso de Fable puede facturarse a [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en lugar de extraer de los límites incluidos de su plan. Cuando lo hace, el selector `/model` muestra "Requiere créditos de uso" en la fila Fable. Para administrar créditos de uso, consulte [Agregar créditos de uso a su suscripción](/docs/es/costs#add-usage-credits-to-your-subscription).

104 104 

105En sesiones interactivas, Claude Code muestra un mensaje de consentimiento antes de que una solicitud de Fable facture créditos de uso. Los miembros de planes Enterprise con facturación de organización no ven el mensaje. Puede continuar en Fable usando créditos de uso o cambiar a su modelo predeterminado. También puede descartar el mensaje:105En sesiones interactivas, Claude Code muestra un mensaje de consentimiento antes de que una solicitud de Fable facture créditos de uso. Los miembros de planes Enterprise con facturación de organización no ven el mensaje. Puede continuar en Fable usando créditos de uso o cambiar a su modelo predeterminado. También puede descartar el mensaje:

106 106 


109 109 

110Después de elegir continuar en Fable usando créditos de uso, Claude Code no muestra el mensaje nuevamente.110Después de elegir continuar en Fable usando créditos de uso, Claude Code no muestra el mensaje nuevamente.

111 111 

112En una sesión con [Remote Control](/docs/es/remote-control) conectado, una [sesión en segundo plano](/docs/es/agent-view), o una sesión de compañero de [equipo de agentes](/docs/es/agent-teams), es posible que nadie esté en la terminal, por lo que Claude Code mantiene el mensaje de consentimiento a mitad de sesión para el plazo [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), cinco minutos por defecto. Si nadie ha respondido antes del plazo, Claude Code finaliza el turno sin enviar la solicitud y agrega un aviso a la transcripción, que el cliente de Remote Control también muestra. Su selección de modelo no cambia, y Claude Code solicita consentimiento nuevamente en su próximo mensaje.112En una sesión con [Control remoto](/docs/es/remote-control) conectado, una [sesión en segundo plano](/docs/es/agent-view), o una sesión de compañero de [equipo de agentes](/docs/es/agent-teams), es posible que nadie esté en la terminal, por lo que Claude Code mantiene el mensaje de consentimiento a mitad de sesión para el plazo de [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry), cinco minutos por defecto. Si nadie ha respondido antes del plazo, Claude Code finaliza el turno sin enviar la solicitud y agrega un aviso a la transcripción, que el cliente de Control remoto también muestra. Su selección de modelo no cambia, y Claude Code solicita consentimiento nuevamente en su próximo mensaje.

113 113 

114Lo que puede hacer mientras el mensaje está esperando depende de la sesión:114Lo que puede hacer mientras el mensaje está esperando depende de la sesión:

115 115 

116* Con Remote Control conectado o en la sesión de un compañero, presione cualquier tecla en la terminal para cancelar el plazo, y Claude Code espera su respuesta.116* Con Control remoto conectado o en una sesión de compañero, presione cualquier tecla en la terminal para cancelar el plazo, y Claude Code espera su respuesta.

117* En una sesión en segundo plano, responda antes del plazo.117* En una sesión en segundo plano, responda antes del plazo.

118* Si envía un nuevo mensaje desde el cliente remoto antes de que alguien escriba en la terminal, Claude Code finaliza el turno de la misma manera, y su nuevo mensaje inicia el siguiente turno. Después de que alguien escriba en la terminal, Claude Code continúa esperando la respuesta y pone en cola su nuevo mensaje detrás de ella.118* Si envía un nuevo mensaje desde el cliente remoto antes de que alguien escriba en la terminal, Claude Code finaliza el turno de la misma manera, y su nuevo mensaje inicia el siguiente turno. Después de que alguien escriba en la terminal, Claude Code continúa esperando la respuesta y pone en cola su nuevo mensaje detrás de ella.

119 119 


125 125 

126Puede configurar su modelo de varias formas, enumeradas en orden de prioridad:126Puede configurar su modelo de varias formas, enumeradas en orden de prioridad:

127 127 

1281. **Durante la sesión**: use `/model <alias|name>` para cambiar inmediatamente, o ejecute `/model` sin argumento para abrir el selector. Consulte [cuando Claude Code le pide que confirme el cambio](/docs/es/prompt-caching#switching-models)1281. **Durante la sesión**: use `/model <alias|name>` para cambiar inmediatamente, o ejecute `/model` sin argumento para abrir el selector. Consulte [cuándo Claude Code le pide que confirme el cambio](/docs/es/prompt-caching#switching-models)

1292. **Al inicio**: inicie con `claude --model <alias|name>`1292. **Al inicio**: inicie con `claude --model <alias|name>`

1303. **Variable de entorno**: establezca `ANTHROPIC_MODEL=<alias|name>`1303. **Variable de entorno**: establezca `ANTHROPIC_MODEL=<alias|name>`

1314. **Configuración**: configure permanentemente en su archivo de configuración usando el campo `model`1314. **Configuración**: configure permanentemente en su archivo de configuración usando el campo `model`


138 138 

139Escribir `/model <name>` directamente se comporta como `Enter`. Para cambiar solo para esta sesión, abra el selector con `/model` y presione `s` en la fila del modelo.139Escribir `/model <name>` directamente se comporta como `Enter`. Para cambiar solo para esta sesión, abra el selector con `/model` y presione `s` en la fila del modelo.

140 140 

141En un plan Enterprise, cuando inicia sesión con su cuenta de claude.ai y guarda un predeterminado con `/model`, Claude Code también registra la elección en esa cuenta. Esto requiere Claude Code v2.1.280 o posterior.

142 

143* Cuando su administrador no ha establecido un [modelo predeterminado de organización](#organization-default-model), la [opción Predeterminado](#default-model-setting) puede resolverse al modelo registrado, y cuando lo hace, la fila Predeterminado del selector muestra el nombre de ese modelo.

144* Si las [restricciones de modelo](#restrict-model-selection) excluyen el modelo registrado o no está disponible para su cuenta, y su administrador no ha establecido un modelo predeterminado de organización, la opción Predeterminado se resuelve como si nada se hubiera registrado.

145* Si elige Predeterminado u `opusplan` en `/model`, la elección registrada no cambia.

146 

141Si cambia modelos con `/model`, el cambio también llega a [subagentes que heredan el modelo de la conversación principal](/docs/es/sub-agents#choose-a-model), porque Claude Code resuelve su modelo desde el que su sesión está usando cuando Claude los inicia. Cambie a Opus antes de que Claude delegue investigación o ejecuciones de prueba a uno de ellos, y ese trabajo se ejecuta en Opus también. Para mantener un subagente personalizado en un modelo más pequeño, establezca `model` en su definición.147Si cambia modelos con `/model`, el cambio también llega a [subagentes que heredan el modelo de la conversación principal](/docs/es/sub-agents#choose-a-model), porque Claude Code resuelve su modelo desde el que su sesión está usando cuando Claude los inicia. Cambie a Opus antes de que Claude delegue investigación o ejecuciones de prueba a uno de ellos, y ese trabajo se ejecuta en Opus también. Para mantener un subagente personalizado en un modelo más pequeño, establezca `model` en su definición.

142 148 

143Si establece un modelo con `/model` en [modo no interactivo](/docs/es/headless), con la bandera `-p`, su elección se aplica solo a la sesión actual y no se guarda como predeterminado; `/model` en ese modo requiere Claude Code v2.1.205 o posterior. La configuración del proyecto y administrada aún tienen precedencia y se reaplicarán en el próximo inicio. Un [modelo predeterminado de organización](#organization-default-model) que su administrador ha configurado para anular la selección del usuario también se reaplicará en el próximo inicio.149Si establece un modelo con `/model` en [modo no interactivo](/docs/es/headless), con la bandera `-p`, su elección se aplica solo a la sesión actual y no se guarda como predeterminada; `/model` en ese modo requiere Claude Code v2.1.205 o posterior. La configuración de proyecto y administrada aún tienen prioridad y se reaplicarán en el próximo lanzamiento. Un [modelo predeterminado de organización](#organization-default-model) que su administrador ha configurado para anular la selección del usuario también se reaplicará en el próximo lanzamiento.

144 150 

145En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.151En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.

146 152 

147La bandera `--model` y la variable de entorno `ANTHROPIC_MODEL` se aplican solo a la sesión que inicia con ellas. Para ejecutar diferentes modelos en diferentes terminales al mismo tiempo, inicie cada uno con su propia bandera `--model` en lugar de cambiar con `/model`.153La bandera `--model` y la variable de entorno `ANTHROPIC_MODEL` se aplican solo a la sesión que inicia con ellas. Para ejecutar diferentes modelos en diferentes terminales al mismo tiempo, inicie cada uno con su propia bandera `--model` en lugar de cambiar con `/model`.

148 154 

149Los precios en el selector `/model` aparecen cuando Claude Code habla con la API de Anthropic, directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway) que la proxifica, y el precio en una fila es el precio del modelo que esa fila selecciona. En [proveedores de terceros](/docs/es/third-party-integrations) como Amazon Bedrock y en la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), su proveedor o puerta de enlace determina lo que paga, por lo que las filas del selector no muestran precio. El precio es solo una etiqueta de visualización; no afecta qué modelo selecciona una fila o qué factura su proveedor. Antes de v2.1.206, [Claude Platform on AWS](/docs/es/claude-platform-on-aws) y las sesiones de puerta de enlace mostraban precios de lista de Anthropic, y una fila podría mostrar el precio de un modelo diferente al que seleccionaba.155Los precios en el selector `/model` aparecen cuando Claude Code habla con la API de Anthropic, directamente o a través de una [puerta de enlace LLM](/docs/es/llm-gateway) que la proxifica, y el precio en una fila es el precio del modelo que esa fila selecciona. En [proveedores de terceros](/docs/es/third-party-integrations) como Amazon Bedrock y en la [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), su proveedor o puerta de enlace determina lo que paga, por lo que las filas del selector no muestran precio. El precio es solo una etiqueta de visualización; no afecta qué modelo selecciona una fila o qué factura su proveedor. Antes de v2.1.206, [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws) y sesiones de puerta de enlace mostraban precios de lista de Anthropic, y una fila podría mostrar el precio de un modelo diferente al que seleccionaba.

150 156 

151Las sesiones reanudadas iniciadas con `claude --resume`, `--continue`, o el selector `/resume` mantienen el modelo que estaban usando cuando se guardó la transcripción, independientemente de la configuración actual de `model`. Si el modelo restaurado se ha retirado o está excluido por [`availableModels`](#restrict-model-selection), la sesión cae a través del orden de precedencia normal. Esto evita que la elección de `/model` de otra sesión cambie el modelo en la reanudación. En proveedores que usan ID de implementación específicos del proveedor en lugar de ID de modelo de Anthropic, como Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, el modelo de transcripción no se restaura en absoluto y la sesión resuelve su modelo a través del orden de precedencia normal.157Las sesiones reanudadas iniciadas con `claude --resume`, `--continue`, o el selector `/resume` mantienen el modelo que estaban usando cuando se guardó la transcripción, independientemente de la configuración actual de `model`. Si el modelo restaurado se ha retirado o es excluido por [`availableModels`](#restrict-model-selection), la sesión cae a través del orden de prioridad normal. Esto evita que la elección `/model` de otra sesión cambie el modelo en la reanudación. En proveedores que usan ID de implementación específicos del proveedor en lugar de ID de modelo de Anthropic, como Amazon Bedrock, Plataforma de agentes de Google Cloud y Microsoft Foundry, el modelo de transcripción no se restaura en absoluto y la sesión resuelve su modelo a través del orden de prioridad normal.

152 158 

153Un modelo que elige para el nuevo inicio con `--model` o `ANTHROPIC_MODEL` aún tiene precedencia sobre el modelo restaurado. A partir de v2.1.195, también lo hace una variable de familia [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables). [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) también puede, bajo las condiciones enumeradas en su sección.159Un modelo que elige para el nuevo lanzamiento con `--model` o `ANTHROPIC_MODEL` aún tiene prioridad sobre el modelo restaurado. A partir de v2.1.195, también lo hace una variable de familia [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables). [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) también puede, bajo las condiciones enumeradas en su sección.

154 160 

155Cuando el modelo activo al inicio proviene de la configuración del proyecto o administrada en lugar de su propia selección, el encabezado de inicio muestra qué archivo de configuración lo estableció. Ejecute `/model` para anular; la configuración del proyecto o administrada se reaplicará en el próximo inicio. En plataformas que incrustan Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), la configuración de modelo del host tiene precedencia sobre la configuración de modelo administrada, mientras que una lista de permitidos `availableModels` administrada permanece en vigor a menos que el host suministre la suya propia; [Exceptions to managed settings precedence](/docs/es/settings#exceptions-to-managed-settings-precedence) dice qué claves y variables anula el host.161Cuando el modelo activo al inicio proviene de configuración de proyecto o administrada en lugar de su propia selección, el encabezado de inicio muestra qué archivo de configuración lo estableció. Ejecute `/model` para anular; la configuración de proyecto o administrada se reaplicará en el próximo lanzamiento. En plataformas que incrustan Claude Code y establecen [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/es/env-vars), la configuración de modelo del host tiene prioridad sobre la configuración de modelo administrada, mientras que una lista de permitidos `availableModels` administrada permanece en vigor a menos que el host suministre la suya propia; [Excepciones a la prioridad de configuración administrada](/docs/es/settings#exceptions-to-managed-settings-precedence) dice qué claves y variables anula el host.

156 162 

157Si usted u su organización configuran [PreModelSwitch hooks](/docs/es/hooks#premodelswitch), se ejecutan antes de que se aplique un cambio solicitado y pueden bloquearlo o pedirle que confirme.163Si usted u su organización configuran [hooks PreModelSwitch](/docs/es/hooks#premodelswitch), se ejecutan antes de que se aplique un cambio solicitado y pueden bloquearlo o pedirle que confirme.

158 164 

159Cuando Claude Code no puede determinar qué PreModelSwitch hooks entregan sus [plugins administrados](/docs/es/settings-reference#enabledplugins) de la organización, por ejemplo porque un plugin administrado no se cargó, rechaza el cambio en lugar de aplicarlo sin verificar, y verifica nuevamente en cada nuevo intento. Consulte [Model switch was blocked by a PreModelSwitch hook](/docs/es/errors#model-switch-was-blocked-by-a-premodelswitch-hook) para el mensaje y recuperación.165Cuando Claude Code no puede determinar qué hooks PreModelSwitch entregan los [plugins administrados](/docs/es/settings-reference#enabledplugins) de su organización, por ejemplo porque un plugin administrado no se cargó, rechaza el cambio en lugar de aplicarlo sin verificar, y verifica nuevamente en cada nuevo intento. Consulte [El cambio de modelo fue bloqueado por un hook PreModelSwitch](/docs/es/errors#model-switch-was-blocked-by-a-premodelswitch-hook) para el mensaje y recuperación.

160 166 

161Cuando cambia modelos a través del método `setModel()` del [Agent SDK](/docs/es/agent-sdk/overview) o desde un dispositivo conectado a través de [Remote Control](/docs/es/remote-control), o una aplicación como la [aplicación de escritorio](/docs/es/desktop) que ejecuta Claude Code CLI cambia para usted, Claude Code verifica que la cadena sea una que reconozca antes de guardarla. Esta verificación requiere Claude Code v2.1.200 o posterior. Verificar una selección de Remote Control requiere Claude Code v2.1.260 o posterior en su máquina. En la API de Anthropic, Claude Code reconoce:167Cuando cambia modelos a través del método [`setModel()`](/docs/es/agent-sdk/overview) del Agent SDK o desde un dispositivo conectado a través de [Control remoto](/docs/es/remote-control), o una aplicación como la [Aplicación de escritorio](/docs/es/desktop) que ejecuta el CLI de Claude Code cambia por usted, Claude Code verifica que la cadena sea una que reconozca antes de guardarla. Esta verificación requiere Claude Code v2.1.200 o posterior. Verificar una selección de Control remoto requiere Claude Code v2.1.260 o posterior en su máquina. En la API de Anthropic, Claude Code reconoce:

162 168 

163* un alias de modelo169* un alias de modelo

164* una entrada del selector `/model`170* una entrada del selector `/model`


167 173 

168Claude Code rechaza una cadena no reconocida con `Model "<name>" is not a recognized model id.` y la sesión mantiene su modelo actual, en lugar de guardar la cadena y fallar en la próxima solicitud. Consulte [la referencia de errores](/docs/es/errors#model-is-not-a-recognized-model-id) para pasos de recuperación.174Claude Code rechaza una cadena no reconocida con `Model "<name>" is not a recognized model id.` y la sesión mantiene su modelo actual, en lugar de guardar la cadena y fallar en la próxima solicitud. Consulte [la referencia de errores](/docs/es/errors#model-is-not-a-recognized-model-id) para pasos de recuperación.

169 175 

170La verificación se ejecuta solo en la API de Anthropic. En Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, [Claude Platform on AWS](/docs/es/claude-platform-on-aws), y detrás de una [puerta de enlace LLM](/docs/es/llm-gateway) o un `ANTHROPIC_BASE_URL` personalizado, su proveedor o puerta de enlace define los nombres de modelo, por lo que Claude Code pasa cualquier cadena sin verificarla. La verificación tampoco cubre la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, o la configuración de `model`; un valor mal escrito allí produce [There's an issue with the selected model](/docs/es/errors#theres-an-issue-with-the-selected-model) en la primera solicitud en su lugar. Claude Code aún puede escribir la [línea de diagnóstico de modelo no reconocido](/docs/es/errors#unrecognized-model-id-on-a-request) en el momento de la solicitud, en cada proveedor.176La verificación se ejecuta solo en la API de Anthropic. En Amazon Bedrock, Plataforma de agentes de Google Cloud, Microsoft Foundry, [Plataforma Claude en AWS](/docs/es/claude-platform-on-aws), y detrás de una [puerta de enlace LLM](/docs/es/llm-gateway) o un `ANTHROPIC_BASE_URL` personalizado, su proveedor o puerta de enlace define los nombres de modelo, por lo que Claude Code pasa cualquier cadena sin verificarla. La verificación tampoco cubre la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, o la configuración `model`; un valor mal escrito allí produce [Hay un problema con el modelo seleccionado](/docs/es/errors#theres-an-issue-with-the-selected-model) en la primera solicitud en su lugar. Claude Code aún puede escribir la [línea de diagnóstico de modelo no reconocido](/docs/es/errors#unrecognized-model-id-on-a-request) en tiempo de solicitud, en cada proveedor.

171 177 

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

173 179 

174Por ejemplo, inicie una sesión en Opus:180Por ejemplo, inicie una sesión en Opus:

175 181 


204 210 

205* La bandera `--model`211* La bandera `--model`

206* `ANTHROPIC_MODEL`212* `ANTHROPIC_MODEL`

207* Un valor de `model` en cualquier archivo de configuración, incluida la elección que guarda con `/model`213* Un valor `model` en cualquier archivo de configuración, incluida la elección que guarda con `/model`

208* Un [modelo predeterminado de organización](#organization-default-model)214* Un [modelo predeterminado de organización](#organization-default-model)

209 215 

210Una elección que guarda con `/model` tiene precedencia sobre la variable en lanzamientos posteriores también. Con `ANTHROPIC_MODEL` establecido en su lugar, Claude Code vuelve al modelo de esa variable en el próximo lanzamiento, sea lo que sea que haya guardado con `/model`.216Una elección que guarda con `/model` tiene prioridad sobre la variable en lanzamientos posteriores también. Con `ANTHROPIC_MODEL` establecido en su lugar, Claude Code vuelve al modelo de esa variable en el próximo lanzamiento, sea lo que sea que haya guardado con `/model`.

211 217 

212Claude Code también resuelve la opción Predeterminado al modelo de la variable, a menos que se aplique un modelo predeterminado de organización. Cuando la opción Predeterminado se resuelve al modelo de la variable, la fila Predeterminado en el selector `/model` muestra la etiqueta Set by ANTHROPIC\_DEFAULT\_MODEL.218Claude Code también resuelve la opción Predeterminado al modelo de la variable, a menos que se aplique un modelo predeterminado de organización. Cuando la opción Predeterminado se resuelve al modelo de la variable, la fila Predeterminado en el selector `/model` muestra la etiqueta Establecido por ANTHROPIC\_DEFAULT\_MODEL.

213 219 

214Claude Code ignora la variable en estos casos, y la opción Predeterminado se resuelve como si no la hubiera establecido:220Claude Code ignora la variable en estos casos, y la opción Predeterminado se resuelve como si no la hubiera establecido:

215 221 

216* La establece en `default`, `inherit`, `opusplan`, o `haiku`222* La establece en `default`, `inherit`, `opusplan`, o `haiku`

217* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) está activado223* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) está activado

218* [`availableModels`](#restrict-model-selection) o [restricciones de modelo de organización](#organization-model-restrictions) excluyen el modelo224* Las [restricciones de modelo](#restrict-model-selection) de su organización excluyen el modelo

219* El modelo no está disponible para su cuenta225* El modelo no está disponible para su cuenta

220 226 

221Cuando una nueva sesión comenzaría en el modelo de la variable, una sesión que reanuda con `claude --resume`, `--continue`, o el selector `/resume` también comienza en él. Claude Code no restaura el modelo guardado en la transcripción de esa sesión. De lo contrario, Claude Code no usa la variable cuando [reanuda una sesión](#setting-your-model).227Cuando una nueva sesión comenzaría en el modelo de la variable, una sesión que reanuda con `claude --resume`, `--continue`, o el selector `/resume` comienza en ella también. Claude Code no restaura el modelo guardado en la transcripción de esa sesión. De lo contrario, Claude Code no usa la variable cuando [reanuda una sesión](#setting-your-model).

222 228 

223<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">229<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">

224 Una nueva sesión comienza en un modelo diferente al que eligió230 Una nueva sesión comienza en un modelo diferente al que eligió


227Cuando elige un modelo con `/model` y su próxima sesión comienza en algo más, estas son las causas habituales:233Cuando elige un modelo con `/model` y su próxima sesión comienza en algo más, estas son las causas habituales:

228 234 

229* **Lo eligió para una sesión.** Presionar `s` en el selector, iniciar con `--model`, y ejecutar `/model` en modo no interactivo se aplican solo a la sesión actual y dejan su predeterminado guardado solo.235* **Lo eligió para una sesión.** Presionar `s` en el selector, iniciar con `--model`, y ejecutar `/model` en modo no interactivo se aplican solo a la sesión actual y dejan su predeterminado guardado solo.

230* **Algo con mayor prioridad establece el modelo.** Un valor de `model` en la configuración del proyecto o administrada, `ANTHROPIC_MODEL` en su shell, o un [predeterminado de organización](#organization-default-model) que su administrador estableció para anular las elecciones del usuario se aplica nuevamente en cada lanzamiento. Su elección de `/model` aún se guarda; está superada. Cuando la configuración del proyecto o administrada establece el modelo, el encabezado de inicio nombra el archivo.236* **Algo con mayor prioridad establece el modelo.** Un valor `model` en configuración de proyecto o administrada, `ANTHROPIC_MODEL` en su shell, o un [predeterminado de organización](#organization-default-model) que su administrador estableció para anular las elecciones del usuario se aplica nuevamente en cada lanzamiento. Su elección `/model` aún se guarda; está superada. Cuando la configuración de proyecto o administrada establece el modelo, el encabezado de inicio nombra el archivo.

231* **Claude Code no pudo guardar su elección.** `/model` escribe `model` en `~/.claude/settings.json`. Si no puede escribir en ese archivo, por ejemplo porque otra herramienta lo genera o lo vincula a una copia de solo lectura, el modelo que eligió dura para la sesión y el próximo lanzamiento lee el valor anterior. Establezca `model` en la herramienta que genera el archivo, o haga que el archivo sea escribible. Consulte [A change you made in Claude Code is lost in new sessions](/docs/es/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).237* **Claude Code no pudo guardar su elección.** `/model` escribe `model` en `~/.claude/settings.json`. Si no puede escribir en ese archivo, por ejemplo porque otra herramienta lo genera o lo vincula a una copia de solo lectura, el modelo que eligió dura para la sesión y el próximo lanzamiento lee el valor anterior. Establezca `model` en la herramienta que genera el archivo, o haga que el archivo sea escribible. Consulte [Un cambio que realizó en Claude Code se pierde en nuevas sesiones](/docs/es/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

232* **Reanudó una sesión.** Una sesión que reanuda con `claude --resume` o `--continue` generalmente [mantiene el modelo que estaba usando](#setting-your-model) en lugar de su predeterminado actual.238* **Reanudó una sesión.** Una sesión que reanuda con `claude --resume` o `--continue` generalmente [mantiene el modelo que estaba usando](#setting-your-model) en lugar de su predeterminado actual.

233 239 

234<h2 id="restrict-model-selection">240<h2 id="restrict-model-selection">

235 Restringir la selección de modelos241 Restringir la selección de modelos

236</h2>242</h2>

237 243 

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

239 245 

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

241 247 


305 Comportamiento del modelo predeterminado311 Comportamiento del modelo predeterminado

306</h3>312</h3>

307 313 

308Por sí solo, `availableModels` deja la opción Predeterminado en el [predeterminado de tiempo de ejecución](#default-model-setting) del sistema para la cuenta hasta que también establezca [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model). Si ese predeterminado es un modelo que tiene la intención de restringir, establezca también `enforceAvailableModels`.314Con la coincidencia de prefijo predeterminada, `availableModels` por sí solo deja la opción Predeterminado en el [predeterminado de tiempo de ejecución](#default-model-setting) del sistema para la cuenta hasta que también establezca [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model). Si ese predeterminado es un modelo que tiene la intención de restringir, establezca también `enforceAvailableModels` o [bloquee ese modelo](#block-specific-models-or-versions).

309 315 

310Una matriz `availableModels` vacía nunca activa la aplicación del modelo predeterminado: con `availableModels: []`, las selecciones de modelos nombrados se bloquean pero el modelo predeterminado para el tipo de cuenta sigue siendo utilizable independientemente de `enforceAvailableModels`.316Con `availableModels: []`, las selecciones de modelos nombrados se bloquean y `enforceAvailableModels` no tiene efecto.

311 317 

312<h3 id="enforce-the-allowlist-for-the-default-model">318<h3 id="enforce-the-allowlist-for-the-default-model">

313 Aplicar la lista de permitidos para el modelo predeterminado319 Aplicar la lista de permitidos para el modelo predeterminado


322}328}

323```329```

324 330 

325La opción Predeterminado se resuelve al predeterminado del tipo de cuenta, o al [modelo predeterminado de organización](#organization-default-model) cuando un administrador ha establecido uno. Cuando ese modelo no está en la lista de permitidos, la opción Predeterminado se resuelve en su lugar a la primera entrada `availableModels` que nombra un modelo permitido y disponible, y la fila Predeterminado del selector `/model` muestra ese modelo. Esto se aplica en todas partes donde se alcanza el predeterminado: inicio de sesión, seleccionar Predeterminado en `/model`, la palabra clave `"default"` en [cadenas de modelo de respaldo](#fallback-model-chains), y el respaldo utilizado cuando se descarta una selección excluida.331Para un miembro sin modelo [registrado en su cuenta](#setting-your-model), la opción Predeterminado se resuelve al predeterminado del tipo de cuenta, o al [modelo predeterminado de organización](#organization-default-model) cuando un administrador ha establecido uno. Cuando ese modelo no está en la lista de permitidos, la opción Predeterminado se resuelve en su lugar a la primera entrada `availableModels` que nombra un modelo permitido y disponible, y la fila Predeterminado del selector `/model` muestra ese modelo. Esto se aplica en todas partes donde se alcanza el predeterminado: inicio de sesión, seleccionar Predeterminado en `/model`, la palabra clave `"default"` en [cadenas de modelo de respaldo](#fallback-model-chains), y el respaldo utilizado cuando se descarta una selección excluida. Un modelo registrado en la cuenta de un miembro se verifica contra `availableModels` también; [Establecer su modelo](#setting-your-model) describe cómo la opción Predeterminado lo trata.

326 332 

327`enforceAvailableModels` remapea la opción Predeterminado solo cuando `availableModels` no está vacío. Con `availableModels: []`, el modelo predeterminado para el tipo de cuenta sigue siendo utilizable, por lo que la configuración no puede bloquear a los usuarios de cada modelo. Cuando `availableModels` no está vacío pero ninguna entrada se resuelve a un modelo permitido y disponible, la aplicación se omite y Predeterminado se resuelve al predeterminado del tipo de cuenta, con una advertencia visible solo bajo `--debug`. Mantenga al menos una entrada garantizada disponible en la lista para evitar esto.333`enforceAvailableModels` remapea la opción Predeterminado solo cuando `availableModels` no está vacío. Cuando `availableModels` no está vacío pero ninguna entrada se resuelve a un modelo permitido y disponible, la aplicación se omite con una advertencia visible solo bajo `--debug`. Mantenga al menos una entrada garantizada disponible en la lista para evitar esto.

328 334 

329Implemente ambas claves juntas en la fuente administrada de mayor rango que entregue. De forma predeterminada, Claude Code lee solo esa fuente, por lo que un par colocado en un archivo de configuración administrada se ignora cuando la consola de administración entrega cualquier configuración; bajo la fusión de opción de participación en [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources), Claude Code aún ignora un mapa `modelOverrides` de una fuente clasificada por debajo de la que establece `availableModels`.335Implemente ambas claves juntas en la fuente administrada de mayor rango que entregue. De forma predeterminada, Claude Code lee solo esa fuente, por lo que un par colocado en un archivo de configuración administrada se ignora cuando la consola de administración entrega cualquier configuración; bajo la fusión de opción de participación en [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources), Claude Code aún ignora un mapa `modelOverrides` de una fuente clasificada por debajo de la que establece `availableModels`.

330 336 


332 Controlar el modelo en el que se ejecutan los usuarios338 Controlar el modelo en el que se ejecutan los usuarios

333</h3>339</h3>

334 340 

335La configuración `model` es una selección inicial, no una aplicación. Establece qué modelo está activo cuando comienza una sesión, pero los usuarios aún pueden abrir `/model` y seleccionar Predeterminado, que se resuelve al [predeterminado de tiempo de ejecución](#default-model-setting) del sistema independientemente de lo que se establezca `model`, a menos que [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) lo redirija.341La configuración `model` es una selección inicial, no una aplicación. Establece qué modelo está activo cuando comienza una sesión, pero los usuarios aún pueden abrir `/model` y seleccionar Predeterminado, que se resuelve al [predeterminado de tiempo de ejecución](#default-model-setting) del sistema independientemente de lo que se establezca `model`, a menos que [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) o las [claves que bloquean versiones específicas](#block-specific-models-or-versions) se apliquen a él.

336 342 

337Para controlar completamente la experiencia del modelo, combine estas configuraciones:343Para controlar completamente la experiencia del modelo, combine estas configuraciones:

338 344 

339* **`availableModels`**: restringe qué modelos nombrados pueden cambiar los usuarios345* **`availableModels`**: restringe qué modelos nombrados pueden cambiar los usuarios

340* **`enforceAvailableModels`**: extiende la lista de permitidos `availableModels` a la opción Predeterminado, por lo que Predeterminado no puede resolverse a un modelo fuera de la lista346* **`enforceAvailableModels`**: extiende la lista de permitidos `availableModels` a la opción Predeterminado, por lo que Predeterminado no puede resolverse a un modelo fuera de la lista

347* **`deniedModels`** y **`availableModelsMatch`**: [bloquean versiones específicas](#block-specific-models-or-versions) que una entrada `availableModels` permitiría de otra manera

341* **`model`**: establece la selección de modelo inicial cuando comienza una sesión348* **`model`**: establece la selección de modelo inicial cuando comienza una sesión

342* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: controlan a qué se resuelven los alias `sonnet`, `opus`, `haiku`, y `fable`, y qué versión usa el [predeterminado del tipo de cuenta](#default-model-setting)349* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: controlan a qué se resuelven los alias `sonnet`, `opus`, `haiku`, y `fable`, y qué versión usa el [predeterminado del tipo de cuenta](#default-model-setting)

343 350 


370 377 

371Cuando el [punto final de Amazon Bedrock Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) está habilitado, las entradas en `availableModels` que comienzan con `anthropic.` se agregan al selector `/model` como opciones personalizadas y se enrutan al punto final de Mantle. Esta es una excepción a la coincidencia de alias descrita en [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments). La configuración aún restringe el selector a entradas enumeradas, y un ID de Mantle incrusta un nombre de familia, por lo que cuenta como una entrada específica y deshabilita el comodín de esa familia: junto con cualquier ID de Mantle, enumere los prefijos de versión o IDs completos que desea mantener seleccionables. Consulte [Comportamiento de fusión](#merge-behavior).378Cuando el [punto final de Amazon Bedrock Mantle](/docs/es/amazon-bedrock#use-the-mantle-endpoint) está habilitado, las entradas en `availableModels` que comienzan con `anthropic.` se agregan al selector `/model` como opciones personalizadas y se enrutan al punto final de Mantle. Esta es una excepción a la coincidencia de alias descrita en [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments). La configuración aún restringe el selector a entradas enumeradas, y un ID de Mantle incrusta un nombre de familia, por lo que cuenta como una entrada específica y deshabilita el comodín de esa familia: junto con cualquier ID de Mantle, enumere los prefijos de versión o IDs completos que desea mantener seleccionables. Consulte [Comportamiento de fusión](#merge-behavior).

372 379 

380<h3 id="block-specific-models-or-versions">

381 Bloquear modelos o versiones específicas

382</h3>

383 

384Una entrada `availableModels` como `claude-opus-5` también permite versiones posteriores que la extienden, como Opus 5.5, tan pronto como Claude Code las admita. Dos configuraciones administradas le permiten retener una versión, y ambas requieren Claude Code v2.1.283 o posterior:

385 

386* [`deniedModels`](/docs/es/settings-reference#deniedmodels): enumere los modelos a bloquear. Un modelo enumerado se bloquea incluso cuando `availableModels` lo permite, y la clave también funciona sin ninguna lista de permitidos en absoluto. Una versión que ninguna entrada bloquea permanece permitida

387* [`availableModelsMatch`](/docs/es/settings-reference#availablemodelsmatch): establézcalo en `"exact"` para que cada ID de modelo en `availableModels` permita solo la versión que nombra. Una versión más nueva de un ID de modelo enumerado entonces permanece bloqueada hasta que la agregue a la lista

388 

389Las versiones anteriores ignoran ambas claves, por lo que también establezca [`requiredMinimumVersion`](/docs/es/settings-reference#requiredminimumversion) para evitar que esas versiones se inicien.

390 

391Este ejemplo permite modelos Opus y Sonnet y bloquea Opus 5.5 en cada ortografía, incluidos IDs con fecha y específicos del proveedor:

392 

393```json theme={null}

394{

395 "availableModels": ["opus", "sonnet"],

396 "deniedModels": ["claude-opus-5-5"]

397}

398```

399 

400Un modelo bloqueado, ya sea que `deniedModels` lo nombre o una lista `"exact"` lo omita, se trata como una selección bloqueada en todas partes [donde se aplica la lista de permitidos](#restrict-model-selection). Se oculta del selector `/model`, y `/model <name>` lo rechaza. Si nombra un ID de modelo bloqueado con `--model`, `ANTHROPIC_MODEL`, o la configuración `model`, Claude Code lo descarta al inicio y resuelve la opción Predeterminado en su lugar. Si un [hook](/docs/es/hooks) o solicitud de fondo nombra un modelo que `deniedModels` bloquea, como el campo `model` de un hook de agente, esa solicitud se ejecuta en el modelo de la sesión en su lugar.

401 

402La opción Predeterminado sigue ambas claves también, ya sea que establezca [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) o no. Si lo establece con un `availableModels` no vacío, un predeterminado bloqueado cuenta como un modelo fuera de la lista de permitidos. De lo contrario, una opción Predeterminado que se resolvería a un modelo bloqueado desciende en este orden:

403 

4041. La versión más nueva permitida de la misma familia

4052. El modelo más nuevo permitido de cada familia de menor costo a su vez: Sonnet, luego Haiku

4063. La primera entrada `availableModels` que nombra un modelo permitido

407 

408Si ninguno de esos está permitido, una sesión que comienza en la opción Predeterminado [se niega a iniciar](/docs/es/errors#managed-settings-block-the-default-model) con un error que nombra la clave a corregir. Una lista `"exact"` afecta la opción Predeterminado solo cuando la lista `availableModels` administrada nombra al menos un modelo o familia.

409 

410Claude Code lee ambas claves solo de la configuración administrada. Si establece cualquiera de ellas en la configuración de usuario, proyecto o local o con `--settings`, Claude Code la ignora con una advertencia.

411 

373<h3 id="organization-model-restrictions">412<h3 id="organization-model-restrictions">

374 Restricciones de modelo de organización413 Restricciones de modelo de organización

375</h3>414</h3>


391* Los modelos de Haiku siempre están disponibles y no se pueden deshabilitar, por lo que cada miembro mantiene al menos un modelo utilizable.430* Los modelos de Haiku siempre están disponibles y no se pueden deshabilitar, por lo que cada miembro mantiene al menos un modelo utilizable.

392* Un cambio de acceso entra en vigor en nuevas solicitudes dentro de aproximadamente un minuto; el selector `/model` lo refleja la próxima vez que comienza una sesión.431* Un cambio de acceso entra en vigor en nuevas solicitudes dentro de aproximadamente un minuto; el selector `/model` lo refleja la próxima vez que comienza una sesión.

393 432 

394Ambas restricciones se aplican juntas: un modelo es seleccionable solo cuando está permitido por `availableModels` y no está restringido por la organización. Las restricciones de organización llegan a sesiones en la API de Anthropic y implementaciones de [puerta de enlace LLM](/docs/es/llm-gateway) solo; en cualquier otro proveedor, use `availableModels` en su lugar.433Ambas restricciones se aplican juntas: un modelo es seleccionable solo cuando está permitido por `availableModels` y no está restringido por la organización. Las restricciones de organización llegan a sesiones en la API de Anthropic e implementaciones de [puerta de enlace LLM](/docs/es/llm-gateway) solo; en cualquier otro proveedor, use `availableModels` en su lugar.

395 434 

396<h2 id="organization-default-model">435<h2 id="organization-default-model">

397 Modelo predeterminado de la organización436 Modelo predeterminado de la organización


417 456 

418El modelo predeterminado de la organización pasa a través de estas comprobaciones de restricción antes de ser adoptado:457El modelo predeterminado de la organización pasa a través de estas comprobaciones de restricción antes de ser adoptado:

419 458 

420* [`availableModels`](#restrict-model-selection) por sí solo no se aplica al modelo predeterminado de la organización, por lo que un modelo predeterminado de la organización fuera de la lista de permitidos sigue aplicándose. Cuando [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) también está establecido, un modelo predeterminado de la organización fuera de la lista de permitidos se remapea a la primera entrada de la lista de permitidos, como cualquier otro Predeterminado459* Con la coincidencia de prefijo predeterminado, [`availableModels`](#restrict-model-selection) por sí solo no se aplica al modelo predeterminado de la organización, por lo que un modelo predeterminado de la organización fuera de la lista de permitidos sigue aplicándose. Cuando [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) también está establecido, un modelo predeterminado de la organización fuera de la lista de permitidos se remapea a la primera entrada de la lista de permitidos también

421* un modelo predeterminado de la organización que [restricciones de modelo de la organización](#organization-model-restrictions) deniegan para su cuenta se reemplaza por el modelo más reciente permitido en su familia, o una familia de menor costo cuando cada versión de ella está restringida460* un modelo predeterminado de la organización que [restricciones de modelo de la organización](#organization-model-restrictions) deniegan para su cuenta se reemplaza por el modelo más reciente permitido en su familia, o una familia de menor costo cuando cada versión de ella está restringida

461* para un modelo predeterminado de la organización que `deniedModels` o una lista `"exact"` bloquea, consulte [Bloquear modelos o versiones específicas](#block-specific-models-or-versions)

422* un modelo predeterminado de la organización que no está disponible para su cuenta en absoluto se omite, y la opción Predeterminado se resuelve como lo haría [sin un modelo predeterminado de la organización](#default-model-setting)462* un modelo predeterminado de la organización que no está disponible para su cuenta en absoluto se omite, y la opción Predeterminado se resuelve como lo haría [sin un modelo predeterminado de la organización](#default-model-setting)

423 463 

424A partir de v2.1.199, cuando el modelo predeterminado de la organización es una familia de modelos diferente del predeterminado habitual del tipo de cuenta, el selector `/model` mantiene una fila separada para esa familia habitual, por lo que aún puede cambiar a ella para una sesión. En v2.1.196 a v2.1.198 esa fila falta en el selector.464A partir de v2.1.199, cuando el modelo predeterminado de la organización es una familia de modelos diferente del predeterminado habitual del tipo de cuenta, el selector `/model` mantiene una fila separada para esa familia habitual, por lo que aún puede cambiar a ella para una sesión. En v2.1.196 a v2.1.198 esa fila falta en el selector.


445 485 

446El comportamiento de `default` depende de tu tipo de cuenta:486El comportamiento de `default` depende de tu tipo de cuenta:

447 487 

448* **Pro, Max, Team, Enterprise y Anthropic API**: por defecto Opus 5.5488* **Pro, Max, Team, Enterprise y API de Anthropic**: por defecto Opus 5.5

449* **Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud**: por defecto Opus 5.5489* **Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud**: por defecto Opus 5.5

450* **Microsoft Foundry**: por defecto Sonnet 4.5490* **Microsoft Foundry**: por defecto Sonnet 4.5

451 491 

452Antes de v2.1.280, `default` se resolvía a Sonnet 5 en Pro y Team Standard, y a Opus 5 en Max, Team Premium, Enterprise, Anthropic API, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.219. Antes de v2.1.219, `default` se resolvía a Opus 4.8 en Anthropic API, Max, Team Premium y Enterprise de pago por uso desde v2.1.154, y en Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `default` se resolvía a Opus 4.7 en Claude Platform en AWS y a Sonnet 4.5 en Amazon Bedrock y Agent Platform de Google Cloud.492Antes de v2.1.280, `default` se resolvía a Sonnet 5 en Pro y Team Standard, y a Opus 5 en Max, Team Premium, Enterprise, la API de Anthropic, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.219. Antes de v2.1.219, `default` se resolvía a Opus 4.8 en la API de Anthropic, Max, Team Premium y Enterprise de pago por uso desde v2.1.154, y en Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `default` se resolvía a Opus 4.7 en Claude Platform en AWS y a Sonnet 4.5 en Amazon Bedrock y Agent Platform de Google Cloud.

453 493 

454Cuando un administrador ha establecido un [modelo predeterminado de la organización](#organization-default-model), `default` se resuelve a ese modelo en lugar del predeterminado del tipo de cuenta anterior. Requiere Claude Code v2.1.196 o posterior. `default` también puede resolverse al modelo que estableces con [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), bajo las condiciones enumeradas en su sección.494Cuando un administrador ha establecido un [modelo predeterminado de la organización](#organization-default-model), `default` se resuelve a ese modelo en lugar del predeterminado del tipo de cuenta anterior. Requiere Claude Code v2.1.196 o posterior. `default` también puede resolverse al modelo que estableces con [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), bajo las condiciones enumeradas en su sección, o al modelo [registrado en tu cuenta](#setting-your-model).

455 495 

456Cuando la configuración administrada [aplica la lista de permitidos para el modelo Default](#enforce-the-allowlist-for-the-default-model) y el predeterminado del tipo de cuenta no está en `availableModels`, `default` se resuelve al Default aplicado en lugar del predeterminado del tipo de cuenta anterior. Cuando ambos se aplican, el modelo predeterminado de la organización reemplaza primero el predeterminado del tipo de cuenta y luego se aplica la aplicación: un modelo predeterminado de la organización en la lista de permitidos se mantiene, mientras que uno fuera de la lista se resuelve al Default aplicado.496Cuando nada se registra en tu cuenta, la configuración administrada [aplica la lista de permitidos para el modelo Default](#enforce-the-allowlist-for-the-default-model), y el predeterminado del tipo de cuenta no está en `availableModels`, `default` se resuelve al Default aplicado en lugar del predeterminado del tipo de cuenta anterior. Cuando ambos se aplican, el modelo predeterminado de la organización reemplaza primero el predeterminado del tipo de cuenta y luego se aplica la aplicación: un modelo predeterminado de la organización en la lista de permitidos se mantiene, mientras que uno fuera de la lista se resuelve al Default aplicado.

457 497 

458Los modelos Fable no son el predeterminado del tipo de cuenta en ningún plan ni proveedor. Elegir uno con `/model` lo guarda como el modelo seleccionado en tu configuración de usuario, por lo que las sesiones posteriores comienzan en él. Para el cambio único que Claude Code realiza en una selección de Fable 5 guardada en v2.1.257, consulta [Trabajar con Fable](#work-with-fable).498Los modelos Fable no son el predeterminado del tipo de cuenta en ningún plan ni proveedor. Elegir uno con `/model` lo guarda como el modelo seleccionado en tu configuración de usuario, por lo que las sesiones posteriores comienzan en él. Para el cambio único que Claude Code realiza en una selección de Fable 5 guardada en v2.1.257, consulta [Trabajar con Fable](#work-with-fable).

459 499 


463 503 

464El alias del modelo `opusplan` proporciona un enfoque híbrido automatizado:504El alias del modelo `opusplan` proporciona un enfoque híbrido automatizado:

465 505 

466* **En plan mode**: utiliza `opus` para razonamiento complejo y decisiones de arquitectura506* **En Plan Mode**: utiliza `opus` para razonamiento complejo y decisiones de arquitectura

467* **En execution mode**: cambia automáticamente a `sonnet` para generación de código e implementación507* **En execution mode**: cambia automáticamente a `sonnet` para generación de código e implementación

468 508 

469Esto combina el razonamiento de Opus para la planificación con la eficiencia de Sonnet para la ejecución.509Esto combina el razonamiento de Opus para la planificación con la eficiencia de Sonnet para la ejecución.

470 510 

471La fase Opus del plan mode utiliza la misma ventana de contexto que la configuración del modelo `opus`, y la fase de ejecución utiliza la misma ventana que `sonnet`. Cuando `opus` y `sonnet` se resuelven a modelos que se ejecutan con la [ventana de contexto de 1M](#extended-context) por defecto, como lo hacen los modelos actuales en Anthropic API, ambas fases se ejecutan con ella. Para solicitar contexto de 1M para ambas fases donde no lo hacen, [establece el modelo](#setting-your-model) a `opusplan[1m]`, por ejemplo con `/model opusplan[1m]`. Establecerlo con `/model` requiere Claude Code v2.1.265 o posterior; en versiones anteriores, utiliza la bandera `--model` o la configuración `model` en su lugar.511La fase Opus del Plan Mode utiliza la misma ventana de contexto que la configuración del modelo `opus`, y la fase de ejecución utiliza la misma ventana que `sonnet`. Cuando `opus` y `sonnet` se resuelven a modelos que se ejecutan con la [ventana de contexto de 1M](#extended-context) por defecto, como lo hacen los modelos actuales en la API de Anthropic, ambas fases se ejecutan con ella. Para solicitar contexto de 1M para ambas fases donde no lo hacen, [establece el modelo](#setting-your-model) a `opusplan[1m]`, por ejemplo con `/model opusplan[1m]`. Establecerlo con `/model` requiere Claude Code v2.1.265 o posterior; en versiones anteriores, utiliza la bandera `--model` o la configuración `model` en su lugar.

472 512 

473Cuando [`availableModels`](#restrict-model-selection) excluye el Opus más nuevo pero permite una versión anterior, por ejemplo `["sonnet", "claude-opus-4-6"]`, `opusplan` utiliza el Opus más nuevo permitido para la planificación y se mantiene solo en Sonnet cuando se excluye cada Opus. Una sesión de Haiku que normalmente se actualizaría a Sonnet en plan mode utiliza de manera similar el Sonnet más nuevo permitido, y se mantiene solo en Haiku cuando se excluye cada Sonnet. Antes de v2.1.205, el plan mode se mantenía en el modelo de la sesión siempre que se excluyera la versión más nueva de la familia de actualización, incluso cuando la lista de permitidos permitía una anterior.513Cuando [`availableModels`](#restrict-model-selection) excluye el Opus más nuevo pero permite una versión anterior, por ejemplo `["sonnet", "claude-opus-4-6"]`, `opusplan` utiliza el Opus más nuevo permitido para la planificación y se mantiene solo en Sonnet cuando se excluye cada Opus. Una sesión de Haiku que normalmente se actualizaría a Sonnet en Plan Mode utiliza asimismo el Sonnet más nuevo permitido, y se mantiene solo en Haiku cuando se excluye cada Sonnet. Antes de v2.1.205, el Plan Mode se mantenía en el modelo de la sesión siempre que se excluyera la versión más nueva de la familia de actualización, incluso cuando la lista de permitidos permitía una anterior.

474 514 

475La sustitución de una versión anterior permitida se aplica en Anthropic API y [Claude Platform en AWS](/docs/es/claude-platform-on-aws). En Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry y Mantle, cuyas implementaciones utilizan ID de modelo específicos del proveedor, el plan mode se mantiene en el modelo de la sesión siempre que se excluya el modelo de actualización.515La sustitución de una versión anterior permitida se aplica en la API de Anthropic y [Claude Platform en AWS](/docs/es/claude-platform-on-aws). En Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry y Mantle, cuyos despliegues utilizan ID de modelo específicos del proveedor, el Plan Mode se mantiene en el modelo de la sesión siempre que se excluya el modelo de actualización.

476 516 

477Para un enfoque híbrido donde Claude decide a mitad de la tarea cuándo consultar un segundo modelo en lugar de cambiar en el límite del plan, consulta la [herramienta advisor](/docs/es/advisor).517Para un enfoque híbrido donde Claude decide a mitad de la tarea cuándo consultar un segundo modelo en lugar de cambiar en el límite del plan, consulta la [herramienta advisor](/docs/es/advisor).

478 518 

479<h3 id="fallback-model-chains">519<h3 id="fallback-model-chains">

480 Cadenas de modelos de respaldo520 Cadenas de modelos de reserva

481</h3>521</h3>

482 522 

483Cuando el modelo principal está sobrecargado, no disponible o devuelve otro error de servidor no reintentable, Claude Code puede cambiar a un modelo de respaldo en lugar de fallar la solicitud. Los errores de autenticación, facturación, límite de velocidad, tamaño de solicitud y transporte, y una [denegación por la verificación de política de tu organización](/docs/es/errors#automatic-retries), nunca desencadenan un cambio; esos siguen su manejo normal de reintentos y errores.523Cuando el modelo principal está sobrecargado, no disponible o devuelve otro error de servidor no reintentable, Claude Code puede cambiar a un modelo de reserva en lugar de fallar la solicitud. Los errores de autenticación, facturación, límite de velocidad, tamaño de solicitud y transporte, y una [denegación por la verificación de política de tu organización](/docs/es/errors#automatic-retries), nunca desencadenan un cambio; esos siguen su manejo normal de reintentos y errores.

484 524 

485Configura uno o más modelos de respaldo y Claude Code los intenta en orden, mostrando un aviso cuando cambia. El cambio dura solo el turno actual, por lo que tu siguiente mensaje intenta el modelo principal primero nuevamente. Claude Code limita las cadenas a tres modelos después de la eliminación de duplicados e ignora entradas adicionales.525Configura uno o más modelos de reserva y Claude Code los intenta en orden, mostrando un aviso cuando cambia. El cambio dura solo el turno actual, por lo que tu siguiente mensaje intenta el modelo principal primero de nuevo. Claude Code limita las cadenas a tres modelos después de la eliminación de duplicados e ignora entradas adicionales.

486 526 

487Establece una cadena para una sesión con la bandera `--fallback-model`, que acepta una lista separada por comas:527Establece una cadena para una sesión con la bandera `--fallback-model`, que acepta una lista separada por comas:

488 528 


490claude --fallback-model sonnet,haiku530claude --fallback-model sonnet,haiku

491```531```

492 532 

493Para persistir una cadena entre sesiones, establece `fallbackModel` en [settings](/docs/es/settings) como un array:533Para persistir una cadena entre sesiones, establece `fallbackModel` en [configuración](/docs/es/settings) como un array:

494 534 

495```json theme={null}535```json theme={null}

496{536{


500 540 

501La bandera `--fallback-model` tiene precedencia sobre la configuración `fallbackModel`. Cada entrada acepta un nombre de modelo o alias, y `"default"` se expande al modelo predeterminado.541La bandera `--fallback-model` tiene precedencia sobre la configuración `fallbackModel`. Cada entrada acepta un nombre de modelo o alias, y `"default"` se expande al modelo predeterminado.

502 542 

503Claude Code no confirma la cadena al inicio y `/status` no la muestra. El aviso mostrado cuando ocurre un cambio es el primer signo visible de que se ha configurado un respaldo.543Claude Code no confirma la cadena al inicio y `/status` no la muestra. El aviso mostrado cuando ocurre un cambio es el primer signo visible de que se ha configurado una reserva.

504 544 

505Cuando una solicitud falla, Claude Code intenta cada entrada en orden hasta que una la acepta. Una entrada que tampoco se puede alcanzar, como un modelo retirado fijado en la configuración, falla a la siguiente de la misma manera. Claude Code elimina dos tipos de entrada antes de ese recorrido:545Cuando una solicitud falla, Claude Code intenta cada entrada en orden hasta que una la acepta. Una entrada que tampoco se puede alcanzar, como un modelo retirado fijado en la configuración, falla a la siguiente de la misma manera. Claude Code elimina dos tipos de entrada antes de ese recorrido:

506 546 

507* **Fuera de la lista de permitidos**: Claude Code descarta cualquier entrada no permitida por [`availableModels`](#restrict-model-selection) cuando lee la cadena.547* **Fuera de la lista de permitidos**: Claude Code descarta cualquier entrada no permitida por [`availableModels`](#restrict-model-selection) cuando lee la cadena.

508* **Ventana de contexto más pequeña durante la compactación**: la cadena también cubre [compactación](/docs/es/context-window#what-survives-compaction), pero Claude Code no retrocederá a un modelo con una ventana de contexto más pequeña que la del principal, ya que resumir allí cortaría parte de la conversación primero. Si cada respaldo es más pequeño, la compactación muestra el error original y puedes reintentar.548* **Ventana de contexto más pequeña durante la compactación**: la cadena también cubre [compactación](/docs/es/context-window#what-survives-compaction), pero Claude Code no volverá a un modelo con una ventana de contexto más pequeña que la del principal, ya que resumir allí cortaría parte de la conversación primero. Si cada reserva es más pequeña, la compactación muestra el error original y puedes reintentar.

509 549 

510Claude Code también aplica la cadena a [subagentes](/docs/es/sub-agents). Cuando la solicitud de un subagente falla, Claude Code intenta tus modelos de respaldo configurados en orden, y el subagente continúa en el modelo que acepta la solicitud. El modelo de tu sesión no cambia. Antes de v2.1.247, un fallo que la cadena cubría terminaba el subagente en su lugar.550Claude Code también aplica la cadena a [subagentes](/docs/es/sub-agents). Cuando la solicitud de un subagente falla, Claude Code intenta tus modelos de reserva configurados en orden, y el subagente continúa en el modelo que acepta la solicitud. El modelo de tu sesión no cambia. Antes de v2.1.247, un fallo que la cadena cubría terminaba el subagente en su lugar.

511 551 

512<h3 id="automatic-model-fallback">552<h3 id="automatic-model-fallback">

513 Respaldo automático de modelo553 Reserva automática de modelo

514</h3>554</h3>

515 555 

516Esta sección cubre el respaldo basado en contenido de modelos Fable, Opus 5.5 y Opus 5. Para respaldo basado en disponibilidad cuando un modelo está sobrecargado o no disponible, consulta [Cadenas de modelos de respaldo](#fallback-model-chains).556Esta sección cubre la reserva basada en contenido de modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5. Para la reserva basada en disponibilidad cuando un modelo está sobrecargado o no disponible, consulta [Cadenas de modelos de reserva](#fallback-model-chains).

517 557 

518Los modelos Fable, Opus 5.5 y Opus 5 se ejecutan con clasificadores de seguridad, que con mayor frecuencia marcan contenido de ciberseguridad y biología. Cuando un clasificador marca una solicitud y la categoría marcada tiene un modelo de respaldo, Claude Code vuelve a ejecutar la solicitud en ese modelo y muestra un aviso en la transcripción. Para esas dos categorías, el modelo de respaldo depende de qué modelo rechazó:558Los modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 se ejecutan con clasificadores de seguridad, que con mayor frecuencia marcan contenido de ciberseguridad y biología. Cuando un clasificador marca una solicitud y la categoría marcada tiene un modelo de reserva, Claude Code reintenta la solicitud en ese modelo y muestra un aviso en la transcripción. Para esas dos categorías, el modelo de reserva depende de qué modelo rechazó:

519 559 

520* **Fable 5.1, Fable 5 y Opus 5.5**: las solicitudes marcadas por biología se vuelven a ejecutar en Opus 5, y las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8.560* **Fable 5.1, Fable 5 y Opus 5.5**: las solicitudes marcadas por biología se reintentarán en Opus 5, y las solicitudes marcadas por ciberseguridad se reintentarán en Opus 4.8.

521* **Opus 5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutan en Opus 4.8. Las solicitudes marcadas por biología terminan con un rechazo en su lugar, porque Opus 5 ejecuta sus propios clasificadores de biología sin modelo de respaldo.561* **Sonnet 5.5**: las solicitudes marcadas por ciberseguridad se reintentarán en Sonnet 5. Las solicitudes marcadas por biología terminan con un rechazo en su lugar, porque Sonnet 5.5 no tiene modelo de reserva de biología.

562* **Opus 5**: las solicitudes marcadas por ciberseguridad se reintentarán en Opus 4.8. Las solicitudes marcadas por biología terminan con un rechazo en su lugar, porque Opus 5 ejecuta sus propios clasificadores de biología sin modelo de reserva.

522 563 

523En Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, Claude Code resuelve estos objetivos a través de tu implementación en su lugar, y si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las categorías que tienen un respaldo se vuelven a ejecutan en el modelo fijado; consulta [Habilitar respaldo en Bedrock, Agent Platform y Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).564En Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, Claude Code resuelve estos objetivos a través de los ID de modelo de tu despliegue en su lugar. Consulta [Habilitar reserva en Bedrock, Agent Platform y Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).

524 565 

525Después de un respaldo, la sesión continúa en el modelo de respaldo. Para volver a tu modelo original, ejecuta [`/model`](#setting-your-model).566Después de una reserva, la sesión continúa en el modelo de reserva. Para volver a tu modelo original, ejecuta [`/model`](#setting-your-model).

526 567 

527El respaldo basado en categoría requiere Claude Code v2.1.219 o posterior. Antes de v2.1.219, cada solicitud de Fable 5 marcada se volvía a ejecutar en el modelo Opus predeterminado de tu proveedor, y Opus 5 no era una fuente de respaldo.568La reserva basada en categoría requiere Claude Code v2.1.219 o posterior. Antes de v2.1.219, cada solicitud de Fable 5 marcada se reintentaba en el modelo Opus predeterminado de tu proveedor, y Opus 5 no era una fuente de reserva.

528 569 

529El modelo de respaldo se verifica contra [`availableModels`](#restrict-model-selection). Cuando está bloqueado, no ocurre respaldo. El rechazo se muestra como un error normal y el modelo de la sesión no cambia.570El modelo de reserva se verifica contra [`availableModels`](#restrict-model-selection). Cuando está bloqueado, no ocurre reserva. El rechazo se muestra como un error normal y el modelo de la sesión no cambia.

530 571 

531<h4 id="check-what-triggered-fallback">572<h4 id="check-what-triggered-fallback">

532 Verificar qué desencadenó el respaldo573 Verificar qué desencadenó la reserva

533</h4>574</h4>

534 575 

535El respaldo puede desencadenarse en la primera solicitud de una sesión, antes de que envíes algo inusual, porque la primera solicitud lleva contexto del espacio de trabajo como tu contenido de CLAUDE.md y estado de git. Un repositorio que contiene material de seguridad o biología puede activar el clasificador solo en ese contexto.576La reserva puede desencadenarse en la primera solicitud de una sesión, antes de que envíes algo inusual, porque la primera solicitud lleva contexto del espacio de trabajo como tu contenido de CLAUDE.md y estado de git. Un repositorio que contiene material de seguridad o biología puede activar el clasificador solo en ese contexto.

536 577 

537Para verificar si las personalizaciones son el desencadenante, inicia una sesión con `claude --safe-mode`, que desactiva personalizaciones como CLAUDE.md, skills, servidores MCP y hooks. El estado de git y los nombres de directorios no son personalizaciones y aún se incluyen.578Para verificar si las personalizaciones son el desencadenante, inicia una sesión con `claude --safe-mode`, que desactiva personalizaciones como CLAUDE.md, skills, servidores MCP y hooks. El estado de git y los nombres de directorio no son personalizaciones y aún se incluyen.

538 579 

539<h4 id="ask-before-switching">580<h4 id="ask-before-switching">

540 Preguntar antes de cambiar581 Preguntar antes de cambiar

541</h4>582</h4>

542 583 

543Para decidir qué sucede cada vez que se marca una solicitud, en lugar de cambiar automáticamente, ejecuta `/config` y desactiva **Cambiar modelos cuando se marca un mensaje**, o establece [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) a `false` en tu archivo de configuración. Una solicitud marcada pausa la sesión con dos opciones: cambiar al modelo de respaldo, o editar el prompt e intentar nuevamente en el modelo actual.584Para decidir qué sucede cada vez que se marca una solicitud, en lugar de cambiar automáticamente, ejecuta `/config` y desactiva **Cambiar modelos cuando se marca un mensaje**, o establece [`switchModelsOnFlag`](/docs/es/settings-reference#switchmodelsonflag) a `false` en tu archivo de configuración. Una solicitud marcada pausa la sesión con dos opciones: cambiar al modelo de reserva, o editar el prompt e intentar de nuevo en el modelo actual.

544 585 

545Algunos casos se comportan de manera diferente:586Algunos casos se comportan de manera diferente:

546 587 

547* Cuando la categoría marcada no tiene modelo de respaldo, como un marcado de biología en Opus 5, Claude Code no muestra el prompt y la solicitud termina con el rechazo.588* Cuando la categoría marcada no tiene modelo de reserva, como una marca de biología en Opus 5 o Sonnet 5.5, Claude Code no muestra el prompt y la solicitud termina con el rechazo.

548* Si ambos modelos marcan la misma solicitud, puedes editar el prompt e intentar nuevamente, o iniciar una nueva sesión.589* Si ambos modelos marcan la misma solicitud, puedes editar el prompt e intentar de nuevo, o iniciar una nueva sesión.

549* En sesiones móviles de [Claude Code en la web](/docs/es/claude-code-on-the-web), no se admite edición e reintento. Cambia modelos, o continúa la sesión desde un navegador de escritorio o la aplicación de escritorio.590* En [sesiones en la nube](/docs/es/claude-code-on-the-web) en la aplicación móvil, no se admite editar e intentar de nuevo. Cambia modelos, o continúa la sesión desde un navegador de escritorio o la aplicación de escritorio.

550* En [modo no interactivo](/docs/es/cli-reference#cli-flags) e integraciones de SDK que no pueden mostrar el prompt, una solicitud marcada termina el turno con un rechazo en su lugar.591* En [modo no interactivo](/docs/es/cli-reference#cli-flags) e integraciones de SDK que no pueden mostrar el prompt, una solicitud marcada termina el turno con un rechazo en su lugar.

551* Cuando el objetivo de respaldo está bloqueado por [`availableModels`](#restrict-model-selection), Claude Code no muestra el prompt. La solicitud marcada termina con el rechazo, igual que el respaldo automático cuando el objetivo está bloqueado.592* Cuando el objetivo de reserva está bloqueado por [`availableModels`](#restrict-model-selection), Claude Code no muestra el prompt. La solicitud marcada termina con el rechazo, igual que la reserva automática cuando el objetivo está bloqueado.

552 593 

553<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">594<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">

554 Habilitar respaldo en Bedrock, Agent Platform y Foundry595 Habilitar reserva en Bedrock, Agent Platform y Foundry

555</h4>596</h4>

556 597 

557En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar ambos modelos involucrados:598En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), los ID de modelo son específicos del proveedor, por lo que la reserva automática solo funciona cuando Claude Code puede identificar cada modelo involucrado:

599 

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

601* Un objetivo de Opus debe resolverse en tu despliegue, cualquiera que sea el modelo que rechazó: establece `ANTHROPIC_DEFAULT_OPUS_MODEL`, o mantén una entrada de Opus 4.8 en la lista de modelos del proveedor. Sin uno, la reserva se mantiene desactivada para cada modelo de origen, incluido Sonnet 5.5, y las solicitudes marcadas terminan con un rechazo.

602* El modelo de reserva de la categoría marcada debe resolverse en tu despliegue. Desde un modelo Fable, Opus 5.5 u Opus 5, si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las solicitudes marcadas se reintentarán en ese modelo para cada categoría que tenga una reserva; una marca de biología en Opus 5 aún termina con un rechazo. Si no lo estableces, las solicitudes marcadas por ciberseguridad se reintentarán en la entrada de Opus 4.8, y las solicitudes marcadas por biología de un modelo Fable u Opus 5.5 en una entrada de Opus 5. Desde Sonnet 5.5, las solicitudes marcadas por ciberseguridad se reintentarán en el modelo que estableces en `ANTHROPIC_DEFAULT_SONNET_MODEL`, o en una entrada de Sonnet 5 en la lista de modelos del proveedor si no lo estableces.

558 603 

559* Claude Code debe reconocer el modelo actual como una fuente de respaldo. Fable 5.1 y Fable 5 se reconocen cuando el ID del modelo contiene `claude-fable-5`, coincide con el valor de `ANTHROPIC_DEFAULT_FABLE_MODEL`, o se asigna con [`modelOverrides`](#override-model-ids-per-version). Opus 5.5 y Opus 5 se reconocen por su ID de modelo del proveedor o una asignación de [`modelOverrides`](#override-model-ids-per-version).604Si alguno de los modelos no se puede identificar, Claude Code no cambia. La solicitud marcada termina con un mensaje de rechazo, y puedes cambiar modelos con [`/model`](#setting-your-model) e intentar de nuevo. Para hacer que ambos modelos sean identificables, establece los pines para tu modelo de origen:

560* El modelo de respaldo debe resolverse en tu implementación. Si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las solicitudes marcadas se vuelven a ejecutan en ese modelo para cada categoría que tiene un respaldo; un marcado de biología en Opus 5 aún termina con un rechazo. Si no lo estableces, las solicitudes marcadas por ciberseguridad se vuelven a ejecutan en una entrada de Opus 4.8 en la lista de modelos del proveedor, y las solicitudes marcadas por biología de un modelo Fable o Opus 5.5 en una entrada de Opus 5.

561 605 

562Si alguno de los modelos no se puede identificar, Claude Code no cambia automáticamente. La solicitud marcada termina con un mensaje de rechazo, y puedes cambiar modelos con [`/model`](#setting-your-model) e intentar nuevamente. Establecer `ANTHROPIC_DEFAULT_FABLE_MODEL` a tu ID de modelo Fable habilita el reconocimiento de Fable. Establecer `ANTHROPIC_DEFAULT_OPUS_MODEL` a un ID de modelo Opus proporciona a las categorías marcadas un objetivo de respaldo, a menos que el pin nombre un modelo fuera de la familia Opus o el modelo que rechazó; entonces Claude Code no cambia y el rechazo se mantiene.606* **Modelos Fable**: establece `ANTHROPIC_DEFAULT_FABLE_MODEL` a tu ID de modelo Fable para que Claude Code lo reconozca como una fuente de reserva.

607* **Cada modelo de origen**: establece `ANTHROPIC_DEFAULT_OPUS_MODEL` a un ID de modelo Opus para activar la reserva y dar a las categorías marcadas un objetivo. Un pin que nombre un modelo fuera de la familia Opus, o el modelo que rechazó, deja el rechazo en pie.

608* **Sonnet 5.5**: además del pin de Opus, establece `ANTHROPIC_DEFAULT_SONNET_MODEL` o mantén una entrada de Sonnet 5 en la lista de modelos del proveedor para suministrar el modelo en el que se reintenta la solicitud. Un pin de Sonnet que nombre un modelo fuera de la familia Sonnet, o Sonnet 5.5 en sí, deja el rechazo en pie.

563 609 

564<h4 id="security-research-and-biology-workloads">610<h4 id="security-research-and-biology-workloads">

565 Cargas de trabajo de investigación de seguridad y biología611 Cargas de trabajo de investigación de seguridad y biología

566</h4>612</h4>

567 613 

568Las cargas de trabajo en seguridad ofensiva o biología, incluidas pruebas de penetración, ejercicios Capture the Flag (CTF) y bases de código adyacentes a biología, desencadenan respaldo frecuentemente, a menudo en la primera solicitud. Para trabajo sustancial de biología en Fable 5.1, Fable 5 u Opus 5.5, Claude Code mueve la sesión a Opus 5 en la primera solicitud marcada, y las solicitudes posteriores marcadas por biología terminan en rechazos allí, porque Opus 5 no tiene respaldo de biología. En Opus 5, obtienes esos rechazos desde la primera solicitud marcada.614Las cargas de trabajo en seguridad ofensiva o biología, incluidas pruebas de penetración, ejercicios Capture the Flag (CTF) y bases de código adyacentes a la biología, desencadenan reserva frecuentemente, a menudo en la primera solicitud. Para trabajo sustancial de biología en Fable 5.1, Fable 5 u Opus 5.5, Claude Code mueve la sesión a Opus 5 en la primera solicitud marcada, y las solicitudes posteriores marcadas por biología terminan en rechazos allí, porque Opus 5 no tiene reserva de biología. En Opus 5 y Sonnet 5.5, obtienes esos rechazos desde la primera solicitud marcada.

569 615 

570Este es el enrutamiento esperado para estos dominios, no un marcado de cuenta. Si tu organización necesita capacidad de clase Fable para este trabajo, pregunta a tu equipo de cuenta de Anthropic sobre programas de acceso de confianza.616Este es el enrutamiento esperado para estos dominios, no una marca de cuenta. Si tu organización necesita capacidad de clase Fable para este trabajo, pregunta a tu equipo de cuenta de Anthropic sobre programas de acceso de confianza.

571 617 

572<h3 id="adjust-effort-level">618<h3 id="adjust-effort-level">

573 Ajustar el nivel de esfuerzo619 Ajustar el nivel de esfuerzo


580| Modelo | Niveles |626| Modelo | Niveles |

581| :- | :- |627| :- | :- |

582| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |628| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

583| Opus 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |629| Opus 5.5, Sonnet 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

584| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |630| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |

585 631 

586Si estableces un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableces. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Tu organización o tu propia configuración también pueden limitar los niveles que ofrece un modelo; consulta [Límites de esfuerzo de la organización](#organization-effort-limits).632Si estableces un nivel que el modelo activo no admite, Claude Code vuelve al nivel más alto admitido en o por debajo del que estableces. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Tu organización o tu propia configuración también pueden limitar los niveles que ofrece un modelo; consulta [Límites de esfuerzo de la organización](#organization-effort-limits).

587 633 

588Con la configuración [`ultracode`](/docs/es/settings-reference#ultracode) desactivada, Claude Code resuelve el nivel de esfuerzo de la sesión en este orden, tomando el primero que se aplique:634Claude Code resuelve el nivel de esfuerzo de la sesión en este orden, tomando el primero que se aplique:

589 635 

5901. Una opción explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), lanzar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene efecto más estrecho](#non-interactive-effort))6361. Una opción explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), lanzar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene efecto más estrecho](#non-interactive-effort))

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

5923. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 5.5 por defecto es `medium`, Opus 4.7 por defecto es `xhigh` y, cuando tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo6383. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 5.5 y Sonnet 5.5 por defecto son `medium`, Opus 4.7 por defecto es `xhigh`, y, cuando tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo

593 639 

594Opus 5.5 comienza en `medium` a menos que una de las fuentes anteriores establezca un nivel para él, y una `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma anterior que `/effort` escribía antes de que Claude Code guardara niveles por modelo: sigue aplicándose donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y modelos lanzados después de él comienzan en su propio predeterminado hasta que elijas un nivel para ellos con `/effort` o el selector `/model`. Una `effortLevel` de nivel superior en configuración de proyecto, local o administrada, o una pasada con `--settings`, se aplica a cada modelo.640Opus 5.5 comienza en `medium` a menos que una de las fuentes anteriores establezca un nivel para él, y un `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma anterior que `/effort` escribía antes de que Claude Code guardara niveles por modelo: sigue aplicándose donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y modelos lanzados después de él comienzan en su propio predeterminado hasta que elijas un nivel para ellos con `/effort` o el selector `/model`. Un `effortLevel` de nivel superior en configuración de proyecto, local o administrada, o uno pasado con `--settings`, se aplica a cada modelo.

595 641 

596Cuando estableces `low`, `medium`, `high` o `xhigh` en una sesión interactiva en tu máquina, eliges cuánto tiempo dura eligiendo cómo lo confirmas:642Cuando estableces `low`, `medium`, `high` o `xhigh` en una sesión interactiva en tu máquina, eliges cuánto tiempo dura eligiendo cómo lo confirmas:

597 643 


603`max` es el nivel de razonamiento más profundo. A menos que lo establezas a través de la variable de entorno `CLAUDE_CODE_EFFORT_LEVEL`, Claude Code aplica `max` solo a la sesión actual.649`max` es el nivel de razonamiento más profundo. A menos que lo establezas a través de la variable de entorno `CLAUDE_CODE_EFFORT_LEVEL`, Claude Code aplica `max` solo a la sesión actual.

604 650 

605<Note>651<Note>

606 Un nivel que eliges del control de esfuerzo en un teléfono o navegador conectado a través de [Control Remoto](/docs/es/remote-control#what-connected-devices-see) se aplica solo a esa sesión.652 Un nivel que elijas del control de esfuerzo en un teléfono o navegador conectado a través de [Remote Control](/docs/es/remote-control#what-connected-devices-see) se aplica solo a esa sesión.

607</Note>653</Note>

608 654 

609<span id="non-interactive-effort" />655<span id="non-interactive-effort" />

610 656 

611Cuando estableces un nivel con `/effort` en una ejecución de [`-p`](/docs/es/headless), Claude Code lo aplica solo a esa sesión y no lo guarda como tu predeterminado.657Cuando estableces un nivel con `/effort` en una ejecución [`-p`](/docs/es/headless), Claude Code lo aplica solo a esa sesión y no lo guarda como tu predeterminado.

612 658 

613El menú `/effort` también ofrece `ultracode`. Ultracode es una configuración de Claude Code en lugar de un nivel de esfuerzo del modelo: envía `xhigh` al modelo y además tiene Claude orquestar [flujos de trabajo dinámicos](/docs/es/workflows) para tareas sustanciales. Para dónde se puede establecer persistentemente, consulta la configuración [`ultracode`](/docs/es/settings-reference#ultracode).659El deslizador `/effort` también tiene un botón de alternancia **Ultracode**. Ultracode es una configuración de Claude Code en lugar de un nivel de esfuerzo del modelo: con él activado, Claude orquesta [flujos de trabajo dinámicos](/docs/es/workflows) para tareas sustanciales, en cualquier nivel de esfuerzo en el que se ejecute la sesión. Para dónde se puede establecer persistentemente, consulta la configuración [`ultracode`](/docs/es/settings-reference#ultracode).

660 

661Activar o desactivar ultracode con `/effort` o la configuración `ultracode` deja el nivel de esfuerzo sin cambios. La bandera `--effort ultracode` y el valor `effortLevel: "ultracode"` del Agent SDK lo activan y también establecen el nivel a `xhigh`. Elegir un nivel en el deslizador `/effort` o el selector `/model` deja ultracode como estaba.

614 662 

615Puedes activar ultracode a través de cualquiera de los siguientes:663Puedes activar ultracode a través de cualquiera de los siguientes:

616 664 

617* **`/effort`**: ejecuta `/effort ultracode`, o selecciónalo del menú665* **`/effort`**: ejecuta `/effort ultracode` para activarlo para la sesión actual o `/effort ultracode off` para desactivarlo. En el deslizador `/effort`, presiona `Tab` para cambiar el botón de alternancia **Ultracode**, luego `Enter` para aplicarlo

618* **Bandera `--effort`**: lanza con `claude --effort ultracode`, que inicia la sesión con esfuerzo `xhigh` y ultracode activado666* **Bandera `--effort`**: lanza con `claude --effort ultracode`, que inicia la sesión con esfuerzo `xhigh` y ultracode activado

619* **Configuración `ultracode`**: establece [`"ultracode": true`](/docs/es/settings-reference#ultracode) en un archivo de configuración, con `--settings`, o en una solicitud de control del Agent SDK. Una solicitud [`applyFlagSettings()`](/docs/es/agent-sdk/typescript#applyflagsettings) también acepta `effortLevel: "ultracode"`667* **Configuración `ultracode`**: establece [`"ultracode": true`](/docs/es/settings-reference#ultracode) en un archivo de configuración, con `--settings`, o en una solicitud de control del Agent SDK. Una solicitud [`applyFlagSettings()`](/docs/es/agent-sdk/typescript#applyflagsettings) también acepta `effortLevel: "ultracode"`, que lo activa y establece el nivel de esfuerzo a `xhigh`

620* **Selector `/model`**: mueve el deslizador de esfuerzo a `ultracode` con las teclas de flecha mientras eliges un modelo. Claude Code lo activa para la sesión actual, incluso cuando guardas ese modelo como tu predeterminado668 

669La forma `/effort ultracode off`, el botón de alternancia del deslizador y mantener ultracode activado en niveles de esfuerzo distintos de `xhigh` requieren Claude Code v2.1.284 o posterior. Antes de v2.1.284, activar ultracode establecía la sesión a esfuerzo `xhigh`, elegir otro nivel lo desactivaba, y un límite de esfuerzo por debajo de `xhigh` lo hacía no disponible.

621 670 

622Pasar `ultracode` a la bandera `--effort` o al valor `effortLevel` del Agent SDK requiere Claude Code v2.1.203 o posterior. Antes de v2.1.203, `--effort ultracode` imprimía `Unknown --effort value 'ultracode'` y la sesión comenzaba con el esfuerzo predeterminado.671Pasar `ultracode` a la bandera `--effort` o al valor `effortLevel` del Agent SDK requiere Claude Code v2.1.203 o posterior. Antes de v2.1.203, `--effort ultracode` imprimía `Unknown --effort value 'ultracode'` y la sesión comenzaba con el esfuerzo predeterminado.

623 672 

624La configuración `effortLevel` persistida y la variable de entorno `CLAUDE_CODE_EFFORT_LEVEL` no aceptan `ultracode`. Cuando `CLAUDE_CODE_EFFORT_LEVEL` se establece a un nivel distinto de `xhigh`, las solicitudes se ejecutan en ese nivel y la orquestación de flujo de trabajo de ultracode permanece inactiva. Seleccionar ultracode entonces muestra una advertencia de que la variable de entorno anula el esfuerzo para la sesión.673La configuración `effortLevel` persistida y la variable de entorno `CLAUDE_CODE_EFFORT_LEVEL` no aceptan `ultracode`. Si `CLAUDE_CODE_EFFORT_LEVEL` o un [límite de esfuerzo](#organization-effort-limits) establece el nivel de la sesión, ultracode permanece activado en ese nivel.

625 674 

626<span id="when-ultracode-is-available" />675<span id="when-ultracode-is-available" />

627 676 


629 678 

630* [Los flujos de trabajo están desactivados](/docs/es/workflows#turn-workflows-off)679* [Los flujos de trabajo están desactivados](/docs/es/workflows#turn-workflows-off)

631* El modelo no admite esfuerzo `xhigh`680* El modelo no admite esfuerzo `xhigh`

632* Se aplica un [límite de esfuerzo](#organization-effort-limits) por debajo de `xhigh` al modelo

633 681 

634En esos casos `--effort ultracode` inicia la sesión con ultracode desactivado, al nivel de esfuerzo más alto que el modelo y cualquier límite permiten, hasta `xhigh`.682En esos casos `--effort ultracode` inicia la sesión con ultracode desactivado, al nivel de esfuerzo más alto que el modelo y cualquier límite permitan, hasta `xhigh`.

635 683 

636<h4 id="choose-an-effort-level">684<h4 id="choose-an-effort-level">

637 Elegir un nivel de esfuerzo685 Elegir un nivel de esfuerzo


641 689 

642| Nivel | Cuándo usarlo |690| Nivel | Cuándo usarlo |

643| :- | :- |691| :- | :- |

644| `low` | Reserva para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia |692| `low` | Intercambios rápidos donde revisas cada resultado, como lluvia de ideas, un primer boceto, o un cambio pequeño como un cambio de nombre |

645| `medium` | Reduce el uso de tokens para trabajo sensible a costos que puede sacrificar algo de inteligencia. El predeterminado en Opus 5.5 |693| `medium` | El predeterminado en Opus 5.5 y Sonnet 5.5, donde se adapta al trabajo de ingeniería diario con un alcance claro, como implementar una nueva característica. En otros modelos, reduce el uso de tokens para trabajo sensible a costos que puede intercambiar algo de inteligencia |

646| `high` | Equilibra el uso de tokens e inteligencia. El predeterminado en cada modelo excepto Opus 5.5 y Opus 4.7 |694| `high` | Trabajo donde la verificación importa o es probable que haya casos límite, como corregir un error en una base de código existente. El predeterminado en cada modelo excepto Opus 5.5, Sonnet 5.5 y Opus 4.7 |

647| `xhigh` | Razonamiento más profundo con gasto de tokens más alto. El predeterminado en Opus 4.7 |695| `xhigh` | Razonamiento más profundo con mayor gasto de tokens. El predeterminado en Opus 4.7 |

648| `max` | Puede mejorar el rendimiento en tareas exigentes pero puede mostrar rendimientos decrecientes y es propenso a pensar demasiado. Prueba antes de adoptar ampliamente |696| `max` | Problemas difíciles que quieres que Claude resuelva sin ti, como encontrar vulnerabilidades de seguridad. `max` puede mostrar rendimientos decrecientes y es propenso al exceso de pensamiento, así que prueba antes de adoptarlo ampliamente |

649| `ultracode` | Una configuración de Claude Code que planifica un [flujo de trabajo dinámico](/docs/es/workflows) para cada tarea sustancial con razonamiento `xhigh` por mensaje |697| `ultracode` | Una configuración de Claude Code en lugar de un nivel: planifica un [flujo de trabajo dinámico](/docs/es/workflows) para cada tarea sustancial en cualquier nivel de esfuerzo |

698 

699En pruebas en Opus 5.5 y Fable 5.1, Claude en un nivel más alto probó más casos límite y verificó más de su trabajo antes de responder. También hizo más opciones por su cuenta. En un nivel más bajo, Claude devolvió un punto de partida más rápido, que se adapta al trabajo donde revisas cada resultado y diriges el siguiente paso. Para ver las mismas tareas ejecutadas en cada nivel, lee [Usando Claude Code: Gastando tu esfuerzo](https://claude.dev/blog/spending-your-effort/) en el blog.

650 700 

651La escala de esfuerzo se calibra por modelo, por lo que el mismo nombre de nivel no representa el mismo valor subyacente entre modelos.701La escala de esfuerzo se calibra por modelo, por lo que el mismo nombre de nivel no representa el mismo valor subyacente entre modelos.

652 702 

703Opus 5.5 [por defecto es `medium`](#adjust-effort-level), un nivel por debajo del predeterminado de Opus 5 de `high`. En las pruebas de Anthropic, Opus 5.5 en `medium` iguala o supera Opus 5 en `high` en evaluaciones de codificación y trabajo de conocimiento. En un nivel dado, Opus 5.5 tiende a pensar más por turno que Opus 5. Cuando te mueves de Opus 5 a Opus 5.5, comienza en `medium` en lugar de llevar el nivel que usaste en Opus 5. Para probar niveles contra tu propio trabajo, consulta [Calibrar esfuerzo](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#calibrate-effort) en la guía de prompting de Opus 5.5.

704 

653<h4 id="use-ultrathink-for-one-off-deep-reasoning">705<h4 id="use-ultrathink-for-one-off-deep-reasoning">

654 Usar ultrathink para razonamiento profundo único706 Usar ultrathink para razonamiento profundo único

655</h4>707</h4>

656 708 

657Incluye `ultrathink` en cualquier lugar en tu prompt para solicitar razonamiento más profundo en ese turno sin cambiar tu 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. Claude Code pasa otras frases como "think", "think hard" y "think more" como texto de prompt ordinario y no las reconoce como palabras clave.709Incluye `ultrathink` en cualquier lugar de tu prompt para solicitar razonamiento más profundo en ese turno sin cambiar tu configuración de esfuerzo de sesión. Claude Code reconoce la palabra clave y agrega una instrucción en contexto. El nivel de esfuerzo enviado a la API no cambia. Claude Code pasa otras frases como "think", "think hard" y "think more" como texto de prompt ordinario y no las reconoce como palabras clave.

658 710 

659<h4 id="set-the-effort-level">711<h4 id="set-the-effort-level">

660 Establecer el nivel de esfuerzo712 Establecer el nivel de esfuerzo


664 716 

665* **`/effort`**: ejecuta `/effort` sin argumentos para abrir un deslizador interactivo, `/effort` seguido de un nombre de nivel para establecerlo directamente, o `/effort auto` para borrar tu nivel guardado para el modelo activo. Puedes ejecutarlo mientras Claude está trabajando, y una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica el nuevo nivel a la siguiente solicitud en el turno717* **`/effort`**: ejecuta `/effort` sin argumentos para abrir un deslizador interactivo, `/effort` seguido de un nombre de nivel para establecerlo directamente, o `/effort auto` para borrar tu nivel guardado para el modelo activo. Puedes ejecutarlo mientras Claude está trabajando, y una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica el nuevo nivel a la siguiente solicitud en el turno

666* **En `/model`**: usa las teclas de flecha izquierda/derecha para ajustar el deslizador de esfuerzo cuando selecciones un modelo718* **En `/model`**: usa las teclas de flecha izquierda/derecha para ajustar el deslizador de esfuerzo cuando selecciones un modelo

667* **Bandera `--effort`**: pasa un nombre de nivel para establecerlo para una única sesión cuando lanzas Claude Code719* **Bandera `--effort`**: pasa un nombre de nivel para establecerlo para una única sesión cuando lances Claude Code

668* **Variable de entorno**: establece `CLAUDE_CODE_EFFORT_LEVEL` a un nombre de nivel o `auto`720* **Variable de entorno**: establece `CLAUDE_CODE_EFFORT_LEVEL` a un nombre de nivel o `auto`

669* **Configuración**: establece un nivel por modelo en [`modelSettings`](/docs/es/settings-reference#modelsettings), o establece [`effortLevel`](/docs/es/settings-reference#effortlevel) a `low`, `medium`, `high` o `xhigh` como el predeterminado para modelos sin uno. `max` no se acepta como un nivel en ninguna clave, y `ultracode` tiene su propia clave [`ultracode`](/docs/es/settings-reference#ultracode)721* **Configuración**: establece un nivel por modelo en [`modelSettings`](/docs/es/settings-reference#modelsettings), o establece [`effortLevel`](/docs/es/settings-reference#effortlevel) a `low`, `medium`, `high` o `xhigh` como el predeterminado para modelos sin uno. `max` no se acepta como un nivel en ninguna clave, y `ultracode` tiene su propia clave [`ultracode`](/docs/es/settings-reference#ultracode)

670* **Desde un dispositivo conectado**: en una sesión de [Control Remoto](/docs/es/remote-control#what-connected-devices-see), elige un nivel del control de esfuerzo en tu teléfono o en tu navegador. El nivel se aplica solo a la sesión actual. Requiere Claude Code v2.1.234 o posterior722* **Desde un dispositivo conectado**: en una sesión de [Remote Control](/docs/es/remote-control#what-connected-devices-see), elige un nivel del control de esfuerzo en tu teléfono o en tu navegador. El nivel se aplica solo a la sesión actual. Requiere Claude Code v2.1.234 o posterior

671* **Frontmatter de skill y subagente**: establece `effort` en un archivo markdown de [skill](/docs/es/skills#frontmatter-reference) o [subagente](/docs/es/sub-agents#supported-frontmatter-fields) para anular el nivel de esfuerzo cuando ese skill o subagente se ejecuta723* **Frontmatter de skill y subagente**: establece `effort` en un archivo markdown de [skill](/docs/es/skills#frontmatter-reference) o [subagente](/docs/es/sub-agents#supported-frontmatter-fields) para anular el nivel de esfuerzo cuando ese skill o subagente se ejecuta

672 724 

673El esfuerzo de frontmatter se aplica cuando ese skill o subagente está activo, anulando el nivel de sesión pero no la variable de entorno. Un [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) o [límite de esfuerzo de la organización](#organization-effort-limits) aún limita el nivel en el que se ejecuta el skill o subagente.725El esfuerzo de frontmatter se aplica cuando ese skill o subagente está activo, anulando el nivel de sesión pero no la variable de entorno. Un [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) o [límite de esfuerzo de la organización](#organization-effort-limits) aún limita el nivel en el que se ejecuta el skill o subagente.

674 726 

675Si estableces `effortLevel` en [configuración administrada](/docs/es/managed-settings), Claude Code lo aplica en el paso de configuración del [orden de resolución de esfuerzo](#adjust-effort-level), y los usuarios aún pueden cambiar el nivel con `/effort` o `--effort`. Para mantener a los usuarios en o por debajo de un nivel, establece [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel).727Si estableces `effortLevel` en [configuración administrada](/docs/es/managed-settings), Claude Code lo aplica en el paso de configuración del [orden de resolución de esfuerzo](#adjust-effort-level), y los usuarios aún pueden cambiar el nivel con `/effort` o `--effort`. Para mantener a los usuarios en o por debajo de un nivel, establece [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel).

676 728 

677El deslizador de esfuerzo aparece en `/model` cuando se selecciona un modelo admitido. El nivel de esfuerzo actual también se muestra en el encabezado de la sesión junto al nombre del modelo, por ejemplo "with low effort", para que puedas confirmar qué configuración está activa sin abrir `/model`. El pie de página también muestra brevemente el nivel de esfuerzo al inicio y cuando cambia.729El deslizador de esfuerzo aparece en `/model` cuando se selecciona un modelo admitido. El nivel de esfuerzo actual también se muestra en el encabezado de la sesión junto al nombre del modelo, por ejemplo "con esfuerzo bajo", para que puedas confirmar qué configuración está activa sin abrir `/model`. El pie de página también muestra brevemente el nivel de esfuerzo al inicio y cuando cambia.

678 730 

679<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">731<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">

680 Razonamiento adaptativo y presupuestos de pensamiento fijo732 Razonamiento adaptativo y presupuestos de pensamiento fijo

681</h4>733</h4>

682 734 

683El razonamiento adaptativo hace que el pensamiento sea opcional en cada paso, por lo que Claude puede responder más rápido a prompts rutinarios y reservar pensamiento más profundo para pasos que se benefician de él. Si quieres que Claude piense más o menos a menudo de lo que el nivel actual produce, puedes decirlo directamente en tu prompt o en `CLAUDE.md`; el modelo responde a esa orientación dentro de su configuración de esfuerzo.735El razonamiento adaptativo hace que el pensamiento sea opcional en cada paso, por lo que Claude puede responder más rápido a prompts rutinarios y reservar pensamiento más profundo para pasos que se benefician de él. Si quieres que Claude piense más o menos a menudo de lo que produce el nivel actual, puedes decirlo directamente en tu prompt o en `CLAUDE.md`; el modelo responde a esa orientación dentro de su configuración de esfuerzo.

684 736 

685Los modelos Fable, Sonnet 5 y Opus 4.7 y posteriores siempre utilizan razonamiento adaptativo. El modo de presupuesto de pensamiento fijo y `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` no se aplican a ellos.737Los modelos Fable, Sonnet 5 y posterior, y Opus 4.7 y posterior siempre utilizan razonamiento adaptativo. El modo de presupuesto de pensamiento fijo y `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` no se aplican a ellos.

686 738 

687En Opus 4.6 y Sonnet 4.6, puedes establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para revertir al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulta [variables de entorno](/docs/es/env-vars).739En Opus 4.6 y Sonnet 4.6, puedes establecer `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` para revertir al presupuesto de pensamiento fijo anterior controlado por `MAX_THINKING_TOKENS`. Consulta [variables de entorno](/docs/es/env-vars).

688 740 

689<h3 id="extended-thinking">741<h3 id="extended-thinking">

690 Pensamiento extendido742 Extended thinking

691</h3>743</h3>

692 744 

693El 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; las configuraciones a continuación activan o desactivan el pensamiento y controlan cómo se muestra. Con el pensamiento desactivado en Anthropic API, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.745El 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; las configuraciones a continuación activan o desactivan el pensamiento y controlan cómo se muestra. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

694 746 

695| Control | Cómo establecerlo |747| Control | Cómo establecerlo |

696| :- | :- |748| :- | :- |

697| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |749| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |

698| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Guardado como `alwaysThinkingEnabled` en `~/.claude/settings.json` |750| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Guardado como `alwaysThinkingEnabled` en `~/.claude/settings.json` |

699| Desactivar a través de una variable de entorno | Establece [`MAX_THINKING_TOKENS=0`](/docs/es/env-vars), que desactiva el pensamiento en Anthropic API excepto en Opus 5.5 y modelos Fable. En [proveedores de terceros](/docs/es/third-party-integrations), Claude Code omite el parámetro `thinking` en su lugar, y los modelos de razonamiento adaptativo aún pueden pensar. Otros valores se aplican solo con un [presupuesto de pensamiento fijo](#adaptive-reasoning-and-fixed-thinking-budgets) |751| Desactivar a través de una variable de entorno | Establece [`MAX_THINKING_TOKENS=0`](/docs/es/env-vars), que desactiva el pensamiento en la API de Anthropic excepto en Opus 5.5, Sonnet 5.5 y modelos Fable. En [proveedores de terceros](/docs/es/third-party-integrations), Claude Code omite el parámetro `thinking` en su lugar, y los modelos de razonamiento adaptativo aún pueden pensar. Otros valores se aplican solo con un [presupuesto de pensamiento fijo](#adaptive-reasoning-and-fixed-thinking-budgets) |

700 752 

701No puedes desactivar el pensamiento en Opus 5.5 o los modelos Fable. El alternador de sesión, `alwaysThinkingEnabled` y `MAX_THINKING_TOKENS=0` no tienen efecto allí, y el modelo decide por paso cuánto pensar según el nivel de esfuerzo.753No puedes desactivar el pensamiento en Opus 5.5, Sonnet 5.5 o los modelos Fable. El alternador de sesión, `alwaysThinkingEnabled` y `MAX_THINKING_TOKENS=0` no tienen efecto allí, y el modelo decide por paso cuánto pensar según el nivel de esfuerzo.

702 754 

703Claude Code colapsa la salida de pensamiento por defecto. Presiona `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en Anthropic API reciben bloques de pensamiento redactados por defecto, así que establece `showThinkingSummaries: true` en [configuración](/docs/es/settings) si quieres que los resúmenes completos estén disponibles cuando expandas. Se te cobra por todos los tokens de pensamiento generados, incluso cuando están colapsados o redactados.755Claude Code colapsa la salida de pensamiento por defecto. Presiona `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 por defecto, así que establece `showThinkingSummaries: true` en [configuración](/docs/es/settings) si quieres que los resúmenes completos estén disponibles cuando expandas. Se te cobra por todos los tokens de pensamiento generados, incluso cuando están colapsados o redactados.

704 756 

705<h3 id="extended-context">757<h3 id="extended-context">

706 Contexto extendido758 Extended context

707</h3>759</h3>

708 760 

709Fable 5.1, Fable 5, Sonnet 5, Opus 4.6 y posteriores, y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas con bases de código grandes.761Fable 5.1, Fable 5, Sonnet 5 y posterior, Opus 4.6 y posterior, y Sonnet 4.6 admiten una [ventana de contexto de 1 millón de tokens](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) para sesiones largas con bases de código grandes.

710 762 

711En Anthropic API, Fable 5.1, Fable 5, Sonnet 5 y Opus 4.7 y posteriores se ejecutan con la ventana de 1M en cada plan, incluido Pro. No seleccionas una variante `[1m]` ni activas créditos de uso para la ventana de 1M en estos modelos. El uso de Fable en sí puede facturarse a créditos de uso en algunos planes; consulta [Fable y créditos de uso](#fable-and-usage-credits).763En la API de Anthropic, Fable 5.1, Fable 5, Sonnet 5 y posterior, y Opus 4.7 y posterior se ejecutan con la ventana de 1M en cada plan, incluido Pro. No seleccionas una variante `[1m]` o activas créditos de uso para la ventana de 1M en estos modelos. El uso de Fable en sí puede facturarse a créditos de uso en algunos planes; consulta [Fable y créditos de uso](#fable-and-usage-credits).

712 764 

713Opus 4.6 y Sonnet 4.6 alcanzan 1M solo a través de su variante `[1m]`, y el acceso a esa variante depende de tu plan. En planes Max, Team y Enterprise, incluidos tanto asientos de Team Standard como Team Premium, Opus 4.6 con contexto de 1M se incluye con tu suscripción. Sonnet 4.6 con contexto de 1M requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en cada plan de suscripción, incluido Max.765Opus 4.6 y Sonnet 4.6 alcanzan 1M solo a través de su variante `[1m]`, y el acceso a esa variante depende de tu plan. En planes Max, Team y Enterprise, incluidos asientos de Team Standard y Team Premium, Opus 4.6 con contexto de 1M se incluye con tu suscripción. Sonnet 4.6 con contexto de 1M requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en cada plan de suscripción, incluido Max.

714 766 

715| Plan | Opus 4.6 con contexto de 1M | Sonnet 4.6 con contexto de 1M |767| Plan | Opus 4.6 con contexto de 1M | Sonnet 4.6 con contexto de 1M |

716| - | - | - |768| - | - | - |


718| Pro | Requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | Requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |770| Pro | Requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | Requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

719| API y pago por uso | Acceso completo | Acceso completo |771| API y pago por uso | Acceso completo | Acceso completo |

720 772 

721Claude Code verifica estos requisitos de plan solo cuando se conecta directamente a Anthropic API. Si apuntas `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway#subscriptions-and-gateways) y tu inicio de sesión guardado de claude.ai permanece como la credencial activa, Claude Code no verifica los créditos de uso de tu plan. Las opciones `[1m]` permanecen disponibles en `/model`, y la puerta de enlace decide si la solicitud tiene éxito. Antes de v2.1.229, Claude Code rechazaba `/model sonnet[1m]` en esa configuración cuando no podía confirmar créditos de uso en la cuenta.773Claude Code verifica estos requisitos de plan solo cuando se conecta a la API de Anthropic directamente. Si apuntas `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM](/docs/es/llm-gateway#subscriptions-and-gateways) y tu inicio de sesión guardado de claude.ai permanece como la credencial activa, Claude Code no verifica tus créditos de uso del plan. Las opciones `[1m]` permanecen disponibles en `/model`, y la puerta de enlace decide si la solicitud tiene éxito. Antes de v2.1.229, Claude Code rechazaba `/model sonnet[1m]` en esa configuración cuando no podía confirmar créditos de uso en la cuenta.

722 774 

723Para desactivar contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina variantes de modelo de 1M del selector de modelos. En modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:775Para desactivar el contexto de 1M, establece `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`. Claude Code elimina variantes de modelo de 1M del selector de modelo. En modelos con una ventana de 1M nativa, como Sonnet 5 y los modelos Fable, también trata el modelo como si tuviera una ventana de contexto de 200K:

724 776 

725* Con compactación automática activada, las sesiones se compactan en el límite de 200K a través de [compactación automática](#set-the-auto-compact-window). Establecer la ventana de compactación automática por encima de 200K no levanta la retención, porque Claude Code limita esa ventana a la ventana de contexto del modelo.777* Con la compactación automática activada, las sesiones se compactan en el límite de 200K a través de [compactación automática](#set-the-auto-compact-window). Establecer la ventana de compactación automática por encima de 200K no levanta la retención, porque Claude Code limita esa ventana a la ventana de contexto del modelo.

726* Con compactación automática desactivada, las sesiones se detienen en el límite de 200K con el [error de límite de contexto](/docs/es/errors#prompt-is-too-long) en lugar de compactarse.778* Con la compactación automática desactivada, las sesiones se detienen en el límite de 200K con el [error de límite de contexto](/docs/es/errors#prompt-is-too-long) en lugar de compactarse.

727 779 

728Antes de v2.1.223, Claude Code mantenía solo sesiones de Sonnet 5, Opus 4.8 y Opus 5 a 200K. Consulta [variables de entorno](/docs/es/env-vars).780Antes de v2.1.223, Claude Code mantenía solo sesiones de Sonnet 5, Opus 4.8 y Opus 5 a 200K. Consulta [variables de entorno](/docs/es/env-vars).

729 781 

730La ventana de contexto de 1M utiliza precios de modelo estándar sin prima para tokens más allá de 200K. Para planes donde el contexto extendido se incluye con tu suscripción, el uso permanece cubierto por tu suscripción. Para planes que acceden a contexto extendido a través de créditos de uso, los tokens se facturan a créditos de uso.782La ventana de contexto de 1M utiliza precios de modelo estándar sin prima para tokens más allá de 200K. Para planes donde el contexto extendido se incluye con tu suscripción, el uso permanece cubierto por tu suscripción. Para planes que acceden al contexto extendido a través de créditos de uso, los tokens se facturan a créditos de uso.

731 783 

732Si tu cuenta admite contexto de 1M, la opción aparece en el selector `/model` en las últimas versiones de Claude Code. Si no la ves, intenta reiniciar tu sesión.784Si tu cuenta admite contexto de 1M, la opción aparece en el selector `/model` en las últimas versiones de Claude Code. Si no la ves, intenta reiniciar tu sesión.

733 785 


742/model claude-opus-4-8[1m]794/model claude-opus-4-8[1m]

743```795```

744 796 

745<h4 id="sonnet-5-context-window">797<h4 id="sonnet-5-5-and-sonnet-5-context-window">

746 Ventana de contexto de Sonnet 5798 Ventana de contexto de Sonnet 5.5 y Sonnet 5

747</h4>799</h4>

748 800 

749En Anthropic API, Sonnet 5 siempre se ejecuta con la ventana de contexto de 1M. No hay variante de 200K, no hay sufijo `[1m]` para seleccionar, y no se requieren créditos de uso en ningún plan. Las sesiones se compactan automáticamente antes de que la ventana se llene, a aproximadamente 967K tokens por defecto; establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) para elegir un umbral diferente.801En la API de Anthropic, Sonnet 5.5 y Sonnet 5 siempre se ejecutan con la ventana de contexto de 1M. No hay variante de 200K, sin sufijo `[1m]` para seleccionar, y sin créditos de uso requeridos en ningún plan. Las sesiones se compactan automáticamente antes de que la ventana se llene, en aproximadamente 967K tokens por defecto; establece [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/es/env-vars) para elegir un umbral diferente.

750 802 

751Dos configuraciones presupuestan la ventana en 200K en su lugar:803Dos configuraciones presupuestan la ventana en 200K en su lugar:

752 804 

753* **Puerta de enlace LLM**: cuando `ANTHROPIC_BASE_URL` apunta a una [puerta de enlace](/docs/es/llm-gateway), Claude Code no puede verificar soporte de 1M. Para usar la ventana completa, selecciona Sonnet 5 (1M context) en el selector de modelos, que se asigna a `sonnet[1m]`.805* **Puerta de enlace LLM**: cuando `ANTHROPIC_BASE_URL` apunta a una [puerta de enlace](/docs/es/llm-gateway), Claude Code no puede verificar soporte de 1M. Para usar la ventana completa, selecciona Sonnet 5.5 (1M context) en el selector de modelo, que se asigna a `sonnet[1m]`, o ejecuta `/model claude-sonnet-5[1m]` para Sonnet 5.

754* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: mantiene sesiones en cada modelo con una ventana nativa de 1M a una ventana de 200K; consulta [Contexto extendido](#extended-context) para cómo se aplica la retención. Útil para implementaciones que necesitan limitar el contexto.806* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: mantiene sesiones en cada modelo con una ventana de 1M nativa a una ventana de 200K; consulta [Extended context](#extended-context) para cómo se aplica la retención. Útil para despliegues que necesitan limitar el contexto.

755 807 

756<h2 id="context-window-and-auto-compaction">808<h2 id="context-window-and-auto-compaction">

757 Ventana de contexto y auto-compactación809 Ventana de contexto y auto-compactación


786* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo838* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo

787* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry839* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry

788* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K840* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K

789* Los modelos que se ejecutan con una ventana nativa de 1M, como Sonnet 5, los modelos Fable y Opus 4.7 y posteriores en la API de Anthropic, se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) indica qué modelos se ejecutan con esa ventana; para las configuraciones que presupuestan Sonnet 5 en 200K en su lugar, consulte [Ventana de contexto de Sonnet 5](#sonnet-5-context-window)841* Los modelos que se ejecutan con una ventana nativa de 1M, como Sonnet 5, los modelos Fable y Opus 4.7 y posteriores en la API de Anthropic, se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) indica qué modelos se ejecutan con esa ventana; para las configuraciones que presupuestan Sonnet 5.5 y Sonnet 5 en 200K en su lugar, consulte [Ventana de contexto de Sonnet 5.5 y Sonnet 5](#sonnet-5-5-and-sonnet-5-context-window)

790* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)842* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)

791 843 

792<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">844<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">


861| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad de fondo](/docs/es/costs#background-token-usage) |913| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | El modelo a utilizar para `haiku`, o [funcionalidad de fondo](/docs/es/costs#background-token-usage) |

862| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y agentes de [workflow](/docs/es/workflows) que no tienen asignado un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Un modelo por invocación o el campo `model` de una definición, incluido `inherit`, tiene precedencia. Para cambiar eso, establezca [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model) |914| `CLAUDE_CODE_SUBAGENT_MODEL` | El modelo predeterminado para [subagentes](/docs/es/sub-agents#choose-a-model), compañeros de [equipo de agentes](/docs/es/agent-teams#specify-teammates-and-models) y agentes de [workflow](/docs/es/workflows) que no tienen asignado un modelo de otra manera. Acepta un alias como `haiku` o un nombre de modelo completo. Un modelo por invocación o el campo `model` de una definición, incluido `inherit`, tiene precedencia. Para cambiar eso, establezca [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/es/sub-agents#run-every-subagent-on-one-model) |

863 915 

916En proveedores de terceros, [Personalizar la visualización y capacidades del modelo fijo](#customize-pinned-model-display-and-capabilities) describe lo que muestra la fila de un modelo fijo en el selector `/model`.

917 

864Nota: `ANTHROPIC_SMALL_FAST_MODEL` está deprecado en favor de `ANTHROPIC_DEFAULT_HAIKU_MODEL`.918Nota: `ANTHROPIC_SMALL_FAST_MODEL` está deprecado en favor de `ANTHROPIC_DEFAULT_HAIKU_MODEL`.

865 919 

866<h3 id="pin-models-for-third-party-deployments">920<h3 id="pin-models-for-third-party-deployments">


995| Variable de entorno | Descripción |1049| Variable de entorno | Descripción |

996| - | - |1050| - | - |

997| `DISABLE_PROMPT_CACHING` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para todos los modelos. Tiene precedencia sobre la configuración por modelo |1051| `DISABLE_PROMPT_CACHING` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para todos los modelos. Tiene precedencia sobre la configuración por modelo |

998| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Haiku |1052| `DISABLE_PROMPT_CACHING_HAIKU` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones para el [modelo Haiku predeterminado](/docs/es/prompt-caching#disable-prompt-caching) |

999| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Sonnet |1053| `DISABLE_PROMPT_CACHING_SONNET` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Sonnet |

1000| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Opus |1054| `DISABLE_PROMPT_CACHING_OPUS` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Opus |

1001| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Fable |1055| `DISABLE_PROMPT_CACHING_FABLE` | Establezca en `1` para desactivar el almacenamiento en caché de indicaciones solo para modelos Fable |

1002 1056 

1003Para elegir el TTL de caché para la conversación principal y para subagentes por separado, consulte [elegir el TTL usted mismo](/docs/es/prompt-caching#choose-the-ttl-yourself). Para saber qué desencadena un error de caché, consulte [Cómo Claude Code utiliza el almacenamiento en caché de indicaciones](/docs/es/prompt-caching).1057Para elegir el TTL de caché para la conversación principal y para subagentes por separado, consulte [elegir el TTL usted mismo](/docs/es/prompt-caching#choose-the-ttl-yourself). Para saber qué desencadena un error de caché, consulte [Cómo Claude Code utiliza el almacenamiento en caché de indicaciones](/docs/es/prompt-caching).

1058 

1059<h2 id="version-history">

1060 Historial de versiones

1061</h2>

1062 

1063Esta tabla enumera la versión de Claude Code en la que cada alias de modelo cambió el modelo al que se resuelve, siendo el más reciente primero.

1064 

1065| Versión | Cambio |

1066| :- | :- |

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

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

1069| v2.1.257 | `fable` se resuelve a Fable 5.1, excepto en sesiones de puerta de enlace de aplicaciones Claude |

1070| v2.1.219 | `opus` se resuelve a Opus 5 en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock y Agent Platform |

1071| v2.1.207 | `opus` se resuelve a Opus 4.8 en Claude Platform en AWS, Amazon Bedrock y Agent Platform |

1072| v2.1.197 | `sonnet` se resuelve a Sonnet 5 en la API de Anthropic |

1073| v2.1.154 | `opus` se resuelve a Opus 4.8 en la API de Anthropic |

1074| Anterior | `opus` se resuelve a Opus 4.7 en Claude Platform en AWS y a Opus 4.6 en Amazon Bedrock y Agent Platform. `fable` se resuelve a Fable 5 en todos los proveedores |

Details

39 39 

40Para verificar una configuración que exporta métricas, comprueba tu backend para la métrica `claude_code.session.count`, que Claude Code emite cuando se inicia una sesión. Para verificar una configuración solo de registros, envía un mensaje y comprueba el evento `claude_code.user_prompt`.40Para verificar una configuración que exporta métricas, comprueba tu backend para la métrica `claude_code.session.count`, que Claude Code emite cuando se inicia una sesión. Para verificar una configuración solo de registros, envía un mensaje y comprueba el evento `claude_code.user_prompt`.

41 41 

42Si nada llega, ejecuta `claude --debug` y comprueba el registro de depuración. Claude Code reporta fallos de los exportadores que configures como errores `[3P telemetry]`, donde 3P significa terceros. Las líneas con prefijo `[Anthropic telemetry]` describen la [telemetría operativa separada de Anthropic](/docs/es/data-usage#telemetry-services) y no indican un problema con tu configuración.42Si nada llega, inicia Claude Code con `claude --debug-file <path>` y comprueba el registro que escribe en esa ruta. Claude Code reporta fallos de los exportadores que configures como errores `[3P telemetry]`, donde 3P significa terceros. Las líneas con prefijo `[Anthropic telemetry]` describen la [telemetría operativa separada de Anthropic](/docs/es/data-usage#telemetry-services) y no indican un problema con tu configuración.

43 43 

44Para opciones de configuración completas, consulta la [especificación de OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options).44Para opciones de configuración completas, consulta la [especificación de OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options).

45 45 


72 Cómo los ajustes administrados bloquean el destino OTLP72 Cómo los ajustes administrados bloquean el destino OTLP

73</h3>73</h3>

74 74 

75Cuando estableces una variable `OTEL_EXPORTER_OTLP_*` en los ajustes administrados, Claude Code elimina las variables conflictivas establecidas por el desarrollador al inicio y registra una advertencia que puedes ver con `claude --debug`. Lo que elimina depende de qué variable establezca:75Cuando estableces una variable `OTEL_EXPORTER_OTLP_*` en los ajustes administrados, Claude Code elimina las variables conflictivas establecidas por el desarrollador al inicio y registra una advertencia en el registro de depuración. Lo que elimina depende de qué variable establezca:

76 76 

77* **Puntos finales**: cuando estableces `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code elimina todos los puntos finales por señal establecidos por el desarrollador. Los desarrolladores no pueden apuntar una señal a un recopilador diferente, así que no necesitas establecer también las variables de punto final por señal en los ajustes administrados.77* **Puntos finales**: cuando estableces `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code elimina todos los puntos finales por señal establecidos por el desarrollador. Los desarrolladores no pueden apuntar una señal a un recopilador diferente, así que no necesitas establecer también las variables de punto final por señal en los ajustes administrados.

78* **Protocolos**: cuando estableces `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code elimina todos los protocolos por señal establecidos por el desarrollador.78* **Protocolos**: cuando estableces `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code elimina todos los protocolos por señal establecidos por el desarrollador.


127| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalo de exportación de registros en milisegundos (predeterminado: 5000) | `1000`, `10000` |127| `OTEL_LOGS_EXPORT_INTERVAL` | Intervalo de exportación de registros en milisegundos (predeterminado: 5000) | `1000`, `10000` |

128| `OTEL_LOG_USER_PROMPTS` | Habilitar registro del contenido del mensaje del usuario (predeterminado: deshabilitado) | `1` para habilitar |128| `OTEL_LOG_USER_PROMPTS` | Habilitar registro del contenido del mensaje del usuario (predeterminado: deshabilitado) | `1` para habilitar |

129| `OTEL_LOG_ASSISTANT_RESPONSES` | Habilitar registro del texto de respuesta del asistente en eventos `assistant_response` (predeterminado: deshabilitado). Cuando no está establecido, recurre al valor de `OTEL_LOG_USER_PROMPTS`. Requiere Claude Code v2.1.193 o posterior | `1` para habilitar, `0` para mantener redactado |129| `OTEL_LOG_ASSISTANT_RESPONSES` | Habilitar registro del texto de respuesta del asistente en eventos `assistant_response` (predeterminado: deshabilitado). Cuando no está establecido, recurre al valor de `OTEL_LOG_USER_PROMPTS`. Requiere Claude Code v2.1.193 o posterior | `1` para habilitar, `0` para mantener redactado |

130| `OTEL_LOG_TOOL_DETAILS` | Habilitar registro de parámetros de herramientas e argumentos de entrada en eventos de herramientas y atributos de span de traza: comandos Bash, nombres de servidor MCP y herramienta, nombres de habilidades, nombres de flujo de trabajo creados por el usuario, e entrada de herramienta. También habilita nombres de comandos personalizados, de plugin y MCP en eventos `user_prompt` (predeterminado: deshabilitado). Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `mcp_server_name`/`mcp_tool_name` se emiten en `tool_decision`/`tool_result` incluso con la bandera desactivada. La excepción requiere Claude Code v2.1.214 o posterior | `1` para habilitar |130| `OTEL_LOG_TOOL_DETAILS` | Habilitar registro de parámetros de herramientas e argumentos de entrada en eventos de herramientas y atributos de span de traza: comandos Bash, nombres de servidor MCP y herramienta, nombres de habilidades, nombres de flujo de trabajo creados por el usuario, e entrada de herramienta. También habilita nombres de comandos personalizados, de plugin y MCP en eventos `user_prompt`, y nombres reales de agente, habilidad, plugin, y servidor MCP y herramienta en los [contadores de costo y token](#cost-counter) (predeterminado: deshabilitado). Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `mcp_server_name`/`mcp_tool_name` se emiten en `tool_decision`/`tool_result` incluso con la bandera desactivada. La excepción requiere Claude Code v2.1.214 o posterior | `1` para habilitar |

131| `OTEL_LOG_TOOL_CONTENT` | Habilitar registro de contenido de herramientas en el evento de span [`tool.output`](#tool-output-span-event) (predeterminado: deshabilitado). Los atributos de span llevan contenido de herramientas bajo [sus propias puertas](#new-context-gates). Requiere [trazas](#traces-beta). El contenido se trunca en el límite de contenido (60 KB por defecto) | `1` para habilitar |131| `OTEL_LOG_TOOL_CONTENT` | Habilitar registro de contenido de herramientas en el evento de span [`tool.output`](#tool-output-span-event) (predeterminado: deshabilitado). Los atributos de span llevan contenido de herramientas bajo [sus propias puertas](#new-context-gates). Requiere [trazas](#traces-beta). El contenido se trunca en el límite de contenido (60 KB por defecto) | `1` para habilitar |

132| `OTEL_LOG_MANAGED_SETTINGS` | Agregar la configuración administrada redactada, y un resumen SHA-256 de la configuración antes de la redacción, a eventos [managed settings resolved](#managed-settings-resolved-event) (predeterminado: deshabilitado). Un valor en configuración de proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior | `1` para habilitar |132| `OTEL_LOG_MANAGED_SETTINGS` | Agregar la configuración administrada redactada, y un resumen SHA-256 de la configuración antes de la redacción, a eventos [managed settings resolved](#managed-settings-resolved-event) (predeterminado: deshabilitado). Un valor en configuración de proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior | `1` para habilitar |

133| `OTEL_LOG_RAW_API_BODIES` | Emitir el cuerpo completo de solicitud y respuesta JSON de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body` (predeterminado: deshabilitado). Los cuerpos incluyen el historial de conversación completo. Habilitar esto implica consentimiento a todo lo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, y `OTEL_LOG_TOOL_CONTENT` revelarían | `1` para cuerpos en línea truncados en el límite de contenido (60 KB por defecto), o `file:<dir>` para cuerpos sin truncar en disco con un puntero `body_ref` en el evento |133| `OTEL_LOG_RAW_API_BODIES` | Emitir el cuerpo completo de solicitud y respuesta JSON de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body` (predeterminado: deshabilitado). Los cuerpos incluyen el historial de conversación completo. Habilitar esto implica consentimiento a todo lo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, y `OTEL_LOG_TOOL_CONTENT` revelarían | `1` para cuerpos en línea truncados en el límite de contenido (60 KB por defecto), o `file:<dir>` para cuerpos sin truncar en disco con un puntero `body_ref` en el evento |


257| `output_tokens` | Recuento de tokens de salida | |257| `output_tokens` | Recuento de tokens de salida | |

258| `cache_read_tokens` | Tokens leídos del caché de mensaje | |258| `cache_read_tokens` | Tokens leídos del caché de mensaje | |

259| `cache_creation_tokens` | Tokens escritos en el caché de mensaje | |259| `cache_creation_tokens` | Tokens escritos en el caché de mensaje | |

260| `request_id` | ID de solicitud de API de Anthropic del encabezado de respuesta `request-id` | |260| `request_id` | ID de solicitud de API. Mismo valor que el atributo de correlación de eventos [`request_id`](#event-correlation-attributes) | |

261| `gen_ai.response.id` | Mismo valor que `request_id`. Convención semántica de GenAI de OpenTelemetry | |261| `gen_ai.response.id` | Mismo valor que `request_id`. Convención semántica de GenAI de OpenTelemetry | |

262| `client_request_id` | `x-client-request-id` generado por cliente del intento final | |262| `client_request_id` | `x-client-request-id` generado por cliente del intento final | |

263| `attempt` | Intentos totales realizados para esta solicitud | |263| `attempt` | Intentos totales realizados para esta solicitud | |


296 296 

297Si estableces `OTEL_LOG_TOOL_CONTENT=1`, las llamadas Read y Bash pueden registrar un evento de span `tool.output` en el span `claude_code.tool`. Las llamadas Edit y Write registran uno solo cuando también estableces `OTEL_LOG_TOOL_DETAILS=1`. Esa variable no está limitada a esas dos herramientas, así que verifica su [fila en la tabla de configuración](#common-configuration-variables) para los argumentos que agrega en otros lugares.297Si estableces `OTEL_LOG_TOOL_CONTENT=1`, las llamadas Read y Bash pueden registrar un evento de span `tool.output` en el span `claude_code.tool`. Las llamadas Edit y Write registran uno solo cuando también estableces `OTEL_LOG_TOOL_DETAILS=1`. Esa variable no está limitada a esas dos herramientas, así que verifica su [fila en la tabla de configuración](#common-configuration-variables) para los argumentos que agrega en otros lugares.

298 298 

299Las herramientas MCP, WebFetch, y WebSearch también registran este evento, en Claude Code v2.1.283 o posterior.

300 

299Claude Code escribe este evento desde el retorno exitoso de una llamada de herramienta, por lo que una llamada que genera un error no registra nada, sea cual sea la herramienta. Entre las llamadas que sí retornan, no registra un evento `tool.output` para:301Claude Code escribe este evento desde el retorno exitoso de una llamada de herramienta, por lo que una llamada que genera un error no registra nada, sea cual sea la herramienta. Entre las llamadas que sí retornan, no registra un evento `tool.output` para:

300 302 

301* Una llamada a cualquier herramienta que no sea Read, Edit, Write, y Bash, incluyendo herramientas MCP y WebFetch303* Una llamada a cualquier herramienta que no sea Read, Edit, Write, Bash, WebFetch, WebSearch, y herramientas MCP

302* Un Read que retorna algo que no sea texto de archivo, como una imagen, un PDF, o una relectura de un archivo cuyo contenido no ha cambiado304* Un Read que retorna algo que no sea texto de archivo, como una imagen, un PDF, o una relectura de un archivo cuyo contenido no ha cambiado

303* Una llamada Edit o Write, a menos que también establezca `OTEL_LOG_TOOL_DETAILS=1`305* Una llamada Edit o Write, a menos que también establezca `OTEL_LOG_TOOL_DETAILS=1`

306* Una llamada WebFetch o WebSearch que Claude Code movió al fondo porque interrumpiste el turno para [enviar tus mensajes en cola de inmediato](/docs/es/interactive-mode#when-claude-code-sends-what-you-queued) mientras la llamada se ejecutaba. Claude recibe ese resultado más tarde, después de que el span de herramienta haya terminado

304 307 

305El evento lleva estos atributos, cada uno truncado en el límite de contenido (60 KB por defecto). `Controlado Por` nombra la variable que un atributo necesita además de `OTEL_LOG_TOOL_CONTENT=1`, y para Edit y Write esa variable controla el evento en sí en lugar del atributo.308El evento lleva estos atributos, cada uno truncado en el límite de contenido (60 KB por defecto). `Controlado Por` nombra la variable que un atributo necesita además de `OTEL_LOG_TOOL_CONTENT=1`, y para Edit y Write esa variable controla el evento en sí en lugar del atributo.

306 309 

307| Atributo | Descripción | Controlado Por |310| Atributo | Descripción | Controlado Por |

308| - | - | - |311| - | - | - |

309| `content` | Texto que la herramienta Read retornó, o el texto que una llamada Write fue solicitada a escribir | `OTEL_LOG_TOOL_DETAILS` para la herramienta Write |312| `content` | Texto que la herramienta Read retornó, o el texto que una llamada Write fue solicitada a escribir | `OTEL_LOG_TOOL_DETAILS` para la herramienta Write |

310| `output` | Salida combinada de un comando Bash, con stderr intercalado en stdout | |313| `output` | Para la herramienta Bash, la salida combinada del comando, con stderr intercalado en stdout. Para una herramienta MCP, WebFetch, o WebSearch, el resultado que la herramienta retornó: bloques de texto unidos por saltos de línea, con una imagen o documento reemplazado por un marcador de posición como `[image]` | |

311| `diff` | Parche estructurado que la herramienta Edit aplicó | `OTEL_LOG_TOOL_DETAILS` |314| `diff` | Parche estructurado que la herramienta Edit aplicó | `OTEL_LOG_TOOL_DETAILS` |

312| `file_path` | Ruta de archivo de destino para las herramientas Read, Edit, y Write, repitiendo el atributo de span del mismo nombre | `OTEL_LOG_TOOL_DETAILS` |315| `file_path` | Ruta de archivo de destino para las herramientas Read, Edit, y Write, repitiendo el atributo de span del mismo nombre | `OTEL_LOG_TOOL_DETAILS` |

313| `bash_command` | Cadena de comando para la herramienta Bash | `OTEL_LOG_TOOL_DETAILS` |316| `bash_command` | Cadena de comando para la herramienta Bash | `OTEL_LOG_TOOL_DETAILS` |


561 564 

562Establezca `OTEL_METRICS_INCLUDE_REPOSITORY=true` para etiquetar métricas y eventos con la identidad del repositorio de la sesión, de modo que un recopilador compartido pueda atribuir el uso por repositorio. Requiere Claude Code v2.1.269 o posterior.565Establezca `OTEL_METRICS_INCLUDE_REPOSITORY=true` para etiquetar métricas y eventos con la identidad del repositorio de la sesión, de modo que un recopilador compartido pueda atribuir el uso por repositorio. Requiere Claude Code v2.1.269 o posterior.

563 566 

564Claude Code deriva estos atributos una vez por sesión desde el remoto `origin` del repositorio. Los remotos HTTPS y SSH de un repositorio producen valores idénticos:567Claude Code deriva estos atributos una vez por sesión desde el remoto `origin` del repositorio. Cuando los remotos HTTPS y SSH de un repositorio nombran el mismo host y la misma ruta, como lo hacen en GitHub, GitLab y Bitbucket Cloud, ambos producen valores idénticos:

565 568 

566| Atributo | Valor |569| Atributo | Valor |

567| - | - |570| - | - |


572 575 

573Los valores se convierten a minúsculas, y las credenciales, cadenas de consulta y fragmentos de la URL remota nunca aparecen en ellos. Los atributos se omiten cuando la sesión no tiene un remoto `origin`, cuando el remoto no tiene forma de URL, o cuando el único repositorio envolvente es su directorio de inicio.576Los valores se convierten a minúsculas, y las credenciales, cadenas de consulta y fragmentos de la URL remota nunca aparecen en ellos. Los atributos se omiten cuando la sesión no tiene un remoto `origin`, cuando el remoto no tiene forma de URL, o cuando el único repositorio envolvente es su directorio de inicio.

574 577 

578Para obtener estos atributos de una [sesión en la nube](/docs/es/claude-code-on-the-web), establezca las variables de telemetría, incluida `OTEL_METRICS_INCLUDE_REPOSITORY`, en su [entorno en la nube](/docs/es/cloud-environments#set-environment-variables). También permita el dominio de su recopilador en el [acceso de red](/docs/es/cloud-environments#network-access) del entorno.

579 

575Una clave `vcs.*` que declare en [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) reemplaza el valor derivado para esa clave. Si declara `vcs.repository.url.full`, Claude Code nunca lee el remoto e informa solo las claves que declara.580Una clave `vcs.*` que declare en [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) reemplaza el valor derivado para esa clave. Si declara `vcs.repository.url.full`, Claude Code nunca lee el remoto e informa solo las claves que declara.

576 581 

582Si los clones HTTPS y SSH de un repositorio reportan valores diferentes, como en una instalación autohospedada cuya URL de clonación HTTPS lleva un prefijo de ruta que la URL SSH carece, declare `vcs.repository.url.full` en `OTEL_RESOURCE_ATTRIBUTES` junto con cada otra clave `vcs.*` que desee reportada. Cada clon entonces reporta la identidad que declara.

583 

577Los atributos fluyen solo a sus propios exportadores; la telemetría de Anthropic descarta cada clave `vcs.*`.584Los atributos fluyen solo a sus propios exportadores; la telemetría de Anthropic descarta cada clave `vcs.*`.

578 585 

579<h3 id="metrics">586<h3 id="metrics">


650 657 

651Se incrementa después de cada solicitud de API.658Se incrementa después de cada solicitud de API.

652 659 

660Los atributos `agent.name`, `skill.name`, `plugin.name`, `mcp_server.name`, y `mcp_tool.name` cada uno redacta algunos nombres a un marcador de posición `"custom"` o `"third-party"` por defecto. Si establece `OTEL_LOG_TOOL_DETAILS=1`, llevan los nombres reales en su lugar. Antes de v2.1.273, los contadores de costo y tokens y los eventos `api_request`, `api_error`, y `api_refusal` llevaban los valores redactados incluso con `OTEL_LOG_TOOL_DETAILS=1` establecido.

661 

653**Atributos**:662**Atributos**:

654 663 

655* Todos los [atributos estándar](#standard-attributes)664* Todos los [atributos estándar](#standard-attributes)


657* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`666* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`

658* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de lo contrario667* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de lo contrario

659* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando Claude Code no envía un nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.668* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando Claude Code no envía un nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.

660* `agent.name`: Tipo de subagente que emitió la solicitud. Los nombres de agentes integrados y los agentes de plugins del mercado oficial aparecen literalmente. Otros nombres de agentes definidos por el usuario se reemplazan con `"custom"` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`. Ausente cuando la solicitud no fue emitida por un tipo de subagente nombrado.669* `agent.name`: Tipo de subagente que emitió la solicitud. Los nombres de agentes integrados y los agentes de plugins del mercado oficial aparecen literalmente. Otros nombres de agentes definidos por el usuario se reemplazan con `"custom"`. Ausente cuando la solicitud no fue emitida por un tipo de subagente nombrado.

661* `skill.name`: Habilidad activa para la solicitud, establecida por la herramienta Skill, un comando `/`, o heredada por un subagente generado. Los nombres de habilidades integradas, agrupadas, definidas por el usuario y del plugin del mercado oficial aparecen literalmente. Los nombres de habilidades de plugins de terceros se reemplazan con `"third-party"` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`. Ausente cuando no hay habilidad activa.670* `skill.name`: Habilidad activa para la solicitud, establecida por la herramienta Skill, un comando `/`, o heredada por un subagente generado. Los nombres de habilidades integradas, agrupadas, definidas por el usuario y del plugin del mercado oficial aparecen literalmente. Los nombres de habilidades de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando no hay habilidad activa.

662* `plugin.name`: Plugin propietario cuando la habilidad activa o subagente es proporcionado por un plugin. Los nombres de plugins del mercado oficial aparecen literalmente. Los nombres de plugins de terceros se reemplazan con `"third-party"` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`. Ausente cuando ni la habilidad ni el subagente tienen un plugin propietario.671* `plugin.name`: Plugin propietario cuando la habilidad activa o subagente es proporcionado por un plugin. Los nombres de plugins del mercado oficial aparecen literalmente. Los nombres de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando ni la habilidad ni el subagente tienen un plugin propietario.

663* `marketplace.name`: Mercado desde el cual se instaló el plugin propietario. Solo se emite para plugins del mercado oficial. Ausente de lo contrario.672* `marketplace.name`: Mercado desde el cual se instaló el plugin propietario. Solo se emite para plugins del mercado oficial, incluso con `OTEL_LOG_TOOL_DETAILS=1` establecido. Ausente de lo contrario.

664* `mcp_server.name`: Servidor MCP cuyo resultado de herramienta consumió esta solicitud. Los nombres de servidores integrados, proxificados por claude.ai, y del registro oficial aparecen literalmente. Los nombres de servidores configurados por el usuario se reemplazan con `"custom"` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`. Ausente cuando la solicitud no consumió ningún resultado de herramienta MCP. Antes de v2.1.222, Claude Code establecía este atributo en cada solicitud después de una llamada de herramienta MCP, no solo en solicitudes que consumieron un resultado de herramienta, por lo que los paneles de control que lo agregan muestran una caída después de actualizar.673* `mcp_server.name`: Servidor MCP cuyo resultado de herramienta consumió esta solicitud. Los nombres de servidores integrados, proxificados por claude.ai, y del registro oficial aparecen literalmente. Los nombres de servidores configurados por el usuario se reemplazan con `"custom"`. Ausente cuando la solicitud no consumió ningún resultado de herramienta MCP. Antes de v2.1.222, Claude Code establecía este atributo en cada solicitud después de una llamada de herramienta MCP, no solo en solicitudes que consumieron un resultado de herramienta, por lo que los paneles de control que lo agregan muestran una caída después de actualizar.

665* `mcp_tool.name`: Herramienta MCP cuyo resultado consumió esta solicitud, con el mismo comportamiento de redacción y versión que `mcp_server.name`. Ausente cuando la solicitud no consumió ningún resultado de herramienta MCP.674* `mcp_tool.name`: Herramienta MCP cuyo resultado consumió esta solicitud, con el mismo comportamiento de redacción y versión que `mcp_server.name`. Ausente cuando la solicitud no consumió ningún resultado de herramienta MCP.

666 675 

667<h4 id="token-counter">676<h4 id="token-counter">


722| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |731| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |

723| `event.sequence` | Contador basado en 0 para ordenar eventos, contado por proceso de Claude Code en lugar de por sesión |732| `event.sequence` | Contador basado en 0 para ordenar eventos, contado por proceso de Claude Code en lugar de por sesión |

724| `message.uuid` | UUID del mensaje tal como se persiste en la transcripción de la sesión, los archivos `~/.claude/projects/*/*.jsonl`. Presente en `assistant_response`, en `api_response_body`, y en `user_prompt` excepto para envíos de comandos, que pueden producir cero o muchos mensajes. En `assistant_response` y `api_response_body`, esta es la entrada de transcripción final de la respuesta, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior, o v2.1.274 o posterior en `api_response_body` |733| `message.uuid` | UUID del mensaje tal como se persiste en la transcripción de la sesión, los archivos `~/.claude/projects/*/*.jsonl`. Presente en `assistant_response`, en `api_response_body`, y en `user_prompt` excepto para envíos de comandos, que pueden producir cero o muchos mensajes. En `assistant_response` y `api_response_body`, esta es la entrada de transcripción final de la respuesta, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior, o v2.1.274 o posterior en `api_response_body` |

734| `request_id` | ID de solicitud asignado por el servidor de la respuesta de API, leído del encabezado de respuesta `request-id`, como `req_011...`. En una respuesta sin encabezado `request-id`, como en [Amazon Bedrock](/docs/es/amazon-bedrock), el valor proviene del encabezado `x-amzn-requestid` en su lugar. Presente en `api_request`, `api_error`, `api_refusal`, `assistant_response`, y `api_response_body` cuando la respuesta lleva cualquiera de los encabezados. Coincide con el mismo atributo en el intervalo de rastreo `llm_request`. La fuente `x-amzn-requestid` requiere Claude Code v2.1.282 o posterior |

725| `client_request_id` | UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Presente en `api_request` y `api_error` en conexiones de API de primera parte; ausente en backends de proveedores de terceros y cuando la solicitud se reintentó a través de la alternativa sin transmisión. Empareja una solicitud con su respuesta y permanece disponible para fallos como tiempos de espera que nunca produjeron un `request_id` del servidor. Coincide con el mismo atributo en el intervalo de rastreo `llm_request`. Requiere Claude Code v2.1.214 o posterior |735| `client_request_id` | UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Presente en `api_request` y `api_error` en conexiones de API de primera parte; ausente en backends de proveedores de terceros y cuando la solicitud se reintentó a través de la alternativa sin transmisión. Empareja una solicitud con su respuesta y permanece disponible para fallos como tiempos de espera que nunca produjeron un `request_id` del servidor. Coincide con el mismo atributo en el intervalo de rastreo `llm_request`. Requiere Claude Code v2.1.214 o posterior |

726 736 

727Para rastrear toda la actividad desencadenada por un único mensaje, filtre sus eventos por un valor específico de `prompt.id`. Esto devuelve el evento user\_prompt, cualquier evento api\_request, y cualquier evento tool\_result que ocurrió mientras se procesaba ese mensaje.737Para rastrear toda la actividad desencadenada por un único mensaje, filtre sus eventos por un valor específico de `prompt.id`. Esto devuelve el evento user\_prompt, cualquier evento api\_request, y cualquier evento tool\_result que ocurrió mientras se procesaba ese mensaje.


771* `response_length`: Longitud del texto de respuesta en caracteres781* `response_length`: Longitud del texto de respuesta en caracteres

772* `response`: Texto de respuesta, truncado en el límite de contenido (60 KB por defecto). Redactado a `<REDACTED>` por defecto. Establezca `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluirlo. Cuando `OTEL_LOG_ASSISTANT_RESPONSES` no está establecido, `OTEL_LOG_USER_PROMPTS` lo controla en su lugar, por lo que establezca `OTEL_LOG_ASSISTANT_RESPONSES=0` para mantener las respuestas redactadas mientras el registro de mensajes está activado782* `response`: Texto de respuesta, truncado en el límite de contenido (60 KB por defecto). Redactado a `<REDACTED>` por defecto. Establezca `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluirlo. Cuando `OTEL_LOG_ASSISTANT_RESPONSES` no está establecido, `OTEL_LOG_USER_PROMPTS` lo controla en su lugar, por lo que establezca `OTEL_LOG_ASSISTANT_RESPONSES=0` para mantener las respuestas redactadas mientras el registro de mensajes está activado

773* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")783* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")

774* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta. Presente solo cuando la API devuelve uno784* `request_id`: ID de solicitud de API, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

775* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Una respuesta de API se persiste como una entrada de transcripción por bloque de contenido; esta es la última, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior785* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Una respuesta de API se persiste como una entrada de transcripción por bloque de contenido; esta es la última, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior

776* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente786* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

777 787 


831* `output_tokens`: Número de tokens de salida841* `output_tokens`: Número de tokens de salida

832* `cache_read_tokens`: Número de tokens leídos de la caché842* `cache_read_tokens`: Número de tokens leídos de la caché

833* `cache_creation_tokens`: Número de tokens utilizados para la creación de caché843* `cache_creation_tokens`: Número de tokens utilizados para la creación de caché

834* `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.844* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

835* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior845* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior

836* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo846* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

837* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente847* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente


857* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP como fallos de conexión.867* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP como fallos de conexión.

858* `duration_ms`: Duración de la solicitud en milisegundos868* `duration_ms`: Duración de la solicitud en milisegundos

859* `attempt`: Número total de intentos realizados, incluida la solicitud inicial (`1` significa que no ocurrieron reintentos)869* `attempt`: Número total de intentos realizados, incluida la solicitud inicial (`1` significa que no ocurrieron reintentos)

860* `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.870* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

861* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Disponible incluso cuando un fallo como un tiempo de espera o error de conexión nunca produjo un `request_id` del servidor; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior871* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Disponible incluso cuando un fallo como un tiempo de espera o error de conexión nunca produjo un `request_id` del servidor; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior

862* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo872* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

863* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente873* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente


879* `event.timestamp`: Marca de tiempo ISO 8601889* `event.timestamp`: Marca de tiempo ISO 8601

880* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)890* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

881* `model`: Identificador de modelo de la solicitud891* `model`: Identificador de modelo de la solicitud

882* `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.892* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

883* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente. Consulte [`api_request`](#api-request-event) para obtener definiciones.893* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente. Consulte [`api_request`](#api-request-event) para obtener definiciones.

884* `speed`: Ya sea `"fast"` cuando [Modo rápido](/docs/es/fast-mode) está activo, o `"normal"`894* `speed`: Ya sea `"fast"` cuando [Modo rápido](/docs/es/fast-mode) está activo, o `"normal"`

885* `attempt`: Número de intento de reintento. El primer intento es `1`.895* `attempt`: Número de intento de reintento. El primer intento es `1`.


934* `body_truncated`: `"true"` cuando ocurrió truncamiento en línea. Ausente en modo de archivo y cuando no ocurrió truncamiento.944* `body_truncated`: `"true"` cuando ocurrió truncamiento en línea. Ausente en modo de archivo y cuando no ocurrió truncamiento.

935* `model`: Identificador de modelo945* `model`: Identificador de modelo

936* `query_source`: Subsistema que emitió la solicitud946* `query_source`: Subsistema que emitió la solicitud

937* `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.947* `request_id`: ID de solicitud de API, como `"req_011..."`, descrito en [Atributos de correlación de eventos](#event-correlation-attributes).

938* `request_body_id`: El `request_body_id` del evento [`api_request_body`](#api-request-body-event) que esta respuesta responde. Requiere Claude Code v2.1.274 o posterior948* `request_body_id`: El `request_body_id` del evento [`api_request_body`](#api-request-body-event) que esta respuesta responde. Requiere Claude Code v2.1.274 o posterior

939* `message.id`: ID de mensaje que la API asignó a la respuesta, el campo `id` del cuerpo de respuesta. Requiere Claude Code v2.1.274 o posterior949* `message.id`: ID de mensaje que la API asignó a la respuesta, el campo `id` del cuerpo de respuesta. Requiere Claude Code v2.1.274 o posterior

940* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Junto con `request_body_id`, vincula un mensaje de transcripción a los cuerpos de solicitud y respuesta detrás de él. Requiere Claude Code v2.1.274 o posterior950* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Junto con `request_body_id`, vincula un mensaje de transcripción a los cuerpos de solicitud y respuesta detrás de él. Requiere Claude Code v2.1.274 o posterior


1563}1573}

1564```1574```

1565 1575 

1566Para confirmar que los eventos llegan, envíe un mensaje en una sesión que se ejecute bajo esta configuración y verifique su SIEM para el evento `claude_code.user_prompt`. Si nada llega, ejecute `claude --debug` y verifique el registro de depuración para errores de exportación `[3P telemetry]`.1576Para confirmar que los eventos llegan, envíe un mensaje en una sesión que se ejecute bajo esta configuración y verifique su SIEM para el evento `claude_code.user_prompt`. Si nada llega, inicie Claude Code con `claude --debug-file <path>` y verifique ese registro para errores de exportación `[3P telemetry]`.

1567 1577 

1568<h2 id="backend-considerations">1578<h2 id="backend-considerations">

1569 Consideraciones de backend1579 Consideraciones de backend


1633 * Los eventos `tool_result` y `tool_decision` incluyen un atributo `tool_parameters` con comandos Bash, nombres de servidor MCP y herramienta, y nombres de skills. Los campos como `full_command` se emiten sin truncar1643 * Los eventos `tool_result` y `tool_decision` incluyen un atributo `tool_parameters` con comandos Bash, nombres de servidor MCP y herramienta, y nombres de skills. Los campos como `full_command` se emiten sin truncar

1634 * Los eventos `tool_result` además incluyen un atributo `tool_input` con rutas de archivo, URLs, patrones de búsqueda y otros argumentos. Los valores individuales superiores a 512 caracteres se truncan y el total está limitado a aproximadamente 4 K caracteres1644 * Los eventos `tool_result` además incluyen un atributo `tool_input` con rutas de archivo, URLs, patrones de búsqueda y otros argumentos. Los valores individuales superiores a 512 caracteres se truncan y el total está limitado a aproximadamente 4 K caracteres

1635 * Los eventos `user_prompt` incluyen el `command_name` verbatim para comandos personalizados, de plugin y MCP1645 * Los eventos `user_prompt` incluyen el `command_name` verbatim para comandos personalizados, de plugin y MCP

1636 * Los spans de traza incluyen el mismo atributo `tool_input` e atributos derivados de entrada como `file_path`, con el mismo truncamiento que `tool_input`1646 * Los [contadores de costo y token](#cost-counter) y los eventos `api_request`, `api_error` y `api_refusal` llevan nombres reales de agente, skill, plugin y servidor MCP y herramienta en sus atributos de atribución

1637* El contenido de herramientas no se registra en spans de trazas por defecto. Para incluirlo, establece `OTEL_LOG_TOOL_CONTENT=1`. El span `claude_code.tool` entonces lleva un [evento de span `tool.output`](#tool-output-span-event) con contenidos de archivo sin procesar y salida de comandos Bash, truncado en el límite de contenido (60 KB por defecto) por atributo. El contenido de herramientas también llega a los spans a través de [`new_context`, cuya puerta difiere por span](#new-context-gates). Configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario1647 * Las trazas de span incluyen el mismo atributo `tool_input` e atributos derivados de entrada como `file_path`, con el mismo truncamiento que `tool_input`

1648* El contenido de herramientas no se registra en spans de trazas por defecto. Para incluirlo, establece `OTEL_LOG_TOOL_CONTENT=1`. El span `claude_code.tool` entonces lleva un [evento de span `tool.output`](#tool-output-span-event) con contenidos de archivo sin procesar, salida de comandos Bash, y lo que devuelven herramientas MCP, WebFetch y WebSearch, truncado en el límite de contenido (60 KB por defecto) por atributo. Los resultados de herramientas MCP, WebFetch y WebSearch requieren Claude Code v2.1.283 o posterior. El contenido de herramientas también llega a los spans a través de [`new_context`, cuya puerta difiere por span](#new-context-gates). Configura tu backend de telemetría para filtrar o redactar estos atributos según sea necesario

1638* Los cuerpos de solicitud y respuesta de la API de Mensajes de Anthropic sin procesar no se registran por defecto. Para incluirlos, establece `OTEL_LOG_RAW_API_BODIES` en tu shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Los cuerpos contienen el historial de conversación completo, incluido el mensaje del sistema, cada turno anterior de usuario y asistente, y resultados de herramientas, así que habilitar esto implica consentimiento a todo lo que las otras banderas de contenido `OTEL_LOG_*` revelarían. Claude Code siempre redacta el contenido de pensamiento extendido de Claude de estos cuerpos, independientemente de otras configuraciones. El valor que estableces determina cómo Claude Code entrega los cuerpos:1649* Los cuerpos de solicitud y respuesta de la API de Mensajes de Anthropic sin procesar no se registran por defecto. Para incluirlos, establece `OTEL_LOG_RAW_API_BODIES` en tu shell, configuración de usuario o configuración administrada. Se ignora en [configuración de proyecto y local](/docs/es/settings-reference#variables-claude-code-ignores-in-env). Los cuerpos contienen el historial de conversación completo, incluido el mensaje del sistema, cada turno anterior de usuario y asistente, y resultados de herramientas, así que habilitar esto implica consentimiento a todo lo que las otras banderas de contenido `OTEL_LOG_*` revelarían. Claude Code siempre redacta el contenido de pensamiento extendido de Claude de estos cuerpos, independientemente de otras configuraciones. El valor que estableces determina cómo Claude Code entrega los cuerpos:

1639 * Con `=1`, Claude Code emite eventos de registro `api_request_body` y `api_response_body` para cada llamada de API. El atributo `body` de los eventos lleva la carga útil serializada en JSON, truncada en el límite de contenido (60 KB por defecto)1650 * Con `=1`, Claude Code emite eventos de registro `api_request_body` y `api_response_body` para cada llamada de API. El atributo `body` de los eventos lleva la carga útil serializada en JSON, truncada en el límite de contenido (60 KB por defecto)

1640 * Con `=file:<dir>`, Claude Code escribe cuerpos sin truncar en archivos `.request.json` y `.response.json` bajo ese directorio, y los eventos llevan una ruta `body_ref` en su lugar del cuerpo en línea. Envía el directorio con un recopilador de registros o sidecar en lugar de a través del flujo de telemetría.1651 * Con `=file:<dir>`, Claude Code escribe cuerpos sin truncar en archivos `.request.json` y `.response.json` bajo ese directorio, y los eventos llevan una ruta `body_ref` en su lugar del cuerpo en línea. Envía el directorio con un recopilador de registros o sidecar en lugar de a través del flujo de telemetría.

overview.md +3 −1

Details

18 <Tab title="Terminal">18 <Tab title="Terminal">

19 La CLI completa para trabajar con Claude Code directamente en tu terminal. Edita archivos, ejecuta comandos y gestiona tu proyecto completo desde la línea de comandos.19 La CLI completa para trabajar con Claude Code directamente en tu terminal. Edita archivos, ejecuta comandos y gestiona tu proyecto completo desde la línea de comandos.

20 20 

21 Para instalar Claude Code, utilice uno de los siguientes métodos:21 Para instalar Claude Code, abra una terminal y ejecute el comando para su sistema. Si nunca ha utilizado una terminal antes, la [guía de terminal](/docs/es/terminal-guide) muestra cómo abrir una y pegar el comando.

22 22 

23 <Tabs>23 <Tabs>

24 <Tab title="Instalación nativa (recomendado)">24 <Tab title="Instalación nativa (recomendado)">


40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

41 ```41 ```

42 42 

43 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

44 

43 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.45 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.

44 46 

45 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.47 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.

permission-modes.md +145 −105

Details

8 8 

9Un modo de permisos establece qué acciones puede realizar Claude en una sesión sin pedirle permiso primero. En modo Manual, Claude Code se detiene y le solicita aprobación antes de la mayoría de acciones que editan archivos, ejecutan comandos de shell o alcanzan la red. En [modo automático](#eliminate-prompts-with-auto-mode), un segundo modelo, el clasificador, revisa acciones en su lugar; [cómo el clasificador evalúa acciones](#how-the-classifier-evaluates-actions) enumera qué acciones revisa y cuáles se omiten.9Un modo de permisos establece qué acciones puede realizar Claude en una sesión sin pedirle permiso primero. En modo Manual, Claude Code se detiene y le solicita aprobación antes de la mayoría de acciones que editan archivos, ejecutan comandos de shell o alcanzan la red. En [modo automático](#eliminate-prompts-with-auto-mode), un segundo modelo, el clasificador, revisa acciones en su lugar; [cómo el clasificador evalúa acciones](#how-the-classifier-evaluates-actions) enumera qué acciones revisa y cuáles se omiten.

10 10 

11En planes Pro, Max y Team, el modo de permisos inicial integrado es modo automático. [Qué modo inicia una sesión](#which-mode-a-session-starts-in) cubre las superficies y configuraciones que cambian el modo de permisos inicial. También puede cambiar el modo de permisos de una sesión en ejecución en cualquier momento.11Con Claude Code v2.1.283 o posterior, el modo automático es el modo de permisos inicial integrado para sesiones de terminal interactivo y VS Code. En versiones anteriores, es el modo de permisos inicial integrado solo en planes Pro, Max y Team. [Qué modo inicia una sesión](#which-mode-a-session-starts-in) cubre las superficies y configuraciones que cambian el modo de permisos inicial. También puede cambiar el modo de permisos de una sesión en ejecución en cualquier momento.

12 12 

13<h2 id="available-modes">13<h2 id="available-modes">

14 Modos disponibles14 Modos disponibles


57| Revisar cada acción usted mismo | Modo Manual: `claude --permission-mode default` | Ninguno | Trabajo sensible, código desconocido |57| Revisar cada acción usted mismo | Modo Manual: `claude --permission-mode default` | Ninguno | Trabajo sensible, código desconocido |

58| Iterar localmente con menos avisos, sin un clasificador | Modo Manual más el sandbox Bash en [modo de permitir automático](/docs/es/sandboxing#sandbox-modes): `claude --permission-mode default`, luego ejecute `/sandbox` y seleccione permitir automático | El sandbox Bash integrado, en macOS, Linux y WSL2 | Las reglas de denegación aún se aplican, y las reglas de solicitud que nombran un comando, como `Bash(git push *)`, aún solicitan. Para activar el sandbox desde un archivo de configuración en su lugar, establezca [`sandbox.enabled`](/docs/es/settings-reference#sandbox-enabled) en `true` |58| Iterar localmente con menos avisos, sin un clasificador | Modo Manual más el sandbox Bash en [modo de permitir automático](/docs/es/sandboxing#sandbox-modes): `claude --permission-mode default`, luego ejecute `/sandbox` y seleccione permitir automático | El sandbox Bash integrado, en macOS, Linux y WSL2 | Las reglas de denegación aún se aplican, y las reglas de solicitud que nombran un comando, como `Bash(git push *)`, aún solicitan. Para activar el sandbox desde un archivo de configuración en su lugar, establezca [`sandbox.enabled`](/docs/es/settings-reference#sandbox-enabled) en `true` |

59| Explorar antes de cambiar nada | `claude --permission-mode plan` | Ninguno | Claude Code bloquea ediciones hasta que [apruebe un plan](#review-and-approve-a-plan) |59| Explorar antes de cambiar nada | `claude --permission-mode plan` | Ninguno | Claude Code bloquea ediciones hasta que [apruebe un plan](#review-and-approve-a-plan) |

60| Trabajar sin intervención en modo automático | `claude --permission-mode auto`, el [modo de permisos inicial integrado](#which-mode-a-session-starts-in) en Pro, Max y Team | Ninguno; un sandbox o contenedor agrega defensa en profundidad | Requiere un [modelo compatible](#eliminate-prompts-with-auto-mode), y su organización puede [desactivar modo automático](#eliminate-prompts-with-auto-mode) |60| Trabajar sin intervención en modo automático | `claude --permission-mode auto`, el [modo de permisos inicial integrado](#which-mode-a-session-starts-in) con v2.1.283 o posterior | Ninguno; un sandbox o contenedor agrega defensa en profundidad | Requiere un [modelo compatible](#eliminate-prompts-with-auto-mode), y su organización puede [desactivar modo automático](#eliminate-prompts-with-auto-mode) |

61| Ejecutar en CI con una lista de permitidos exacta | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Ninguno más allá de lo que proporciona su ejecutor de CI | [Cloud sessions](/docs/es/claude-code-on-the-web) ignora `dontAsk` de archivos de configuración |61| Ejecutar en CI con una lista de permitidos exacta | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Ninguno más allá de lo que proporciona su ejecutor de CI | [Cloud sessions](/docs/es/claude-code-on-the-web) ignora `dontAsk` de archivos de configuración |

62| Ejecutar completamente desatendido dentro de un contenedor | `claude -p "<prompt>" --dangerously-skip-permissions` | Requerido: un contenedor, máquina virtual o el [tiempo de ejecución del sandbox](/docs/es/sandbox-environments#sandbox-runtime); en Linux y macOS, ejecútelo como un [usuario no root](#skip-all-checks-with-bypasspermissions-mode) | Cloud sessions ignora este modo de archivos de configuración. En esta ejecución `-p`, las [pocas llamadas que aún solicitarían](#skip-all-checks-with-bypasspermissions-mode) se deniegan en su lugar |62| Ejecutar completamente desatendido dentro de un contenedor | `claude -p "<prompt>" --dangerously-skip-permissions` | Requerido: un contenedor, máquina virtual o el [tiempo de ejecución del sandbox](/docs/es/sandbox-environments#sandbox-runtime); en Linux y macOS, ejecútelo como un [usuario no root](#skip-all-checks-with-bypasspermissions-mode) | Cloud sessions ignora este modo de archivos de configuración. En esta ejecución `-p`, las [pocas llamadas que aún solicitarían](#skip-all-checks-with-bypasspermissions-mode) se deniegan en su lugar |

63 63 


81 81 

82El valor predeterminado integrado `auto` requiere Claude Code v2.1.228 o posterior en macOS, Linux y WSL, y v2.1.233 o posterior en Windows nativo. En versiones anteriores, el valor predeterminado integrado es Manual.82El valor predeterminado integrado `auto` requiere Claude Code v2.1.228 o posterior en macOS, Linux y WSL, y v2.1.233 o posterior en Windows nativo. En versiones anteriores, el valor predeterminado integrado es Manual.

83 83 

84El valor predeterminado integrado depende de cómo ejecute Claude Code, de su plan y de si Claude Code pudo obtener sus banderas de características. La primera fila que coincida con su sesión se aplica. La tabla cubre sesiones que inicia en una terminal o a través de la extensión de VS Code; para la aplicación de escritorio y claude.ai, consulte las pestañas Desktop y Web en [Cambiar modos de permisos](#switch-permission-modes).84El valor predeterminado integrado depende de cómo ejecute Claude Code. La primera fila que coincida con su sesión se aplica. La tabla cubre sesiones que inicia en una terminal o a través de la extensión de VS Code; para la aplicación de escritorio y claude.ai, consulte las pestañas Desktop y Web en [Cambiar modos de permisos](#switch-permission-modes).

85 85 

86| Cómo ejecuta Claude Code | Modo de permisos inicial integrado |86| Cómo ejecuta Claude Code | Modo de permisos inicial integrado |

87| :- | :- |87| :- | :- |

88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |88| Cualquier archivo de configuración establece `disableAutoMode` en `"disable"` | `default` |

89| La [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) está desactivada | `default` |

90| Su [primera sesión después de instalar Claude Code o actualizar](/docs/es/env-vars#first-session-after-an-install-or-upgrade) a una versión que agrega este valor predeterminado, a menos que, después de una instalación nueva, Claude Code obtenga las banderas a tiempo | `default` |

91| `claude -p` o el [SDK de Agent](/docs/es/agent-sdk/permissions) | `default` |89| `claude -p` o el [SDK de Agent](/docs/es/agent-sdk/permissions) | `default` |

92| Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry, [Claude Platform en AWS](/docs/es/claude-platform-on-aws) o una sesión de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada | `default` |90| En una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` con Claude Code v2.1.283 o posterior; en versiones anteriores, `auto` en planes Pro, Max o Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), y `default` en caso contrario |

93| Un plan Pro, Max o Team, en una terminal o a través de la [extensión de VS Code](/docs/es/vs-code) | `auto` |

94| Un plan Enterprise o una clave API de Claude Console | `default` |

95 91 

96Cuando la obtención de banderas de características está desactivada, o en una [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade) donde las banderas aún no han llegado, la extensión de VS Code ignora todos los archivos de configuración al elegir el modo de permisos inicial.92En su [primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade), Claude Code puede elegir el modo de permisos inicial antes de que lleguen sus banderas de características. Esa sesión puede iniciarse en un modo de permisos diferente al que proporciona la tabla, y su siguiente sesión coincide con la tabla.

97 93 

98Cuando la bandera, un archivo de configuración o el valor predeterminado integrado selecciona `auto` pero el modo automático no está disponible para la sesión, Claude Code inicia la sesión en Manual en su lugar. El modo automático no está disponible cuando la sesión no cumple con los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode), como un archivo de configuración desactivándolo o un modelo que no lo admite, o cuando Anthropic lo ha desactivado temporalmente del lado del servidor.94Cuando la bandera, un archivo de configuración o el valor predeterminado integrado selecciona `auto` pero el modo automático no está disponible para la sesión, Claude Code inicia la sesión en Manual en su lugar. El modo automático no está disponible cuando la sesión no cumple con los [requisitos de disponibilidad](#eliminate-prompts-with-auto-mode), como un archivo de configuración desactivándolo o un modelo que no lo admite, o cuando Anthropic lo ha desactivado temporalmente del lado del servidor.

99 95 


177 173 

178 1. `claudeCode.initialPermissionMode`174 1. `claudeCode.initialPermissionMode`

179 2. El modo que seleccionó por última vez del indicador de modo, si fue Manual, Editar automáticamente o Auto. Seleccionar Plan u Omitir permisos se aplica solo a esa conversación175 2. El modo que seleccionó por última vez del indicador de modo, si fue Manual, Editar automáticamente o Auto. Seleccionar Plan u Omitir permisos se aplica solo a esa conversación

180 3. `permissions.defaultMode` de [configuración administrada](/docs/es/managed-settings) o `~/.claude/settings.json`, en planes Pro, Max y Team con [obtención de banderas de características](#which-mode-a-session-starts-in) disponible176 3. `permissions.defaultMode` de [configuración administrada](/docs/es/managed-settings) o `~/.claude/settings.json`

181 4. El [valor predeterminado integrado](#which-mode-a-session-starts-in) para su plan, proveedor y configuración de organización177 4. El [valor predeterminado integrado](#which-mode-a-session-starts-in) para su plan, proveedor y configuración de organización

182 178 

183 La extensión nunca lee `.claude/settings.json` o `.claude/settings.local.json` de un proyecto para el modo de permisos inicial, y en conversaciones que no cumplen con las condiciones del elemento 3 no lee ningún archivo de configuración en absoluto. Cuando `claudeCode.claudeProcessWrapper` está establecido, los elementos 3 y 4 tampoco se aplican: esas conversaciones comienzan en Manual a menos que el elemento 1 o el elemento 2 establezca un modo de permisos.179 La extensión nunca lee `.claude/settings.json` o `.claude/settings.local.json` de un proyecto para el modo de permisos inicial. Cuando `claudeCode.claudeProcessWrapper` está establecido, los elementos 3 y 4 tampoco se aplican: esas conversaciones comienzan en Manual a menos que el elemento 1 o el elemento 2 establezca un modo de permisos.

180 

181 Antes de v2.1.283, el elemento 3 se aplicaba solo en planes Pro, Max y Team en sesiones que [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching).

184 182 

185 Auto aparece en el indicador de modo cuando [modo automático está disponible](#eliminate-prompts-with-auto-mode).183 Auto aparece en el indicador de modo cuando [modo automático está disponible](#eliminate-prompts-with-auto-mode).

186 184 


213 <Tab title="Web and mobile">211 <Tab title="Web and mobile">

214 Use el menú desplegable de modo junto al cuadro de solicitud en [claude.ai/code](https://claude.ai/code) o en la aplicación móvil. Los avisos de permisos aparecen en claude.ai para aprobación. Qué modos aparecen depende de dónde se ejecute la sesión:212 Use el menú desplegable de modo junto al cuadro de solicitud en [claude.ai/code](https://claude.ai/code) o en la aplicación móvil. Los avisos de permisos aparecen en claude.ai para aprobación. Qué modos aparecen depende de dónde se ejecute la sesión:

215 213 

216 * **Sesiones en la nube** en [Claude Code en la web](/docs/es/claude-code-on-the-web): Aceptar ediciones, Plan y Auto. Aceptar ediciones corresponde al modo `default`: las sesiones en la nube aprueban previamente ediciones de archivos independientemente del modo, por lo que el menú desplegable muestra Aceptar ediciones en lugar de Manual. Las sesiones en la nube aún respetan `defaultMode: "acceptEdits"` de la configuración. El modo Auto aparece solo cuando su organización lo permite y el modelo seleccionado lo admite. Omitir permisos no está disponible.214 * **[Sesiones en la nube](/docs/es/claude-code-on-the-web)**: Aceptar ediciones, Plan y Auto. Aceptar ediciones corresponde al modo `default`: las sesiones en la nube aprueban previamente ediciones de archivos independientemente del modo, por lo que el menú desplegable muestra Aceptar ediciones en lugar de Manual. Las sesiones en la nube aún respetan `defaultMode: "acceptEdits"` de la configuración. El modo Auto aparece solo cuando su organización lo permite y el modelo seleccionado lo admite. Omitir permisos no está disponible.

217 * **Sesiones de [Control Remoto](/docs/es/remote-control)** en su máquina local: Manual, Aceptar ediciones y Plan. No puede seleccionar Auto u Omitir permisos desde la aplicación.215 * **Sesiones de [Control Remoto](/docs/es/remote-control)** en su máquina local: Manual, Aceptar ediciones y Plan para una sesión que inició usted mismo, y no puede seleccionar Auto u Omitir permisos desde la aplicación. Para un hilo de proyecto que se ejecuta en su computadora, consulte [Ejecutar un hilo en su propia computadora](/docs/es/claude-projects#run-a-thread-on-your-own-computer).

218 * Excepto por Omitir permisos, el menú desplegable muestra el modo de permisos en el que se encuentra la sesión local, incluido uno establecido desde la terminal. Se actualiza cuando el modo de permisos cambia en la aplicación o en la terminal. La sesión nunca reporta Omitir permisos a claude.ai, por lo que cambiar a él desde la terminal no cambia lo que muestra el menú desplegable.216 * Excepto por Omitir permisos, el menú desplegable muestra el modo de permisos en el que se encuentra la sesión local, incluido uno establecido desde la terminal. Se actualiza cuando el modo de permisos cambia en la aplicación o en la terminal. La sesión nunca reporta Omitir permisos a claude.ai, por lo que cambiar a él desde la terminal no cambia lo que muestra el menú desplegable.

219 * Las sesiones alojadas por la [aplicación de desktop](/docs/es/desktop) o la [extensión de VS Code](/docs/es/vs-code) reportan cambios de modo de permisos a claude.ai a medida que suceden, igual que las sesiones alojadas en una terminal.217 * Las sesiones alojadas por la [aplicación de desktop](/docs/es/desktop) o la [extensión de VS Code](/docs/es/vs-code) reportan cambios de modo de permisos a claude.ai a medida que suceden, igual que las sesiones alojadas en una terminal.

220 * Antes de v2.1.202, las sesiones conectadas con `/remote-control` o `claude --remote-control` no reportaban su modo de permisos en absoluto, por lo que claude.ai y la aplicación móvil podrían mostrar un modo de permisos en el que la sesión no estaba. La discrepancia afectó solo la etiqueta. Claude Code generó avisos de permisos desde el modo de permisos real de la sesión, y aún aparecieron en la aplicación para aprobación.218 * Antes de v2.1.202, las sesiones conectadas con `/remote-control` o `claude --remote-control` no reportaban su modo de permisos en absoluto, por lo que claude.ai y la aplicación móvil podrían mostrar un modo de permisos en el que la sesión no estaba. La discrepancia afectó solo la etiqueta. Claude Code generó avisos de permisos desde el modo de permisos real de la sesión, y aún aparecieron en la aplicación para aprobación.


233 231 

234El modo `acceptEdits` permite que Claude cree y edite archivos en su directorio de trabajo sin solicitar. La barra de estado muestra `⏵⏵ accept edits on` mientras este modo está activo.232El modo `acceptEdits` permite que Claude cree y edite archivos en su directorio de trabajo sin solicitar. La barra de estado muestra `⏵⏵ accept edits on` mientras este modo está activo.

235 233 

236Además de ediciones de archivos, el modo `acceptEdits` aprueba automáticamente comandos Bash comunes del sistema de archivos: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp` y `sed`. Estos comandos también se aprueban automáticamente cuando van precedidos de variables de entorno seguras como `LANG=C` o `NO_COLOR=1`, o envoltorios de procesos como `timeout`, `nice` o `nohup`. Al igual que las ediciones de archivos, la aprobación automática se aplica solo a rutas dentro de su directorio de trabajo o `additionalDirectories`. Las rutas fuera de ese alcance, las escrituras en [rutas protegidas](#protected-paths), las eliminaciones `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths) y todos los demás comandos Bash excepto el [conjunto integrado de solo lectura](/docs/es/permissions#read-only-commands) aún solicitan.234Además de ediciones de archivos, el modo `acceptEdits` aprueba automáticamente comandos Bash comunes del sistema de archivos: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp` y `sed`. Estos comandos también se aprueban automáticamente cuando van precedidos de variables de entorno seguras como `LANG=C` o `NO_COLOR=1`, o envoltorios de procesos como `timeout`, `nice` o `nohup`. Al igual que las ediciones de archivos, la aprobación automática se aplica solo a rutas dentro de su directorio de trabajo o `additionalDirectories`.

235 

236Cada ruta también pasa por la [verificación de enlaces simbólicos](/docs/es/permissions#symlinks), por lo que una escritura que se resuelve fuera de ese alcance tampoco se aprueba automáticamente. Las rutas fuera de ese alcance, las escrituras en [rutas protegidas](#protected-paths), las eliminaciones `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths) y todos los demás comandos Bash excepto el [conjunto integrado de solo lectura](/docs/es/permissions#read-only-commands) aún solicitan.

237 237 

238Cuando la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) está habilitada, el modo `acceptEdits` también aprueba automáticamente `Set-Content`, `Add-Content`, `Clear-Content` y `Remove-Item` en rutas dentro del alcance, junto con sus alias comunes. Se aplican las mismas reglas de alcance y ruta protegida, y `Remove-Item` obtiene [su propia verificación](#remove-item-in-powershell). Un argumento posicional que contiene un carácter de comilla, como el apóstrofo en `Set-Content .\notes.txt "It's done"`, aún solicita incluso en rutas dentro del alcance, porque Claude Code no puede validar estáticamente un argumento cuyas lecturas entrecomilladas y sin entrecomillar difieren. Pase el contenido a través de un parámetro nombrado como `-Value` para evitar el aviso.238Cuando la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool) está habilitada, el modo `acceptEdits` también aprueba automáticamente `Set-Content`, `Add-Content`, `Clear-Content` y `Remove-Item` en rutas dentro del alcance, junto con sus alias comunes. Se aplican las mismas reglas de alcance y ruta protegida, y `Remove-Item` obtiene [su propia verificación](#remove-item-in-powershell). Un argumento posicional que contiene un carácter de comilla, como el apóstrofo en `Set-Content .\notes.txt "It's done"`, aún solicita incluso en rutas dentro del alcance, porque Claude Code no puede validar estáticamente un argumento cuyas lecturas entrecomilladas y sin entrecomillar difieren. Pase el contenido a través de un parámetro nombrado como `-Value` para evitar el aviso.

239 239 


249 Analice antes de editar con modo plan249 Analice antes de editar con modo plan

250</h2>250</h2>

251 251 

252El modo plan le indica a Claude que investigue y proponga cambios sin realizarlos. Claude lee archivos, ejecuta comandos de shell para explorar y escribe un plan, pero no edita su fuente. Excepto en sesiones con [permisos de omisión disponibles](#skip-all-checks-with-bypasspermissions-mode), las ediciones permanecen bloqueadas hasta que apruebe el plan.252El modo plan le indica a Claude que investigue y proponga cambios sin realizarlos. Claude lee archivos, ejecuta comandos de shell para explorar y escribe un plan, pero no edita su fuente. Excepto en sesiones interactivas de terminal con [permisos de omisión disponibles](#skip-all-checks-with-bypasspermissions-mode), las ediciones permanecen bloqueadas hasta que apruebe el plan.

253 

254Lo que sucede con un comando de shell durante la planificación depende de la sesión, y se aplica el primero de estos casos que coincida:

253 255 

254Cuando [modo automático](/docs/es/auto-mode-config) está disponible y la configuración `useAutoModeDuringPlan` está activada, que lo está de forma predeterminada, el clasificador revisa comandos de shell durante la planificación en lugar de solicitarle. Los comandos aprobados se ejecutan, y los rechazados se bloquean. De lo contrario, los comandos fuera del [conjunto integrado de solo lectura](/docs/es/permissions#read-only-commands) solicitan aprobación, incluido cuando el [modo de permitir automático](/docs/es/sandboxing#sandbox-modes) del sandbox está habilitado. En sesiones con permisos de omisión disponibles, ni el clasificador ni un aviso se aplican a comandos de planificación; [Omitir todas las comprobaciones con modo bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) cubre las pocas cosas que aún solicitan allí. En v2.1.212 a v2.1.217, las sesiones sin permisos de omisión solicitaban cada comando fuera del conjunto de solo lectura, independientemente de si el modo automático estaba disponible.256* **Sesiones interactivas de terminal con permisos de omisión disponibles**: ni el clasificador ni un aviso se aplican a comandos de planificación. [Omitir todas las comprobaciones con modo bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) cubre las pocas cosas que aún solicitan allí.

257* **[Modo automático](/docs/es/auto-mode-config) disponible y la configuración `useAutoModeDuringPlan` activada**, que lo está de forma predeterminada: el clasificador revisa comandos de shell distintos de [eliminaciones de ruta crítica](#critical-paths) en lugar de solicitarle. Los comandos aprobados se ejecutan, y los rechazados se bloquean.

258* **Modo automático no disponible, o `useAutoModeDuringPlan` desactivado**: los comandos fuera del [conjunto integrado de solo lectura](/docs/es/permissions#read-only-commands) solicitan aprobación, incluido cuando el [modo de permitir automático](/docs/es/sandboxing#sandbox-modes) del sandbox está habilitado.

255 259 

256Ingrese al modo plan presionando `Shift+Tab` o prefijando un único aviso con `/plan`. También puede comenzar en modo plan desde la CLI:260Ingrese al modo plan presionando `Shift+Tab` o prefijando un único aviso con `/plan`. También puede comenzar en modo plan desde la CLI:

257 261 


289 293 

290El modo automático permite que Claude se ejecute sin solicitudes de permiso rutinarias. Un modelo clasificador separado revisa las acciones antes de que se ejecuten, bloqueando cualquier cosa que escale más allá de su solicitud, apunte a infraestructura no reconocida o parezca impulsada por contenido hostil que Claude leyó. Las [reglas de solicitud](/docs/es/permissions#manage-permissions) explícitas aún fuerzan una solicitud.294El modo automático permite que Claude se ejecute sin solicitudes de permiso rutinarias. Un modelo clasificador separado revisa las acciones antes de que se ejecuten, bloqueando cualquier cosa que escale más allá de su solicitud, apunte a infraestructura no reconocida o parezca impulsada por contenido hostil que Claude leyó. Las [reglas de solicitud](/docs/es/permissions#manage-permissions) explícitas aún fuerzan una solicitud.

291 295 

292En los planes Pro, Max y Team, el modo automático es el [modo de permiso de inicio integrado](#which-mode-a-session-starts-in).296Con Claude Code v2.1.283 o posterior, el modo automático es el [modo de permiso de inicio integrado](#which-mode-a-session-starts-in) para sesiones de terminal interactivo y VS Code en todos los planes y proveedores. En versiones anteriores, es el modo de permiso de inicio integrado solo en planes Pro, Max y Team.

293 297 

294El clasificador también revisa cada mensaje que Claude envía a otro agente con [`SendMessage`](/docs/es/tools-reference), ya sea texto sin formato o un mensaje de [equipo de agentes](/docs/es/agent-teams) estructurado, antes de que Claude Code lo entregue, tanto en modo automático como en [modo de plan mientras el clasificador revisa comandos](#analyze-before-you-edit-with-plan-mode); la revisión de envío requiere Claude Code v2.1.222 o posterior.298El clasificador también revisa cada mensaje que Claude envía a otro agente con [`SendMessage`](/docs/es/tools-reference), ya sea texto sin formato o un mensaje de [equipo de agentes](/docs/es/agent-teams) estructurado, antes de que Claude Code lo entregue, tanto en modo automático como en [modo de plan mientras el clasificador revisa comandos](#analyze-before-you-edit-with-plan-mode); la revisión de envío requiere Claude Code v2.1.222 o posterior.

295 299 

296El clasificador también revisa y aprueba o bloquea las eliminaciones `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths), como `rm -rf /` y `rm -rf ~`, incluso cuando la eliminación está dentro de sustitución de comandos o procesos.300De forma predeterminada, el clasificador no revisa las eliminaciones de `rm` y `rmdir` dirigidas a una ruta crítica, como `rm -rf /` o `rm -rf ~`. [Rutas críticas](#critical-paths) cubre lo que sucede con ellas en cada modo de permiso.

297 301 

298El modo automático también anima a Claude a seguir trabajando sin detenerse para hacer preguntas aclaratorias, aunque Claude aún pregunta cuando su solicitud o una skill depende explícitamente de ello. Para un comportamiento más autónomo en un modo que aún le solicita, establezca el [estilo de salida proactivo](/docs/es/output-styles) en su lugar.302El modo automático también anima a Claude a seguir trabajando sin detenerse para hacer preguntas aclaratorias, aunque Claude aún pregunta cuando su solicitud o una habilidad depende explícitamente de ello. Para un comportamiento más autónomo en un modo que aún le solicita, establezca el [estilo de salida proactivo](/docs/es/output-styles) en su lugar.

299 303 

300<Warning>304<Warning>

301 El modo automático reduce las solicitudes de permiso pero no garantiza seguridad. Úselo para tareas donde confía en la dirección general, no como reemplazo de revisión en operaciones sensibles.305 El modo automático reduce las solicitudes de permiso pero no garantiza la seguridad. Úselo para tareas donde confía en la dirección general, no como reemplazo de la revisión en operaciones sensibles.

302</Warning>306</Warning>

303 307 

304El modo automático está disponible solo cuando su cuenta cumple con todos estos requisitos:308El modo automático está disponible solo cuando su cuenta cumple con todos estos requisitos:

305 309 

306* **Plan**: Todos los planes.310* **Plan**: Todos los planes.

307* **Organización**: en Team y Enterprise, el modo automático está disponible de forma predeterminada. Los administradores pueden desactivarlo para la organización estableciendo `permissions.disableAutoMode` en `"disable"` en [configuración administrada](/docs/es/managed-settings).311* **Organización**: en Team y Enterprise, el modo automático está disponible de forma predeterminada. Los administradores pueden desactivarlo para la organización estableciendo `permissions.disableAutoMode` en `"disable"` en [configuración administrada](/docs/es/managed-settings).

308* **Modelo**: en la API de Anthropic y [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Claude Opus 4.6 o posterior, Sonnet 4.6 o posterior, o un [modelo Fable](/docs/es/model-config#work-with-fable). En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada, solo Claude Sonnet 5, Opus 4.7 o posterior y los modelos Fable. Los modelos más antiguos, incluidos Sonnet 4.5, Opus 4.5, Haiku y modelos claude-3, no son compatibles en ningún proveedor.312* **Modelo**: en la API de Anthropic y [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Claude Opus 4.6 o posterior, Sonnet 4.6 o posterior, o un [modelo Fable](/docs/es/model-config#work-with-fable). En Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada, solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior y los modelos Fable. Los modelos más antiguos, incluidos Sonnet 4.5, Opus 4.5, Haiku y modelos claude-3, no son compatibles en ningún proveedor.

309* **Proveedor**: disponible de forma predeterminada en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones de puerta de enlace de aplicaciones Claude con sesión iniciada.313* **Proveedor**: disponible de forma predeterminada en la API de Anthropic, Claude Platform en AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry y sesiones de puerta de enlace de aplicaciones Claude con sesión iniciada.

310 314 

311Si Claude Code informa que el modo automático no está disponible, primero verifique estos requisitos y si algún archivo de configuración establece [`disableAutoMode`](/docs/es/settings-reference#disableautomode). Anthropic también puede haber desactivado el modo automático del lado del servidor, o el servidor puede haber rechazado el modo automático para su cuenta. Una sesión que recibió cualquiera de estas respuestas mantiene el modo automático desactivado hasta que finaliza la sesión, así que inicie una nueva sesión más tarde.315Si Claude Code informa que el modo automático no está disponible, primero verifique estos requisitos y si algún archivo de configuración establece [`disableAutoMode`](/docs/es/settings-reference#disableautomode). Anthropic también puede haber desactivado el modo automático del lado del servidor, o el servidor puede haber rechazado el modo automático para su cuenta. Una sesión que recibió cualquiera de estas respuestas mantiene el modo automático desactivado hasta que finaliza la sesión, así que inicie una nueva sesión más tarde.


318 Modo automático en Bedrock, Agent Platform o Foundry322 Modo automático en Bedrock, Agent Platform o Foundry

319</h3>323</h3>

320 324 

321En sesiones de [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático aparece en el ciclo `Shift+Tab` de forma predeterminada. Aparecer en el ciclo no cambia el modo de permiso en el que comienza una sesión: en estos proveedores, las sesiones de terminal comienzan en su [`defaultMode`](/docs/es/settings-reference#permissions-defaultmode), que es Manual a menos que lo cambie, y las conversaciones en la [extensión VS Code](/docs/es/vs-code) comienzan en Manual a menos que `claudeCode.initialPermissionMode` o un modo que eligió en la extensión establezca uno. Solo Claude Sonnet 5, Opus 4.7 o posterior y los modelos Fable son compatibles en estos proveedores.325En [Amazon Bedrock](/docs/es/amazon-bedrock), [Google Cloud's Agent Platform](/docs/es/google-vertex-ai), [Microsoft Foundry](/docs/es/microsoft-foundry) y sesiones de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada, el modo automático está disponible de forma predeterminada. Con Claude Code v2.1.283 o posterior, también es el [modo de permiso de inicio integrado](#which-mode-a-session-starts-in) para sesiones de terminal interactivo y [VS Code](/docs/es/vs-code). Para elegir el modo de permiso de inicio usted mismo, establezca `permissions.defaultMode` como [Comenzar en un modo de permiso diferente](#start-in-a-different-mode) describe, o seleccione un modo de permiso del indicador de modo de la extensión VS Code.

322 326 

323Para hacer que el modo automático sea el modo de permiso de inicio predeterminado, establezca `"permissions": {"defaultMode": "auto"}` en la configuración de usuario o administrada. En sesiones que la extensión VS Code inicia, seleccione **Auto** del indicador de modo en su lugar. [Cambiar modos de permiso](#switch-permission-modes) cubre qué anula esa selección.327Solo Claude Sonnet 5 o posterior, Opus 4.7 o posterior y los modelos Fable son compatibles en estos proveedores. En cualquier otro modelo, la sesión comienza en Manual en su lugar.

324 

325El checkup [`/doctor`](/docs/es/commands#all-commands) propone este valor predeterminado de configuración de usuario en estos proveedores de la misma manera que lo hace en la API de Anthropic.

326 328 

327Para evitar que los desarrolladores usen el modo automático, establezca `disableAutoMode` en `"disable"` en [configuración administrada](/docs/es/managed-settings). Esto elimina `auto` del ciclo `Shift+Tab`, y una sesión iniciada con `--permission-mode auto` comienza en Manual en su lugar. Una sesión ya en ejecución en modo automático lo abandona cuando la configuración llega a esa sesión desde una [fuente implementada por administrador](/docs/es/managed-settings#which-managed-source-claude-code-uses), y muestra `auto mode disabled by settings`. Antes de v2.1.251, una sesión en ejecución mantenía el modo automático hasta que finalizaba.329Para evitar que los desarrolladores usen el modo automático, establezca `disableAutoMode` en `"disable"` en [configuración administrada](/docs/es/managed-settings). Esto elimina `auto` del ciclo `Shift+Tab`, y una sesión iniciada con `--permission-mode auto` comienza en Manual en su lugar. Una sesión ya en ejecución en modo automático lo abandona cuando la configuración llega a esa sesión desde una [fuente implementada por administrador](/docs/es/managed-settings#which-managed-source-claude-code-uses), y muestra `auto mode disabled by settings`. Antes de v2.1.251, una sesión en ejecución mantenía el modo automático hasta que finalizaba.

328 330 

329En v2.1.158 a v2.1.206, el modo automático estaba desactivado en estos proveedores hasta que establecía `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, y Claude Code ignoraba `defaultMode: "auto"` en estos proveedores a menos que la variable también estuviera establecida. La variable aún se acepta por compatibilidad y no tiene efecto desde v2.1.207 en adelante.331En v2.1.158 a v2.1.206, el modo automático estaba desactivado en estos proveedores hasta que estableciera `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, y Claude Code ignoraba `defaultMode: "auto"` en estos proveedores a menos que la variable también estuviera establecida. La variable aún se acepta por compatibilidad y no tiene efecto desde v2.1.207 en adelante.

330 332 

331<h3 id="server-side-classifier-review">333<h3 id="server-side-classifier-review">

332 Revisión del clasificador del lado del servidor334 Revisión del clasificador del lado del servidor

333</h3>335</h3>

334 336 

335En modo automático, Claude Code puede solicitar al servidor que revise las acciones que [el orden de decisión](#how-the-classifier-evaluates-actions) envía para revisión, como parte de las solicitudes del modelo de la sesión, en lugar de enviar sus propias solicitudes del clasificador. Estas sesiones solicitan:337En modo automático, Claude Code puede pedirle al servidor que verifique las acciones que [el orden de decisión](#how-the-classifier-evaluates-actions) envía para revisión, como parte de las solicitudes del modelo de la sesión, en lugar de enviar sus propias solicitudes del clasificador. Estas sesiones preguntan:

336 338 

337* **Una conexión directa a la API de Anthropic**: en una sesión de terminal interactiva, en todos los planes de claude.ai y en cuentas que usan la API de Claude, a medida que Anthropic lo implementa. Requiere Claude Code v2.1.271 o posterior en planes Pro, Max y Team, y v2.1.278 o posterior en planes Enterprise y cuentas de API de Claude. Desde v2.1.282, una sesión que [no obtiene banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), por ejemplo porque desactivó la telemetría, solicita al servidor de forma predeterminada en cualquier tipo de sesión.339* **Una conexión directa a la API de Anthropic**: en una sesión de terminal interactivo, en todos los planes de claude.ai y en cuentas que usan la API de Claude, a medida que Anthropic lo implementa. Requiere Claude Code v2.1.271 o posterior en planes Pro, Max y Team, y v2.1.278 o posterior en planes Enterprise y cuentas de API de Claude. Desde v2.1.282, una sesión que [no obtiene indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), por ejemplo porque desactivó la telemetría, pregunta al servidor de forma predeterminada en cualquier tipo de sesión.

338* **Un proveedor de nube, o una puerta de enlace LLM o proxy**: en [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, y siempre que apunte `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM o proxy](/docs/es/llm-gateway), sea cual sea su plan. Solicitar de forma predeterminada requiere Claude Code v2.1.278 o posterior.340* **Un proveedor de nube, o una puerta de enlace LLM o proxy**: en [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, y siempre que apunte `ANTHROPIC_BASE_URL` a una [puerta de enlace LLM o proxy](/docs/es/llm-gateway), sea cual sea su plan. Preguntar de forma predeterminada requiere Claude Code v2.1.278 o posterior.

339* **Una sesión de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada**: requiere Claude Code v2.1.280 o posterior341* **Una sesión de [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) con sesión iniciada**: requiere Claude Code v2.1.280 o posterior

340 342 

341Donde el servidor revisa las acciones, sus veredictos las deciden. Otros dos resultados son posibles:343Donde el servidor revisa las acciones, sus veredictos las deciden. Otros dos resultados son posibles:

342 344 

343* **El servidor no revisa la sesión**: una respuesta se completa sin resultados de revisión, o el servidor responde que no revisa esta sesión. Las causas más comunes son una puerta de enlace LLM o proxy que descarta la solicitud de revisión o los resultados, y una plataforma, región o credencial que aún no tiene verificaciones del lado del servidor. Claude Code retrocede a sus propias solicitudes del clasificador. Una vez que ese retroceso se mantiene para el resto de la sesión, muestra un [aviso sobre cargos de solicitud del clasificador](/docs/es/auto-mode-classifier-billing) en cuentas donde esas solicitudes se facturan.345* **El servidor no revisa la sesión**: una respuesta se completa sin resultados de revisión, o el servidor responde que no revisa esta sesión. Las causas más comunes son una puerta de enlace LLM o proxy que descarta la solicitud de revisión o los resultados, y una plataforma, región o credencial que aún no tiene verificaciones del lado del servidor. Claude Code vuelve a sus propias solicitudes del clasificador. Una vez que esa alternativa se mantiene durante el resto de la sesión, muestra un [aviso sobre cargos de solicitud del clasificador](/docs/es/auto-mode-classifier-billing) en cuentas donde esas solicitudes se facturan.

344* **El servidor no da veredicto para una acción**: Claude Code niega la acción en lugar de ejecutarla sin revisar. En cualquier conexión, esto sucede cuando la respuesta termina antes de que lleguen los resultados de revisión o los resultados llegan en una forma que Claude Code no puede leer. Una puerta de enlace LLM o proxy que corta respuestas o reescribe los resultados puede causar cualquiera de los dos. En una conexión directa a la API de Anthropic, también sucede cuando la verificación del servidor falla para la acción, por ejemplo al agotarse el tiempo. [El servidor no devolvió veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict) cubre el mensaje de denegación, qué sucede cuando las denegaciones se repiten y qué hacer.346* **El servidor no da veredicto para una acción**: Claude Code niega la acción en lugar de ejecutarla sin revisar. En cualquier conexión, esto sucede cuando la respuesta finaliza antes de que lleguen los resultados de revisión o los resultados llegan en una forma que Claude Code no puede leer. Una puerta de enlace LLM o proxy que acorta respuestas o reescribe los resultados puede causar cualquiera de los dos. En una conexión directa a la API de Anthropic, también sucede cuando la verificación del servidor falla para la acción, por ejemplo al agotarse el tiempo de espera. [El servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict) cubre el mensaje de negación, qué sucede cuando las negaciones se repiten y qué hacer.

345 347 

346Para omitir solicitar al servidor y siempre usar las propias solicitudes del clasificador de Claude Code, establezca [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/es/env-vars). En una conexión directa a la API de Anthropic, la variable requiere Claude Code v2.1.281 o posterior. Establecerlo en `1` allí activa la revisión del servidor en una sesión que no la tiene aún, como una sesión `-p` o Agent SDK, a menos que también haya establecido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si establece `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` y deja `CLAUDE_CODE_AUTO_MODE_SERVER` sin establecer, Claude Code también deja de solicitar al servidor.348Para omitir preguntar al servidor y siempre usar las propias solicitudes del clasificador de Claude Code, establezca [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/es/env-vars). En una conexión directa a la API de Anthropic, la variable requiere Claude Code v2.1.281 o posterior. Establecerlo en `1` allí activa la revisión del servidor en una sesión que no la tiene, como una sesión `-p` o Agent SDK, a menos que también haya establecido `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Si establece `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` y deja `CLAUDE_CODE_AUTO_MODE_SERVER` sin establecer, Claude Code también deja de preguntar al servidor, excepto como [Desactivar capacidades previas al lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) describe.

347 349 

348<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

349 Qué bloquea el clasificador de forma predeterminada351 Lo que el clasificador bloquea de forma predeterminada

350</h3>352</h3>

351 353 

352El clasificador confía en su directorio de trabajo y en los remotos que se configuraron para él cuando comenzó la sesión. Un remoto agregado o reapuntado durante la sesión con `git remote add` o `git remote set-url` no es de confianza, y todo lo demás se trata como externo hasta que [configure infraestructura de confianza](/docs/es/auto-mode-config). Antes de v2.1.200, los remotos agregados a mitad de sesión también eran de confianza.354El clasificador confía en su directorio de trabajo y en los remotos que se configuraron para él cuando comenzó la sesión. Un remoto agregado o reapuntado durante la sesión con `git remote add` o `git remote set-url` no es de confianza, y todo lo demás se trata como externo hasta que [configure infraestructura de confianza](/docs/es/auto-mode-config). Antes de v2.1.200, los remotos agregados a mitad de sesión también eran de confianza.


361* Modificación de infraestructura compartida363* Modificación de infraestructura compartida

362* Destrucción irreversible de archivos que existían antes de la sesión364* Destrucción irreversible de archivos que existían antes de la sesión

363* Inserción forzada365* Inserción forzada

364* Confirmar o insertar un cambio que enviaría secretos o datos sensibles fuera del repositorio cuando se ejecuta, o ampliar lo que expone una implementación. Esto cubre un flujo de trabajo de CI o configuración de implementación que entrega un secreto a un destino que no lo recibe ya, un script o paso de configuración que lee un almacén de secretos y envía los datos, y un cambio de configuración que amplía lo que publica una implementación, como un registro, visibilidad, artefacto o configuración de sourcemap. La verificación se aplica en cualquier rama, se aplica incluso cuando el repositorio es público y se activa cuando el cambio se confirma o inserta, independientemente de si esa confirmación o inserción desencadena la canalización; limpiarla requiere nombrar el efecto de ejecución, no solo la confirmación o inserción. Antes de v2.1.211, esta verificación se limitaba a la rama predeterminada: una inserción allí se bloqueaba cuando llevaba contenido sensible, cambios ocultos o mal descritos en relación con lo que pidió, contenido portado desde fuera del repositorio o enrutado alrededor de una revisión que pidió366* Confirmar o insertar un cambio que enviaría secretos o datos sensibles fuera del repositorio cuando se ejecuta, o ampliar lo que expone una implementación. Esto cubre un flujo de trabajo de CI o configuración de implementación que pasa un secreto a un destino que no lo recibe ya, un script o paso de configuración que lee un almacén de secretos y envía los datos, y un cambio de configuración que amplía lo que publica una implementación, como un registro, visibilidad, artefacto o configuración de mapa de origen. La verificación se aplica en cualquier rama, se aplica incluso cuando el repositorio es público y se activa cuando el cambio se confirma o se inserta, independientemente de si esa confirmación o inserción activa la canalización; borrarla requiere nombrar el efecto de ejecución, no solo la confirmación o inserción. Antes de v2.1.211, esta verificación se limitaba a la rama predeterminada en su lugar: una inserción allí se bloqueaba cuando llevaba contenido sensible, cambios ocultos o mal descritos en relación con lo que pidió, contenido portado desde fuera del repositorio o enrutado alrededor de una revisión que pidió

365* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, que el clasificador presume descartaría cambios sin confirmar367* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, que el clasificador presume descartaría cambios no confirmados

366* `git commit --amend` cuando la confirmación en HEAD no fue creada en esta sesión368* `git commit --amend` cuando la confirmación en HEAD no fue creada en esta sesión

367* Desde v2.1.198, `git commit --amend` cuando la confirmación en HEAD ya ha sido insertada. Una reescritura solo de mensaje no se bloquea: `--amend -m` sin nada recién preparado, en una confirmación que Claude creó durante esta sesión369* Desde v2.1.198, `git commit --amend` cuando la confirmación en HEAD ya ha sido insertada. Una reescritura de solo mensaje no se bloquea: `--amend -m` sin nada recién preparado, en una confirmación que Claude creó durante esta sesión

368* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, e implementar un plan que destruye recursos370* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, y aplicar un plan que destruye recursos

369 371 

370Claude Code v2.1.195 y posterior bloquean más categorías de forma predeterminada. Varias dependen de entradas de [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensibles y alcances de IaC protegidos, que puede reducir a nombres concretos.372Claude Code v2.1.195 y posterior bloquean más categorías de forma predeterminada. Varios dependen de entradas de [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), como destinos remotos sensibles y alcances de IaC protegidos, que puede reducir a nombres concretos.

371 373 

372* Escritura en un administrador de secretos, o cambio de registros DNS o certificados TLS374* Escritura en un administrador de secretos, o cambio de registros DNS o certificados TLS

373* Fusión de una solicitud de extracción que ningún humano ha aprobado, aprobación de la propia solicitud de extracción de Claude o deshabilitación de verificaciones de CI375* Fusión de una solicitud de extracción que ningún humano ha aprobado, aprobación de la propia solicitud de extracción de Claude o desactivación de verificaciones de CI

374* Publicación de un comentario que es en sí mismo un comando para automatización, como `atlantis apply` o `/deploy` o `/merge` de un bot376* Publicación de un comentario que es en sí mismo un comando para automatización, como `atlantis apply` o `/deploy` o `/merge` de un bot

375* Alternancia, ramificación o eliminación de una bandera de característica de producción377* Alternancia, ramificación o eliminación de una marca de característica de producción

376* Aplicación de cambios de infraestructura a un alcance de IaC protegido, o drenaje y eliminación de nodos de clúster378* Aplicación de cambios de infraestructura a un alcance de IaC protegido, o drenaje y eliminación de nodos de clúster

377* Escrituras en un clúster de cómputo compartido que van más allá del recurso que nombró, como un selector de etiqueta o `--all` que captura trabajos de otros usuarios379* Escrituras en un clúster de cómputo compartido que van más allá del recurso que nombró, como un selector de etiqueta o `--all` que captura trabajos de otros usuarios

378* Creación de recursos de Kubernetes que se ejecutan en cada nodo o interceptan tráfico de clúster, como DaemonSets y webhooks de admisión380* Creación de recursos de Kubernetes que se ejecutan en cada nodo o interceptan tráfico de clúster, como DaemonSets y webhooks de admisión

379* Shells interactivos o reenvíos de puertos a un destino remoto sensible381* Shells interactivos o reenvíos de puerto a un destino remoto sensible

380* Apertura de un túnel o shell inverso que hace que un servicio local sea accesible desde Internet público382* Apertura de un túnel o shell inverso que hace que un servicio local sea accesible desde Internet público

381* Impresión de una credencial o token en vivo en la transcripción o un archivo383* Impresión de una credencial o token en vivo en la transcripción o un archivo

382* Acceso a una ubicación listada como ubicación de datos sensibles en su [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), o copia de datos de una. A partir de v2.1.198, esto también bloquea el envío de datos de uno a una audiencia que la entrada excluye384* Acceso a una ubicación listada como ubicación de datos sensibles en su [entorno](/docs/es/auto-mode-config#define-trusted-infrastructure), o copia de datos de una. A partir de v2.1.198, esto también bloquea el envío de datos de uno a una audiencia que la entrada excluye

383* Enrutamiento de una instalación de paquete alrededor de su registro de paquetes interno a un registro público. A partir de v2.1.198, esto también se aplica cuando le ha dicho a Claude que existe un registro interno o espejo en la conversación, no solo cuando uno está listado en su entorno385* Enrutamiento de una instalación de paquete alrededor de su registro de paquetes interno a un registro público. A partir de v2.1.198, esto también se aplica cuando le ha dicho a Claude que existe un registro interno o espejo en la conversación, no solo cuando uno está listado en su entorno

384* Ejecución de un comando con una bandera que desactiva una protección de seguridad, como `--insecure`386* Ejecución de un comando con una bandera que desactiva una protección de seguridad, como `--insecure`

385* Lanzamiento de un bucle de agente autónomo que se ejecuta sin aprobación humana o sandbox, como uno iniciado con `--dangerously-skip-permissions` o `--no-sandbox`. A partir de v2.1.198, esto también cubre la ejecución de un agente de terceros o arnés de evaluación con aislamiento y aprobación por acción deshabilitados, como un ejecutor iniciado con `--yes-always`387* Lanzamiento de un bucle de agente autónomo que se ejecuta sin aprobación humana o sandbox, como uno iniciado con `--dangerously-skip-permissions` o `--no-sandbox`. A partir de v2.1.198, esto también cubre la ejecución de un agente de terceros o evaluador con aislamiento y aprobación por acción desactivados, como un ejecutor iniciado con `--yes-always`

386* Acciones del navegador [Claude en Chrome](/docs/es/chrome) que podrían enviar contenido de página, cookies o credenciales fuera de origen388* Acciones del navegador [Claude en Chrome](/docs/es/chrome) que podrían enviar contenido de página, cookies o credenciales fuera de origen

387 389 

388Claude Code v2.1.198 y posterior también bloquean estos de forma predeterminada:390Claude Code v2.1.198 y posterior también bloquean estos de forma predeterminada:

389 391 

390* Eliminación de archivos en `/tmp`, `$TMPDIR` u otro directorio compartido de scratch o caché por comodín, glob o filtro de edad en lugar de por una ruta nombrada específica392* Eliminación de archivos en `/tmp`, `$TMPDIR` u otro directorio compartido de scratch o caché por comodín, glob o filtro de edad en lugar de por una ruta nombrada específica

391* Inclusión de detalles sensibles en contenido enviado, cargado, publicado o escrito a otras personas o sistemas compartidos, cuando su propio mensaje no autorizó esos detalles para ese destinatario. Los cuerpos de PR y problemas, mensajes de confirmación y comentarios cuentan como este tipo de contenido saliente cuando el repositorio está fuera del límite de confianza o es público, incluidos los repositorios públicos de su propia organización; las rutas de archivo internas, nombres de código, datos de respuesta de API en vivo como correos electrónicos o identificadores de cuenta e identificadores de infraestructura cuentan como detalles sensibles. El alcance de PR, problema y mensaje de confirmación requiere Claude Code v2.1.200 o posterior. Los datos personales en vivo de una respuesta de API en un cuerpo de PR o problema, como una dirección de correo electrónico, un identificador de cuenta u organización o una métrica de uso, requieren que nombre esos detalles y el destinatario independientemente de la visibilidad o límite de confianza del repositorio. Esa verificación requiere Claude Code v2.1.203 o posterior393* Inclusión de detalles sensibles en contenido enviado, cargado, publicado o escrito a otras personas o sistemas compartidos, cuando su propio mensaje no autorizó esos detalles para ese destinatario. Los cuerpos de PR y problemas, mensajes de confirmación y comentarios cuentan como este tipo de contenido saliente cuando el repositorio está fuera del límite de confianza o es público, incluidos los repositorios públicos de su propia organización; las rutas de archivo internas, nombres de código, datos de respuesta de API en vivo como correos electrónicos o identificadores de cuenta e identificadores de infraestructura cuentan como detalles sensibles. El alcance de PR, problema y mensaje de confirmación requiere Claude Code v2.1.200 o posterior. Los datos personales en vivo de una respuesta de API en un cuerpo de PR o problema, como una dirección de correo electrónico, un identificador de cuenta u organización o una métrica de uso, requieren que nombre esos detalles y el destinatario independientemente de la visibilidad del repositorio o el límite de confianza. Esa verificación requiere Claude Code v2.1.203 o posterior

392* Envío de pulsaciones de teclas al propio panel tmux de Claude Code para impulsar su propia interfaz, que el clasificador trata como Claude cambiando sus propios permisos o supervisión394* Envío de pulsaciones de teclas a su propio panel tmux de Claude Code para impulsar su propia interfaz, que el clasificador trata como Claude cambiando sus propios permisos o supervisión

393 395 

394Claude Code v2.1.200 y posterior también bloquean estos de forma predeterminada:396Claude Code v2.1.200 y posterior también bloquean estos de forma predeterminada:

395 397 

396* Comentario, eliminación o paso forzado de una prueba o afirmación que protege el comportamiento de seguridad, como autenticación, control de acceso, validación de entrada o sandboxing398* Comentario, eliminación o paso forzado de una prueba o afirmación que protege el comportamiento de seguridad, como autenticación, control de acceso, validación de entrada o sandboxing

397* Eliminación o desmantelamiento de un recurso con estado que Claude no creó en la sesión, cuando no se aplica una regla de eliminación más específica y no nombró ese recurso399* Eliminación o desmantelamiento de un recurso con estado que Claude no creó en la sesión, cuando no se aplica ninguna regla de eliminación más específica y no nombró ese recurso

398* Reapuntamiento de una URL base de API, punto final de proxy, receptor de webhook o espejo de registro a un host de terceros que no se ajusta a la tarea, incluso en archivos de ejemplo como `.env.example`400* Reapuntamiento de una URL base de API, punto final de proxy, receptor de webhook o espejo de registro a un host de terceros que no se ajusta a la tarea, incluidos en archivos de ejemplo como `.env.example`

399* Cambio de dónde van las inserciones con `git remote set-url` o `git remote add`, a menos que nombre el nuevo remoto401* Cambio de dónde van las inserciones con `git remote set-url` o `git remote add`, a menos que haya nombrado el nuevo remoto

400* Inserción de secretos o datos personales o confiados a un repositorio conocido como público, o inserción de material confidencial allí que no es parte del trabajo propio de ese repositorio. El asunto propio de un repositorio de dotfiles es la única excepción para datos personales o confiados, y el contenido de un repositorio privado que llega a cualquier superficie pública se bloquea de la misma manera; ambos refinamientos requieren Claude Code v2.1.203 o posterior. Antes de v2.1.203, los datos personales se agrupaban con material confidencial y se bloqueaban solo cuando no eran parte del trabajo propio de ese repositorio. Cuando la visibilidad de un repositorio no está establecida, el clasificador no bloquea solo por eso; juzga el contenido contra las otras reglas en su lugar402* Inserción de secretos o datos personales o confiados a un repositorio conocido como público, o inserción de material confidencial allí que no es parte del trabajo propio de ese repositorio. El tema propio de un repositorio de dotfiles es la única excepción para datos personales o confiados, y el contenido de un repositorio privado que llega a cualquier superficie pública se bloquea de la misma manera; ambos refinamientos requieren Claude Code v2.1.203 o posterior. Antes de v2.1.203, los datos personales se agrupaban con material confidencial y se bloqueaban solo cuando no eran parte del trabajo propio de ese repositorio. Cuando la visibilidad de un repositorio no se establece, el clasificador no bloquea solo por eso; juzga el contenido contra las otras reglas en su lugar

401* Apertura de una solicitud de extracción contra un repositorio u organización diferente, bifurcación con `gh repo fork` o inserción a un repositorio de terceros, a menos que nombre ese destino externo403* Apertura de una solicitud de extracción contra un repositorio u organización diferente, bifurcación con `gh repo fork` o inserción a un repositorio de terceros, a menos que haya nombrado ese destino externo

402 404 

403Claude Code v2.1.203 y posterior también bloquean estos de forma predeterminada:405Claude Code v2.1.203 y posterior también bloquean estos de forma predeterminada:

404 406 

405* Contenido de un almacén local sensible, o de un archivo cuyo nombre, ruta o tipo lo marca como sensible, entrando en una confirmación, una inserción, texto de PR o problema, una esencia o pegado, o una publicación de paquete, a menos que nombre tanto la fuente como el destino. Las transcripciones de sesión y registros de conversación, carpetas de puntos de credencial y configuración como claves SSH, credenciales en la nube, perfiles de navegador e historial de shell, y exportaciones de datos de usuario cuentan, y el repositorio siendo privado no lo aclara407* Contenido de un almacén local sensible, o de un archivo cuyo nombre, ruta o tipo lo marca como sensible, entrando en una confirmación, una inserción, texto de PR o problema, un gist o pegado, o una publicación de paquete, a menos que haya nombrado tanto la fuente como el destino. Las transcripciones de sesión y registros de conversación, carpetas de puntos de credencial y configuración como claves SSH, credenciales en la nube, perfiles de navegador e historial de shell, y exportaciones de datos de usuario cuentan, y el repositorio siendo privado no lo borra

406 408 

407Claude Code v2.1.205 y posterior también bloquean estos de forma predeterminada:409Claude Code v2.1.205 y posterior también bloquean estos de forma predeterminada:

408 410 

409* Escritura en transcripciones de sesión de Claude Code, los archivos de historial `.jsonl` bajo `~/.claude/projects/` o su directorio de configuración configurado, ya sea directamente o a través de un comando de shell. La regla también cubre las líneas de metadatos que Claude Code añade a cada entrada de transcripción para sus propias verificaciones. Leer una transcripción no se bloquea411* Escritura en transcripciones de sesión de Claude Code, los archivos de historial `.jsonl` bajo `~/.claude/projects/` o su directorio de configuración configurado, ya sea directamente o a través de un comando de shell. La regla también cubre las líneas de metadatos que Claude Code agrega a cada entrada de transcripción para sus propias verificaciones. Leer una transcripción no se bloquea

410* Una eliminación forzada recursiva como `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` cuyo destino es una variable de shell, o un glob enraizado en una, que no está asignado en ningún lugar de la conversación que el clasificador ve. El valor provino solo de la salida de comando anterior, que el clasificador nunca recibe, por lo que el clasificador no puede verificar el destino de eliminación contra las otras reglas de eliminación. El bloqueo se aclara cuando nombra la ruta exacta que se está eliminando, o cuando Claude vuelve a ejecutar la eliminación con la ruta literal resuelta escrita en el comando. Las eliminaciones cuyo destino el clasificador puede resolver no se ven afectadas. Los destinos `Remove-Item` que son un `*` desnudo o terminan en `/*` o `\*` nunca llegan al clasificador: Claude Code [los niega directamente](#remove-item-in-powershell)412* Una eliminación forzada recursiva como `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` cuyo destino es una variable de shell que no está asignada en ningún lugar de la conversación que el clasificador ve, o un glob enraizado en tal variable. El valor provino solo de la salida de comando anterior, que el clasificador nunca recibe, por lo que el clasificador no puede verificar el destino de eliminación contra las otras reglas de eliminación. El bloqueo se borra cuando nombra la ruta exacta que se está eliminando, o cuando Claude vuelve a ejecutar la eliminación con la ruta literal resuelta escrita en el comando. Las eliminaciones cuyo destino el clasificador puede resolver no se ven afectadas.

413 

414 Un glob directamente bajo la variable, como en `rm -rf "$VAR"/*`, es una [ruta crítica](#critical-paths) en su lugar. Los destinos de `Remove-Item` que son un `*` desnudo o terminan en `/*` o `\*` nunca llegan al clasificador: Claude Code los [niega directamente](#remove-item-in-powershell).

411 415 

412Claude Code v2.1.257 y posterior también bloquean estos de forma predeterminada:416Claude Code v2.1.257 y posterior también bloquean estos de forma predeterminada:

413 417 

414* Solicitud de credenciales del punto final de metadatos de instancia en la nube, como `169.254.169.254`, o autenticación explícita de una llamada de nube, clúster o registro con la identidad de cuenta de servicio o nodo de la máquina418* Solicitud de credenciales del punto final de metadatos de instancia en la nube, como `169.254.169.254`, o autenticación explícita de una llamada de nube, clúster o registro con la identidad de cuenta de servicio o nodo de la máquina

415* Alcance de un host público por una ruta que no sea una solicitud directa, como un túnel, un shell inverso, o una configuración de resolutor o proxy reescrita para apuntar fuera419* Alcance de un host público por una ruta que no sea una solicitud directa, como un túnel, un shell inverso o una configuración de resolutor o proxy reescrita para apuntar fuera

416* Lectura de credenciales que pertenecen al host en lugar de a su tarea, como certificados de nodo o la autenticación de registro de contenedor del nodo420* Lectura de credenciales que pertenecen al host en lugar de a su tarea, como certificados de nodo o la autenticación de registro de contenedor del nodo

417* Conexión a o escaneo de contenedores, pods o máquinas virtuales hermanas que Claude no inició, o el nodo debajo del contenedor421* Conexión o escaneo de contenedores, pods o máquinas virtuales hermanas que Claude no inició, o el nodo debajo del contenedor

418 422 

419Si Claude Code se ejecuta en algún lugar que se supone que permite uno de estos, describa esa configuración en una entrada [Host containment](/docs/es/auto-mode-config#define-trusted-infrastructure) en `autoMode.environment`.423Si Claude Code se ejecuta en algún lugar que se supone que permite uno de estos, describa esa configuración en una entrada de [Host containment](/docs/es/auto-mode-config#define-trusted-infrastructure) en `autoMode.environment`.

420 424 

421Claude Code v2.1.261 y posterior también bloquean estos de forma predeterminada:425Claude Code v2.1.261 y posterior también bloquean estos de forma predeterminada:

422 426 

423* Publicación o escritura de un enlace a un servicio público de pegado, diagrama o intercambio de datos en un mensaje, texto de PR o problema, un documento, o en cualquier otro lugar donde se abrirá o recuperará el enlace, cuando la URL misma lleva el contenido que se comparte, a menos que nombre ese servicio427* Publicación o escritura de un enlace a un servicio público de pegado, diagrama o intercambio de datos en un mensaje, texto de PR o problema, un documento o en cualquier otro lugar donde se abrirá o recuperará el enlace, cuando la URL misma lleva el contenido que se comparte, a menos que haya nombrado ese servicio

424 428 

425**Permitido de forma predeterminada**:429**Permitido de forma predeterminada**:

426 430 


428* Instalación de dependencias declaradas en sus archivos de bloqueo o manifiestos432* Instalación de dependencias declaradas en sus archivos de bloqueo o manifiestos

429* Lectura de `.env` y envío de credenciales a su API coincidente433* Lectura de `.env` y envío de credenciales a su API coincidente

430* Solicitudes HTTP de solo lectura434* Solicitudes HTTP de solo lectura

431* Inserción a cualquier rama del repositorio en el que está trabajando, incluida la rama predeterminada. Una rama no predeterminada cuyo nombre la marca como destino de implementación o publicación, como `production` o `gh-pages`, no está cubierta: el clasificador juzga una inserción allí en sus propios términos. El contenido de la inserción aún se verifica contra las otras reglas, las reglas [`permissions.deny`](/docs/es/permissions#manage-permissions) aún pueden bloquear comandos de inserción [tal como están escritos](/docs/es/permissions#bash-rule-limits) en todos los modos, y la protección de rama propia del remoto aún se aplica. Antes de v2.1.211, solo las inserciones a la rama en la que comenzó, ramas que Claude creó e inserciones rutinarias a la rama predeterminada se permitían de forma predeterminada, y antes de v2.1.203 cualquier inserción directa a la rama predeterminada se bloqueaba435* Inserción a cualquier rama del repositorio en el que está trabajando, incluida la rama predeterminada. Una rama no predeterminada cuyo nombre la marca como destino de implementación o publicación, como `production` o `gh-pages`, no está cubierta: el clasificador juzga una inserción allí en sus propios términos. El contenido de la inserción aún se verifica contra las otras reglas, las reglas [`permissions.deny`](/docs/es/permissions#manage-permissions) aún pueden bloquear comandos de inserción [como se escriben](/docs/es/permissions#bash-rule-limits) en todos los modos, y la protección de rama propia del remoto aún se aplica. Antes de v2.1.211, solo las inserciones a la rama en la que comenzó, las ramas que Claude creó y las inserciones rutinarias a la rama predeterminada se permitían de forma predeterminada, y antes de v2.1.203 cualquier inserción directa a la rama predeterminada se bloqueaba

432 436 

433Claude Code v2.1.195 y posterior también permiten estos de forma predeterminada:437Claude Code v2.1.195 y posterior también permiten estos de forma predeterminada:

434 438 

435* Eliminación de los trabajos exactos que Claude creó anteriormente en la misma sesión439* Eliminación de los trabajos exactos que Claude creó anteriormente en la misma sesión

436* Lectura, revisión o escritura de código, configuraciones y modelos de amenaza relacionados con seguridad como parte de su tarea440* Lectura, revisión o escritura de código, configuraciones y modelos de amenaza relacionados con la seguridad como parte de su tarea

437* Mensajes entre agentes que trabajan juntos en la misma sesión multiagente441* Mensajes entre agentes que trabajan juntos en la misma sesión multiagente

438* Envío de datos a los dominios, cubos y servicios de confianza que lista en [`environment`](/docs/es/auto-mode-config#define-trusted-infrastructure). Esto cubre solo el flujo de datos, no operaciones destructivas o de credencial en la misma infraestructura442* Envío de datos a los dominios, depósitos y servicios de confianza que lista en [`environment`](/docs/es/auto-mode-config#define-trusted-infrastructure). Esto cubre solo el flujo de datos, no operaciones destructivas o de credencial en la misma infraestructura

439* [Claude en Chrome](/docs/es/chrome) navegación a un dominio interno de confianza, localhost o una URL que nombró443* [Claude en Chrome](/docs/es/chrome) navegación a un dominio interno de confianza, localhost o una URL que nombró

440 444 

441Los comandos en sandbox no obtienen acceso a la red de forma predeterminada. Claude nombra los hosts que un comando necesita en el comando mismo, el clasificador los revisa con el comando, y una lista aprobada abre esos hosts solo para ese comando. [Dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) cubre qué puede y qué no puede abrir una lista y qué sucede cuando un comando llega a un host no listado.445Los comandos en sandbox no obtienen acceso a la red de forma predeterminada. Claude nombra los hosts que un comando necesita en el comando mismo, el clasificador los revisa con el comando, y una lista aprobada abre esos hosts solo para ese comando. [Dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) cubre lo que una lista puede y no puede abrir y qué sucede cuando un comando llega a un host no listado.

442 446 

443Ejecute `claude auto-mode defaults` para imprimir las listas de reglas completas como JSON. Si las acciones rutinarias se bloquean, un administrador puede agregar repositorios, cubos y servicios de confianza a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/docs/es/auto-mode-config).447Ejecute `claude auto-mode defaults` para imprimir las listas de reglas completas como JSON. Si las acciones rutinarias se bloquean, un administrador puede agregar repositorios, depósitos y servicios de confianza a través de la configuración `autoMode.environment`: consulte [Configurar modo automático](/docs/es/auto-mode-config).

444 448 

445La inserción a cualquier rama del repositorio en el que está trabajando y la creación de una solicitud de extracción que coincida con su solicitud se ejecutan sin solicitud, a menos que la inserción o solicitud de extracción caiga bajo la [lista bloqueada](#what-the-classifier-blocks-by-default), como secretos o datos sensibles que salen del repositorio, o una solicitud de extracción que apunta a un repositorio u organización diferente. Para requerir un punto de control humano antes de estos comandos mientras permanece en modo automático, agregue reglas `permissions.ask`, que coinciden con el comando [tal como está escrito](/docs/es/permissions#bash-rule-limits): consulte [Límites comunes](/docs/es/auto-mode-config#common-boundaries).449La inserción a cualquier rama del repositorio en el que está trabajando y la creación de una solicitud de extracción que coincida con su solicitud se ejecutan sin una solicitud, a menos que la inserción o solicitud de extracción caiga bajo la [lista bloqueada](#what-the-classifier-blocks-by-default), como secretos o datos sensibles que salen del repositorio, o una solicitud de extracción que apunta a un repositorio u organización diferente. Para requerir un punto de control humano antes de estos comandos mientras permanece en modo automático, agregue reglas `permissions.ask`, que coincidan con el comando [como se escriben](/docs/es/permissions#bash-rule-limits): consulte [Límites comunes](/docs/es/auto-mode-config#common-boundaries).

446 450 

447<h3 id="first-read-outside-the-working-directories">451<h3 id="first-read-outside-the-working-directories">

448 La primera lectura fuera de los directorios de trabajo452 La primera lectura fuera de los directorios de trabajo

449</h3>453</h3>

450 454 

451Mientras [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está desactivado, las lecturas de archivo se ejecutan sin solicitud en modo automático, incluidas las lecturas fuera de los [directorios de trabajo](/docs/es/permissions#working-directories). La primera vez que Claude usa la herramienta Read, Grep o Glob en una ruta fuera de ellos, Claude Code le pregunta si desea seguir permitiendo esas lecturas.455Mientras [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está desactivado, las lecturas de archivo se ejecutan sin una solicitud en modo automático, incluidas las lecturas fuera de los [directorios de trabajo](/docs/es/permissions#working-directories). La primera vez que Claude usa la herramienta Read, Grep o Glob en una ruta fuera de ellos, Claude Code le pregunta si desea seguir permitiendo esas lecturas.

452 456 

453La solicitud no aparece en ejecuciones `-p` no interactivas o sesiones en segundo plano; las lecturas allí se ejecutan como antes.457La solicitud no aparece en ejecuciones `-p` no interactivas o sesiones en segundo plano; las lecturas allí se ejecutan como antes.

454 458 

455Sea cual sea su respuesta, Claude sigue trabajando:459Sea cual sea su respuesta, Claude sigue trabajando:

456 460 

457* **Seguir permitiendo**: la lectura se ejecuta, las lecturas posteriores fuera de los directorios de trabajo se ejecutan como antes, y Claude Code registra su respuesta para que la solicitud no aparezca nuevamente461* **Sí, y seguir permitiendo**: la lectura se ejecuta, las lecturas posteriores fuera de los directorios de trabajo se ejecutan como antes, y Claude Code registra su respuesta para que la solicitud no aparezca de nuevo

458* **Bloquear de ahora en adelante**: la lectura se rechaza, y Claude Code establece [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) en `true` en su configuración de usuario, lo que hace que las herramientas de archivo rechacen tales lecturas en cada sesión posterior y cada modo de permiso. Para permitir que Claude lea tal ruta más tarde, agregue su directorio con `/add-dir` o elimine la configuración.462* **No, y bloquear de ahora en adelante**: la lectura se rechaza, y Claude Code establece [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) en `true` en su configuración de usuario, lo que hace que las herramientas de archivo rechacen tales lecturas en cada sesión posterior y en cada modo de permiso. Para permitir que Claude lea tal ruta más tarde, agregue su directorio con `/add-dir` o elimine la configuración.

459* **Preguntar nuevamente la próxima vez**: la lectura se rechaza, y la próxima lectura fuera de los directorios de trabajo solicita nuevamente463* **No, y preguntar de nuevo la próxima vez**: la lectura se rechaza, y la próxima lectura fuera de los directorios de trabajo solicita de nuevo

464* **Sí, pero preguntar de nuevo la próxima vez**: la lectura se ejecuta, nada se guarda, y la próxima lectura fuera de los directorios de trabajo solicita de nuevo

460 465 

461<h3 id="boundaries-you-state-in-conversation">466<h3 id="boundaries-you-state-in-conversation">

462 Límites que establece en la conversación467 Límites que establece en la conversación

463</h3>468</h3>

464 469 

465El clasificador trata los límites que establece en la conversación como una señal de bloqueo. Si le dice a Claude "no insertes" o "espera hasta que revise antes de implementar", el clasificador bloquea acciones coincidentes incluso cuando las reglas predeterminadas las permitirían. Un límite permanece en vigor hasta que lo levanta en un mensaje posterior. El propio juicio de Claude de que se cumplió una condición no lo levanta.470El clasificador trata los límites que establece en la conversación como una señal de bloqueo. Si le dice a Claude "no insertes" o "espera hasta que revise antes de implementar", el clasificador bloquea acciones coincidentes incluso cuando las reglas predeterminadas las permitirían. Un límite permanece en vigor hasta que lo levante en un mensaje posterior. El propio juicio de Claude de que se cumplió una condición no lo levanta.

466 471 

467Los límites no se almacenan como reglas. El clasificador los vuelve a leer de la transcripción en cada verificación, por lo que un límite puede perderse si [compactación de contexto](/docs/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, agregue una [regla de denegación](/docs/es/permissions#permission-rule-syntax) en su lugar.472Los límites no se almacenan como reglas. El clasificador los relee de la transcripción en cada verificación, por lo que un límite puede perderse si [la compactación de contexto](/docs/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, agregue una [regla de negación](/docs/es/permissions#permission-rule-syntax) en su lugar.

468 473 

469<h3 id="approvals-you-state-in-conversation">474<h3 id="approvals-you-state-in-conversation">

470 Aprobaciones que establece en la conversación475 Aprobaciones que establece en la conversación

471</h3>476</h3>

472 477 

473Si le dice a Claude que una acción bloqueada está permitida, el clasificador lee eso como su aprobación y puede despejar el bloqueo. La forma en que lo expresó decide si la acción se ejecuta y qué tan lejos llega la aprobación:478Si le dice a Claude que una acción bloqueada está permitida, el clasificador lee eso como su aprobación y puede borrar el bloqueo. La forma en que lo expresó decide si la acción se ejecuta y qué tan lejos llega la aprobación:

474 479 

475* **Nombre la acción y sus especificidades**: su mensaje tiene que nombrar la acción y la cosa específica que la hace peligrosa, como la rama de una inserción forzada. Nombrar solo el verbo no aclara nada, así que "puede hacer una inserción forzada" deja el bloqueo en su lugar.480* **Nombre la acción y sus especificidades**: su mensaje tiene que nombrar la acción y la cosa específica que la hace peligrosa, como la rama de una inserción forzada. Nombrar solo el verbo no borra nada, así que "puede hacer una inserción forzada" deja el bloqueo en su lugar.

476* **Espere que cubra una acción**: una aprobación cubre la acción destructiva que nombró, así que una acción posterior se bloquea nuevamente a menos que haya otorgado la aprobación como permanente. Para dejar de aprobar un patrón rutinario una acción a la vez, agréguelo a [`autoMode.allow`](/docs/es/auto-mode-config#override-the-block-and-allow-rules).481* **Espere que cubra una acción**: una aprobación cubre la acción destructiva que nombró, por lo que una acción posterior se bloquea de nuevo a menos que haya otorgado la aprobación como permanente. Para dejar de aprobar un patrón rutinario una acción a la vez, agréguelo a [`autoMode.allow`](/docs/es/auto-mode-config#override-the-block-and-allow-rules).

477* **Algunos bloqueos permanecen en su lugar**: [el orden de precedencia del clasificador](/docs/es/auto-mode-config#override-the-block-and-allow-rules) establece qué bloqueos puede alcanzar su aprobación. Para ejecutar un paso que no despejará, [salga del modo automático](#switch-permission-modes) y responda la solicitud de permiso.482* **Algunos bloqueos permanecen en su lugar**: [el orden de precedencia del clasificador](/docs/es/auto-mode-config#override-the-block-and-allow-rules) establece qué bloqueos puede alcanzar su aprobación. Para ejecutar un paso que no borrará, [abandone el modo automático](#switch-permission-modes) y responda a la solicitud de permiso.

478 483 

479<h3 id="when-auto-mode-falls-back">484<h3 id="when-auto-mode-falls-back">

480 Cuando el modo automático retrocede485 Cuando el modo automático se retira

481</h3>486</h3>

482 487 

483Cuando el modo automático no puede aprobar las acciones de su sesión, lo que sucede depende del caso:488Cuando el modo automático no puede aprobar las acciones de su sesión, lo que sucede depende del caso:

484 489 

485* **Una acción bloqueada**: Claude Code muestra una notificación y enumera la acción en `/permissions` bajo la pestaña **Recently denied**, donde puede presionar `r` para reintentar con una aprobación manual. Cuando el clasificador produce [sin veredicto en la acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action), porque una verificación de seguridad separada del modo automático rechazó la solicitud propia del clasificador o su respuesta no se analizó, Claude Code niega la acción sin la notificación o la entrada **Recently denied**.490* **Una acción bloqueada**: Claude Code muestra una notificación y enumera la acción en `/permissions` bajo la pestaña **Denegadas recientemente**, donde puede presionar `r` para reintentar con una aprobación manual. Cuando el clasificador produce [ningún veredicto en la acción](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action), porque una verificación de seguridad separada del modo automático rechazó la propia solicitud del clasificador o su respuesta no se analizó, Claude Code niega la acción sin la notificación o la entrada **Denegadas recientemente**.

486* **Bloqueos repetidos**: si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code reanuda la solicitud. Aprobar la acción solicitada reanuda el modo automático. Estos umbrales no son configurables. Cualquier acción permitida reinicia el contador consecutivo, mientras que el contador total persiste para la sesión y se reinicia solo cuando su propio límite desencadena un retroceso. Claude Code no cuenta una denegación hacia ninguno de los umbrales cuando [una verificación de seguridad separada del modo automático rechaza la solicitud propia del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action); la entrada vinculada cubre cómo Claude Code maneja esas denegaciones.491* **Bloqueos repetidos**: si el clasificador bloquea una acción 3 veces seguidas o 20 veces en total, el modo automático se pausa y Claude Code reanuda las solicitudes. Aprobar la acción solicitada reanuda el modo automático. Estos umbrales no son configurables. Cualquier acción permitida reinicia el contador consecutivo, mientras que el contador total persiste para la sesión y se reinicia solo cuando su propio límite activa una retirada. Claude Code no cuenta una negación hacia ninguno de los umbrales cuando [una verificación de seguridad separada del modo automático rechaza la solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action); la entrada vinculada cubre cómo Claude Code maneja esas negaciones.

487* **Sesiones que no pueden solicitar**: una ejecución `-p` [no interactiva](/docs/es/headless) sin un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) no tiene solicitud a la que retroceder. Cuando los bloqueos repetidos alcanzan un umbral, la acción no se ejecuta y Claude sigue trabajando. Lo mismo se aplica cuando [una verificación de seguridad separada del modo automático rechaza la solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code no detiene la ejecución en ninguno de los casos.492* **Sesiones que no pueden solicitar**: una ejecución `-p` [no interactiva](/docs/es/headless) sin un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) no tiene solicitud a la que retirarse. Cuando los bloqueos repetidos alcanzan un umbral, la acción no se ejecuta y Claude sigue trabajando. Lo mismo se aplica cuando [una verificación de seguridad separada del modo automático rechaza la solicitud del clasificador](/docs/es/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code no detiene la ejecución en ninguno de los casos.

488* **No hay veredicto del servidor**: bajo [revisión del clasificador del lado del servidor](#server-side-classifier-review), Claude Code niega una acción para la que el servidor no da veredicto, y detiene el turno después de diez respuestas seguidas sin veredicto. Consulte [El servidor no devolvió veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict).493* **Sin veredicto del servidor**: bajo [revisión del clasificador del lado del servidor](#server-side-classifier-review), Claude Code niega una acción para la que el servidor no da veredicto, y detiene el turno después de diez respuestas seguidas sin veredicto. Consulte [El servidor no devolvió ningún veredicto de seguridad](/docs/es/errors#the-server-returned-no-safety-verdict).

489* **Un cambio de modo durante una verificación**: si cambia modos de permiso mientras una verificación del clasificador está pendiente, Claude Code descarta un veredicto que el nuevo modo no habría solicitado en lugar de aplicarlo: se le solicita aprobación en su lugar, o la acción se niega automáticamente en [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).494* **Un cambio de modo durante una verificación**: si cambia modos de permiso mientras una verificación del clasificador está pendiente, Claude Code descarta un veredicto que el nuevo modo no habría solicitado en lugar de aplicarlo: se le solicita aprobación en su lugar, o la acción se niega automáticamente en [modo `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

490 495 

491Los bloqueos repetidos generalmente significan que el clasificador carece de contexto sobre su infraestructura. Use `/feedback` para reportar falsos positivos, o haga que un administrador [configure infraestructura de confianza](/docs/es/auto-mode-config).496Los bloqueos repetidos generalmente significan que el clasificador carece de contexto sobre su infraestructura. Use `/feedback` para informar falsos positivos, o haga que un administrador [configure infraestructura de confianza](/docs/es/auto-mode-config).

492 497 

493<span id="how-the-classifier-evaluates-actions" />498<span id="how-the-classifier-evaluates-actions" />

494 499 


496 <Accordion title="Cómo el clasificador evalúa acciones">501 <Accordion title="Cómo el clasificador evalúa acciones">

497 Cada acción pasa por un orden de decisión fijo. El primer paso coincidente gana:502 Cada acción pasa por un orden de decisión fijo. El primer paso coincidente gana:

498 503 

499 1. Las acciones que coinciden con sus [reglas de permitir, solicitar o denegar](/docs/es/permissions#manage-permissions) se resuelven inmediatamente, con estas excepciones:504 1. Las acciones que coinciden con sus [reglas de permitir, solicitar o negar](/docs/es/permissions#manage-permissions) se resuelven inmediatamente, con estas excepciones:

500 * Escrituras en [rutas protegidas](#protected-paths) se enrutan al clasificador incluso cuando una regla de permitir coincide, y también lo hacen las eliminaciones `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths) en Claude Code v2.1.218 y posterior505 * Las escrituras en [rutas protegidas](#protected-paths) se enrutan al clasificador incluso cuando una regla de permitir coincide

506 * Ninguna regla de permitir aprueba eliminaciones de `rm` y `rmdir` dirigidas a una [ruta crítica](#critical-paths)

501 * Las herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) le solicitan directamente incluso cuando una regla de permitir coincide, y también lo hacen las herramientas de conector [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code507 * Las herramientas MCP marcadas [`requiresUserInteraction`](/docs/es/mcp#require-approval-for-a-specific-tool) le solicitan directamente incluso cuando una regla de permitir coincide, y también lo hacen las herramientas de conector [que su organización estableció en `ask`](/docs/es/mcp#organization-controls-on-connector-tools) en sesiones donde esa configuración llega a Claude Code

502 * Un comando de shell que lleva [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) también se enruta al clasificador incluso cuando una regla de permitir coincide, porque una regla aprueba el comando, no sus hosts508 * Un comando de shell que lleva [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) también se enruta al clasificador incluso cuando una regla de permitir coincide, porque una regla aprueba el comando, no sus hosts

503 * Las reglas de solicitud que coinciden en el contenido de un comando, como `Bash(git push *)`, retroceden a una solicitud de permiso509 * Las reglas de solicitud que coinciden en el contenido de un comando, como `Bash(git push *)`, se retiran a una solicitud de permiso

510 * Una escritura que la [verificación de enlace simbólico](/docs/es/permissions#symlinks) resuelve a una ruta protegida le solicita cuando la ruta que Claude solicitó no es en sí misma protegida

504 2. Las acciones de solo lectura y ediciones de archivo en su directorio de trabajo se aprueban automáticamente, excepto escrituras en [rutas protegidas](#protected-paths) y [la primera lectura fuera de los directorios de trabajo](#first-read-outside-the-working-directories), que le solicita511 2. Las acciones de solo lectura y ediciones de archivo en su directorio de trabajo se aprueban automáticamente, excepto escrituras en [rutas protegidas](#protected-paths) y [la primera lectura fuera de los directorios de trabajo](#first-read-outside-the-working-directories), que le solicita

505 * En una sesión con [revisión del clasificador del lado del servidor](#server-side-classifier-review), las acciones de solo lectura y comandos de shell [en sandbox](/docs/es/sandboxing#sandbox-modes) esperan esa revisión y se bloquean si la marcan512 * En una sesión con [revisión del clasificador del lado del servidor](#server-side-classifier-review), las acciones de solo lectura y comandos de shell [en sandbox](/docs/es/sandboxing#sandbox-modes) esperan esa revisión y se bloquean si la marca

506 3. Todo lo demás va al clasificador. Las herramientas de conector y herramientas MCP `requiresUserInteraction` que le solicitan directamente en el paso 1 nunca llegan al clasificador, por lo que ni una aprobación requerida por la organización ni un paso de consentimiento se aprueban automáticamente513 * Una escritura dentro de su directorio de trabajo que la [verificación de enlace simbólico](/docs/es/permissions#symlinks) resuelve a una ubicación fuera de él le solicita

507 4. Si el clasificador bloquea, Claude recibe la razón e intenta una alternativa. En la mayoría de las sesiones la razón nombra la regla con la que coincidió el clasificador, como `[Data Exfiltration]`, en lugar de dar una explicación escrita; consulte [Revisar denegaciones](/docs/es/auto-mode-config#review-denials)514 3. Todo lo demás va al clasificador, aparte de [eliminaciones de ruta crítica](#critical-paths) bajo su manejo predeterminado. Las herramientas de conector y herramientas MCP de `requiresUserInteraction` que le solicitan directamente en el paso 1 nunca llegan al clasificador tampoco, por lo que ni una aprobación requerida por la organización ni un paso de consentimiento se aprueban automáticamente

515 4. Si el clasificador bloquea, Claude recibe la razón e intenta una alternativa. En la mayoría de sesiones la razón nombra la regla que el clasificador coincidió, como `[Data Exfiltration]`, en lugar de dar una explicación escrita; consulte [Revisar negaciones](/docs/es/auto-mode-config#review-denials)

508 516 

509 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitraria:517 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:

510 518 

511 * `Bash(*)` o `PowerShell(*)` sin restricciones519 * `Bash(*)` o `PowerShell(*)` sin restricciones

512 * Intérpretes con comodín como `Bash(python*)`520 * Intérpretes con comodín como `Bash(python*)`


514 * Reglas de permitir `Agent`522 * Reglas de permitir `Agent`

515 * Reglas de permitir [`Monitor`](/docs/es/tools-reference#monitor-tool), porque Claude Code ejecuta comandos Monitor a través del shell523 * Reglas de permitir [`Monitor`](/docs/es/tools-reference#monitor-tool), porque Claude Code ejecuta comandos Monitor a través del shell

516 524 

517 Las reglas estrechas como `Bash(npm test)` permanecen en vigor. Claude Code restaura las reglas descartadas cuando sale del modo automático. Antes de v2.1.236, Claude Code dejaba las reglas de permitir `Monitor` en vigor en modo automático, por lo que una regla que coincidía con la herramienta completa aprobaba comandos Monitor sin revisión del clasificador.525 Las reglas estrechas como `Bash(npm test)` permanecen en vigor. Claude Code restaura las reglas descartadas cuando abandona el modo automático. Antes de v2.1.236, Claude Code dejaba las reglas de permitir `Monitor` en vigor en modo automático, por lo que una regla que coincidía con toda la herramienta aprobaba comandos Monitor sin revisión del clasificador.

518 526 

519 Claude Code también ejecuta `git status` a sí mismo antes de un comando que descartaría trabajo sin confirmar, como `git reset --hard` o `rm -rf`, y muestra al clasificador si hay trabajo preparado, modificado o sin seguimiento presente. Claude Code reporta archivos sin seguimiento en esa verificación incluso cuando la configuración de git del repositorio establece `status.showUntrackedFiles=no`.527 Claude Code también ejecuta `git status` a sí mismo antes de un comando que descartaría trabajo no confirmado, como `git reset --hard` o `rm -rf`, y muestra al clasificador si hay trabajo preparado, modificado o sin seguimiento presente. Claude Code informa archivos sin seguimiento en esa verificación incluso cuando la configuración de git del repositorio establece `status.showUntrackedFiles=no`.

520 528 

521 En las solicitudes del clasificador enviadas por Claude Code mismo, el clasificador ve mensajes de usuario, llamadas de herramienta que no sean búsquedas de solo lectura como lecturas de archivo y búsquedas, y su contenido CLAUDE.md. Los resultados de herramientas se eliminan, por lo que el contenido hostil en un archivo o página web no puede manipularlo directamente. Puede anotar el resultado de una llamada con el campo `classifierContext` del hook [PostToolUse](/docs/es/hooks#annotate-a-result-for-the-auto-mode-classifier), que el clasificador lee como contexto proporcionado por la aplicación. El campo requiere Claude Code v2.1.236 o posterior.529 En las solicitudes del clasificador enviadas por Claude Code mismo, el clasificador ve mensajes de usuario, llamadas de herramienta que no sean búsquedas de solo lectura como lecturas de archivo y búsquedas, y su contenido de CLAUDE.md. Los resultados de herramientas se eliminan de esas solicitudes, por lo que el contenido hostil en un archivo o página web no puede manipular el clasificador directamente.

522 530 

523 Una sonda separada del lado del servidor escanea los resultados de herramientas entrantes y marca contenido sospechoso antes de que Claude lo lea. Para más información sobre cómo funcionan juntas estas capas, consulte el [anuncio de modo automático](https://claude.com/blog/auto-mode) y la [inmersión profunda de ingeniería](https://www.anthropic.com/engineering/claude-code-auto-mode).531 Puede anotar el resultado de una llamada con el campo `classifierContext` de un [gancho PostToolUse](/docs/es/hooks#annotate-a-result-for-the-auto-mode-classifier), que el clasificador lee como contexto proporcionado por la aplicación. El campo requiere Claude Code v2.1.236 o posterior.

532 

533 Una sonda separada del lado del servidor escanea los resultados de herramientas entrantes y marca contenido sospechoso antes de que Claude lo lea. Para obtener más información sobre cómo funcionan estas capas juntas, consulte el [anuncio del modo automático](https://claude.com/blog/auto-mode) y la [inmersión profunda de ingeniería](https://www.anthropic.com/engineering/claude-code-auto-mode).

524 </Accordion>534 </Accordion>

525 535 

526 <Accordion title="Cómo el modo automático maneja subagentes">536 <Accordion title="Cómo el modo automático maneja subagentes">

527 El clasificador verifica el trabajo de [subagentes](/docs/es/sub-agents) en tres puntos:537 El clasificador verifica el trabajo de [subagente](/docs/es/sub-agents) en tres puntos:

528 538 

529 1. Antes de que comience un subagente, se evalúa la descripción de tarea delegada, por lo que una tarea de aspecto peligroso se bloquea en el momento del desove.539 1. Antes de que comience un subagente, se evalúa la descripción de la tarea delegada, por lo que una tarea que parece peligrosa se bloquea en el momento del desove.

530 2. Mientras se ejecuta el subagente, cada una de sus acciones pasa por el clasificador con las mismas reglas que la sesión principal, y cualquier `permissionMode` en el frontmatter del subagente se ignora.540 2. Mientras el subagente se ejecuta, cada una de sus acciones pasa por el clasificador con las mismas reglas que la sesión principal, y cualquier `permissionMode` en el frontmatter del subagente se ignora.

531 3. Cuando el subagente termina, el clasificador revisa su trabajo y su informe final antes de que el padre lea el informe. Cuando el clasificador marca el trabajo o informe del subagente, o una verificación de seguridad de API separada rechaza la revisión, el informe aún se entrega, antepuesto con una advertencia de seguridad. Cuando el clasificador no está disponible para la revisión, el informe llega con una nota para verificar el trabajo del subagente antes de actuar en consecuencia.541 3. Cuando el subagente termina, el clasificador revisa su trabajo y su informe final antes de que el principal lea el informe. Cuando el clasificador marca el trabajo o informe del subagente, o una verificación de seguridad de API separada rechaza la revisión, el informe se entrega de todas formas, precedido de una advertencia de seguridad. Cuando el clasificador no está disponible para la revisión, el informe llega con una nota para verificar el trabajo del subagente antes de actuar en consecuencia.

532 </Accordion>542 </Accordion>

533 543 

534 <Accordion title="Costo y latencia">544 <Accordion title="Costo y latencia">

535 El clasificador se ejecuta en Claude Sonnet 5 de forma predeterminada en lugar de en su selección `/model`. Un modelo clasificador que Anthropic configura del lado del servidor tiene prioridad sobre ese valor predeterminado. Cuando el modelo de su sesión es Claude Sonnet 4.6, o cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) excluye Sonnet 5, el clasificador se ejecuta en el modelo de su sesión en su lugar, o en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](/docs/es/model-config#work-with-fable); en proveedores que no sean la API de Anthropic, ese respaldo de Opus es el modelo Opus predeterminado del proveedor.545 El clasificador se ejecuta en Claude Sonnet 5 de forma predeterminada en lugar de en su selección `/model`. Un modelo clasificador que Anthropic configura del lado del servidor tiene precedencia sobre ese predeterminado. Cuando el modelo de su sesión es Claude Sonnet 4.6, o cuando [`availableModels`](/docs/es/model-config#restrict-model-selection) excluye Sonnet 5, el clasificador se ejecuta en el modelo de su sesión en su lugar, u en un modelo Opus cuando la sesión se ejecuta en un [modelo Fable](/docs/es/model-config#work-with-fable); en proveedores que no sean la API de Anthropic, ese respaldo de Opus es el modelo Opus predeterminado del proveedor.

536 546 

537 La primera solicitud de modo automático de la sesión valida el valor predeterminado de Sonnet 5: si la solicitud tiene éxito, Sonnet 5 permanece como el modelo clasificador de la sesión, y si falla porque el modelo no está disponible, la sesión usa el respaldo en su lugar. Después de que esa validación se resuelve, el modelo del clasificador no cambia para la sesión.547 La primera solicitud de modo automático de la sesión valida el predeterminado de Sonnet 5: si la solicitud tiene éxito, Sonnet 5 permanece como el modelo clasificador de la sesión, y si falla porque el modelo no está disponible, la sesión usa el respaldo en su lugar. Después de que esa validación se resuelve, el modelo del clasificador no cambia para la sesión.

538 548 

539 En planes Enterprise y en cuentas que usan la API de Claude, [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, agregando un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red. Donde el servidor revisa las acciones como parte de las solicitudes del modelo de la sesión, no hay solicitudes del clasificador separadas para contar; consulte [Revisión del clasificador del lado del servidor](#server-side-classifier-review).549 En planes Enterprise y en cuentas que usan la API de Claude, [Claude Platform en AWS](/docs/es/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, las llamadas del clasificador cuentan hacia su uso de tokens. Cada verificación envía una porción de la transcripción más la acción pendiente, agregando un viaje de ida y vuelta antes de la ejecución. Las lecturas y ediciones de directorio de trabajo fuera de rutas protegidas omiten el clasificador, por lo que la sobrecarga proviene principalmente de comandos de shell y operaciones de red. Donde el servidor revisa las acciones como parte de las solicitudes del modelo de la sesión, no hay llamadas del clasificador separadas para contar; consulte [Revisión del clasificador del lado del servidor](#server-side-classifier-review).

540 550 

541 El acceso a la red de sandbox no agrega solicitudes del clasificador por conexión. El clasificador juzga [los hosts que un comando nombra](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) junto con el comando en una revisión, y Claude Code verifica cada conexión contra la lista aprobada sin llamar al clasificador nuevamente.551 El acceso a la red en sandbox no agrega solicitudes del clasificador por conexión. El clasificador juzga [los hosts que un comando nombra](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) junto con el comando en una revisión, y Claude Code verifica cada conexión contra la lista aprobada sin llamar al clasificador de nuevo.

542 </Accordion>552 </Accordion>

543</AccordionGroup>553</AccordionGroup>

544 554 


566 576 

567El modo `bypassPermissions` desactiva los avisos de permisos y las comprobaciones de seguridad para que las llamadas a herramientas se ejecuten inmediatamente, incluidas las escrituras en [rutas protegidas](#protected-paths).577El modo `bypassPermissions` desactiva los avisos de permisos y las comprobaciones de seguridad para que las llamadas a herramientas se ejecuten inmediatamente, incluidas las escrituras en [rutas protegidas](#protected-paths).

568 578 

569Las [acciones que ningún modo aprueba automáticamente](#actions-no-mode-auto-approves) aún solicitan en este modo.579Las [acciones que ningún modo aprueba automáticamente](#actions-no-mode-auto-approves) aún solicitan en este modo. Las [Remove-Item en PowerShell](#remove-item-in-powershell) deniegan también se aplican en este modo.

570 580 

571Dos [salvaguardas de mensajería entre sesiones](/docs/es/cross-session-messaging) aún se aplican en este modo, y en sesiones de modo plan de terminal interactivo donde los permisos de omisión están disponibles:581Dos [salvaguardas de mensajería entre sesiones](/docs/es/cross-session-messaging) aún se aplican en este modo, y en sesiones de modo plan de terminal interactivo donde los permisos de omisión están disponibles:

572 582 


623 633 

624En una sesión iniciada con [`--restricted`](/docs/es/cli-reference#cli-flags), que requiere Claude Code v2.1.248 o posterior, el clasificador no puede aprobar escrituras en rutas protegidas.634En una sesión iniciada con [`--restricted`](/docs/es/cli-reference#cli-flags), que requiere Claude Code v2.1.248 o posterior, el clasificador no puede aprobar escrituras en rutas protegidas.

625 635 

626Las reglas [`permissions.allow`](/docs/es/permissions#manage-permissions) en archivos de configuración no pre-aprueban escrituras en rutas protegidas. La verificación de seguridad se ejecuta antes de que Claude Code evalúe las reglas de permitir desde la configuración, por lo que una entrada como `Edit(.claude/**)` en `~/.claude/settings.json` o `.claude/settings.json` no cambia el resultado por modo en la tabla anterior. En modos que solicitan, el aviso para una escritura en `.claude/` ofrece **Sí, y permitir que Claude edite su propia configuración para esta sesión**, que aprueba escrituras posteriores en `.claude/` en esa sesión sin solicitar nuevamente.636En los modos que enrutan escrituras en rutas protegidas al clasificador, una escritura que la [verificación de enlaces simbólicos](/docs/es/permissions#symlinks) resuelve a una ruta protegida le solicita en su lugar cuando la ruta que Claude solicitó no está protegida en sí misma.

637 

638Las reglas [`permissions.allow`](/docs/es/permissions#manage-permissions) en archivos de configuración no pre-aprueban escrituras en rutas protegidas. La verificación de seguridad se ejecuta antes de que Claude Code evalúe las reglas de permitir desde la configuración, por lo que una entrada como `Edit(.claude/**)` en `~/.claude/settings.json` o `.claude/settings.json` no cambia el resultado por modo en la tabla anterior. En modos de permisos que solicitan, el aviso para una escritura en la carpeta `.claude/` del proyecto o en `~/.claude/` puede ofrecer una de estas opciones con alcance de sesión:

639 

640* Para la carpeta `.claude/` del proyecto: **Sí, y permitir que Claude edite archivos en la carpeta .claude de este proyecto para esta sesión**

641* Para `~/.claude/`: **Sí, y permitir que Claude edite archivos en su carpeta \~/.claude para esta sesión**

627 642 

628Directorios protegidos:643Directorios protegidos:

629 644 


661| Modo | Qué hace Claude Code con una eliminación de ruta crítica |676| Modo | Qué hace Claude Code con una eliminación de ruta crítica |

662| :- | :- |677| :- | :- |

663| `default`, `acceptEdits` | Le solicita que la apruebe |678| `default`, `acceptEdits` | Le solicita que la apruebe |

664| `plan` | Le solicita que la apruebe. Con [modo automático disponible durante la planificación](#analyze-before-you-edit-with-plan-mode) y sin permisos de omisión disponibles, la envía al clasificador en su lugar |679| `plan` | Le solicita que la apruebe. Cuando [el clasificador revisa comandos durante la planificación](#analyze-before-you-edit-with-plan-mode) y no hay permisos de omisión disponibles, la maneja como en modo `auto` |

665| `auto` | La envía al [clasificador](#eliminate-prompts-with-auto-mode) |680| `auto` | Le solicita que la apruebe en la terminal, con un límite de tiempo. En otros lugares, la deniega |

666| `dontAsk` | La deniega |681| `dontAsk` | La deniega |

667| `bypassPermissions` | Le solicita que la apruebe |682| `bypassPermissions` | Le solicita que la apruebe, con un límite de tiempo en la terminal |

683 

684Si una [regla `ask`](/docs/es/permissions#manage-permissions) explícita coincide con el comando, Claude Code le solicita incluso en modo `auto` y sin límite de tiempo. En modos que solicitan, un [hook `PermissionRequest`](/docs/es/hooks#permissionrequest) puede responder el aviso.

668 685 

669Si una [regla `ask`](/docs/es/permissions#manage-permissions) explícita coincide con el comando, Claude Code le solicita incluso en modo `auto`. En modos que solicitan, un [hook `PermissionRequest`](/docs/es/hooks#permissionrequest) puede responder el aviso de la manera que responde cualquier otro.686El manejo de `auto` y `bypassPermissions` requiere Claude Code v2.1.281 o posterior. Para desactivarlo, establezca [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](/docs/es/env-vars#variables) en el entorno que inicia Claude Code. En modo `auto`, las eliminaciones de rutas críticas van al clasificador en su lugar, y en modo `bypassPermissions` el aviso no tiene límite de tiempo.

687 

688En modos `auto` y `bypassPermissions`, el aviso de la terminal muestra una cuenta regresiva de dos minutos:

689 

690* Si la cuenta regresiva se agota antes de que responda, Claude Code deniega el comando y le dice a Claude qué hacer en su lugar, para que una sesión desatendida siga funcionando.

691* Presione cualquier tecla mientras el aviso está abierto para detener la cuenta regresiva y mantener el aviso esperando su respuesta.

692* Después de que tres de estos avisos se agoten sin respuesta en una sesión, Claude Code deja de mostrarlos y deniega las eliminaciones de rutas críticas posteriores inmediatamente. Enviar un nuevo mensaje reinicia el contador.

693 

694En modo `auto`, dondequiera que Claude Code no pueda mostrarle un aviso de terminal, deniega el comando inmediatamente, por ejemplo en [ejecuciones no interactivas](/docs/es/headless) con `-p`, en sesiones de [Agent SDK](/docs/es/agent-sdk/permissions), y en el panel de chat de la extensión de VS Code y la aplicación de escritorio. La denegación le dice a Claude que informe qué quería eliminar y deje la eliminación para usted.

670 695 

671Claude Code trata un objetivo `rm` o `rmdir` como una ruta crítica cuando es cualquiera de los siguientes:696Claude Code trata un objetivo `rm` o `rmdir` como una ruta crítica cuando es cualquiera de los siguientes:

672 697 


684* Para una variable como `$DIR`, proteja cada expansión para que el shell se detenga con un error cuando la variable no esté configurada o esté vacía, como en `rm -rf "${DIR:?}"/*`, o use una ruta literal709* Para una variable como `$DIR`, proteja cada expansión para que el shell se detenga con un error cuando la variable no esté configurada o esté vacía, como en `rm -rf "${DIR:?}"/*`, o use una ruta literal

685* Para una variable que normalmente está configurada, como `$HOME`, use una ruta literal710* Para una variable que normalmente está configurada, como `$HOME`, use una ruta literal

686 711 

687Una eliminación cuyas expansiones están todas protegidas de esa manera no es una eliminación de ruta crítica, por lo que en modo `bypassPermissions` se ejecuta sin un aviso.712Una eliminación cuyas expansiones están todas protegidas de esa manera pasa esta verificación, por lo que en modo `bypassPermissions` se ejecuta sin un aviso a menos que otra verificación en esta sección la marque.

713 

714Claude Code también trata estos objetivos como rutas críticas:

715 

716* **Una variable de shell seguida de un nombre de directorio de nivel superior**, como `rm -rf "$TMPDIR/mnt"`: cuando la variable se expande vacía, el comando elimina `/mnt`. Esto cubre nombres de nivel superior comunes como `mnt`, `tmp`, `usr` y `Users`.

717* **Una variable que el mismo comando asigna desde una sustitución de impresión de directorio**, como `D=$(pwd); rm -rf "$D"` o una asignación desde `$(git rev-parse --show-toplevel)`: el valor puede nombrar su directorio de trabajo o raíz del repositorio. Una protección `"${D:?}"` no borra esta verificación, porque la variable no está vacía; use una ruta literal en su lugar.

718* **Un objetivo de solo barra invertida**, como `rm -rf "\\"`: Git Bash en Windows lee una barra invertida sola como la raíz de la unidad actual, por lo que la verificación se aplica en todas las plataformas.

719* **Solo la salida de una sustitución de comando**, como `rm -rf "$(pwd)"`, cuando el `rm` es recursivo: Claude Code no puede verificar el objetivo antes de que se ejecute el comando, por lo que el aviso le dice a Claude que ejecute la sustitución por su cuenta primero y luego elimine las rutas literales que imprime. Para desactivar esta verificación, establezca [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/es/env-vars#variables) en el entorno que inicia Claude Code.

720 

721Cuando una sustitución de comando final puede expandirse vacía, como en `rm -rf ~/$(cmd)`, Claude Code verifica la ruta que permanecería, su directorio de inicio en este ejemplo.

688 722 

689Ocultar la eliminación dentro de una subshell con `(...)`, un grupo de llaves con `{ ...; }`, sustitución de comandos con `$(...)` o comillas invertidas, o sustitución de procesos con `<(...)`, no omite la verificación. Claude Code encuentra una eliminación de ruta crítica ya sea que esté dentro de la forma anidada, como en `(rm -rf ~)` o `echo "$(rm -rf ~)"`, o en otro lugar del mismo comando.723Ocultar la eliminación dentro de una subshell con `(...)`, un grupo de llaves con `{ ...; }`, sustitución de comandos con `$(...)` o comillas invertidas, o sustitución de procesos con `<(...)`, no omite la verificación. Claude Code encuentra una eliminación de ruta crítica ya sea que esté dentro de la forma anidada, como en `(rm -rf ~)` o `echo "$(rm -rf ~)"`, o en otro lugar del mismo comando.

690 724 


692 Remove-Item en PowerShell726 Remove-Item en PowerShell

693</h3>727</h3>

694 728 

695Cuando habilita la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool), Claude Code da a `Remove-Item` su propia verificación, separada de la lista de rutas críticas `rm`. El resultado depende del objetivo, y se aplica el primer caso coincidente:729Cuando habilita la [herramienta PowerShell](/docs/es/tools-reference#powershell-tool), Claude Code da a `Remove-Item` y a los comandos integrados de `cmd` `rd`, `rmdir`, `del` y `erase` sus propias verificaciones, separadas de la lista de rutas críticas `rm`. Para `Remove-Item`, el resultado depende del objetivo, y se aplica el primer caso coincidente:

696 730 

697* **Rutas del sistema**: la raíz del sistema de archivos y sus directorios de nivel superior, raíces de unidad y sus directorios de nivel superior, y su directorio de inicio. Claude Code deniega el comando en todos los modos, sin solicitarle.731* **Rutas del sistema**: la raíz del sistema de archivos y sus directorios de nivel superior, raíces de unidad y sus directorios de nivel superior, y su directorio de inicio. Claude Code deniega el comando en todos los modos, sin solicitarle.

698* **Comodines**: un `*` desnudo, o cualquier objetivo que termine en `/*` o `\*`, incluido un glob bajo una variable de shell como `$dir/*`. Claude Code deniega el comando en todos los modos, sin solicitarle, antes de que el [clasificador](#eliminate-prompts-with-auto-mode) lo vea.732* **Comodines**: un `*` desnudo, o cualquier objetivo que termine en `/*` o `\*`, incluido un glob bajo una variable de shell como `$dir/*`. Claude Code deniega el comando en todos los modos, sin solicitarle, antes de que el [clasificador](#eliminate-prompts-with-auto-mode) lo vea.

699* **Su directorio de trabajo o uno de sus padres, con `-Recurse`**: Claude Code trata el comando como cualquier otro que necesita aprobación en su modo de permisos, por lo que le solicita en modos que solicitan, lo envía al clasificador en modo `auto` y lo deniega en modo `dontAsk`. El modo `bypassPermissions` omite esta verificación.733* **Su directorio de trabajo o uno de sus padres, con `-Recurse`**: Claude Code trata el comando como cualquier otro que necesita aprobación en su modo de permisos, por lo que le solicita en modos que solicitan, lo envía al clasificador en modo `auto` y lo deniega en modo `dontAsk`. El modo `bypassPermissions` omite esta verificación.

700 734 

735El caso de rutas del sistema también se aplica a `rd`, `rmdir`, `del` y `erase` cuando Claude los ejecuta a través de `cmd`, como en `cmd /c rd /s /q C:\Users`. De forma predeterminada, Claude Code deniega tal comando en todos los modos, sin solicitarle. Esta verificación de `cmd` requiere Claude Code v2.1.283 o posterior.

736 

737Al juzgar un objetivo de `cmd`, Claude Code trata una variable de PowerShell que sigue texto literal como vacía. Eso hace que `cmd /c rd /s /q "C:\$name"` sea una eliminación de `C:\`, por lo que también se deniega. Un comodín final cuenta como la carpeta que vacía, por lo que `cmd /c del /q C:\*` se deniega y `cmd /c del /q dist\*` en su proyecto no.

738 

739Para desactivar la verificación de `cmd`, establezca [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1`](/docs/es/env-vars#variables) en el entorno que inicia Claude Code. Claude Code ignora esta variable en el bloque `env` de un archivo de configuración. `Remove-Item` en una ruta del sistema permanece denegado de cualquier manera.

740 

701<h2 id="see-also">741<h2 id="see-also">

702 Véase también742 Véase también

703</h2>743</h2>

permissions.md +73 −46

Details

235</h4>235</h4>

236 236 

237<Tip>237<Tip>

238 Claude Code es consciente de los operadores de shell, por lo que una regla como `Bash(safe-cmd *)` no le dará permiso para ejecutar el comando `safe-cmd && other-cmd`. Los separadores de comandos reconocidos son `&&`, `||`, `;`, `|`, `|&`, `&` y saltos de línea. Una regla debe coincidir con cada subcomando de forma independiente.238 Claude Code es consciente de los operadores de shell, por lo que una regla como `Bash(safe-cmd *)` no le dará permiso para ejecutar el comando `safe-cmd && other-cmd`. Los separadores de comando reconocidos son `&&`, `||`, `;`, `|`, `|&`, `&` y saltos de línea. Una regla debe coincidir con cada subcomando de forma independiente.

239</Tip>239</Tip>

240 240 

241Las reglas de negación y solicitud se aplican cuando cualquier subcomando coincide con ellas, incluido un comando anidado dentro de un subshell, una sustitución de comandos o un cuerpo de flujo de control como un bucle `for`. Una regla de solicitud como `Bash(git clean *)` aún le solicita aprobación para `cd /tmp && git clean -f` o `echo "$(git clean -f)"`, incluso en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode).241Las reglas de negación y solicitud se aplican cuando cualquier subcomando coincide con ellas, incluido un comando anidado dentro de un subshell, una sustitución de comando o un cuerpo de flujo de control como un bucle `for`. Una regla de solicitud como `Bash(git clean *)` aún le solicita aprobación para `cd /tmp && git clean -f` o `echo "$(git clean -f)"`, incluso en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode).

242 242 

243Cuando `&&` o `||` no tiene nada después, como en `npm test &&`, Claude Code trata el comando como no analizable y no lo divide en subcomandos para coincidencia de reglas de permiso de solo lectura, por lo que una regla como `Bash(npm *)` no la aprueba.243Cuando `&&` o `||` no tiene nada después, como en `npm test &&`, Claude Code trata el comando como no analizable y no lo divide en subcomandos para la coincidencia de reglas de permiso, por lo que una regla como `Bash(npm *)` no lo aprueba.

244 244 

245Cuando aprueba un comando compuesto con "Sí, y no vuelvas a preguntar", Claude Code guarda una regla separada para cada subcomando que requiere aprobación, en lugar de una única regla para la cadena completa. Por ejemplo, aprobar `git status && npm test` guarda una regla para `npm test`, por lo que las invocaciones futuras de `npm test` se reconocen independientemente de lo que preceda a `&&`. Los subcomandos como `cd` en un subdirectorio generan su propia regla Read para esa ruta. Se pueden guardar hasta 5 reglas para un único comando compuesto.245Cuando aprueba un comando compuesto con "Sí, y no vuelvas a preguntar", Claude Code guarda una regla separada para cada subcomando que requiere aprobación, en lugar de una única regla para la cadena completa. Por ejemplo, aprobar `git status && npm test` guarda una regla para `npm test`, por lo que las invocaciones futuras de `npm test` se reconocen independientemente de lo que preceda al `&&`. Los subcomandos como `cd` en un directorio fuera de sus directorios de trabajo generan su propia regla Read para esa ruta. Se pueden guardar hasta 5 reglas para un único comando compuesto.

246 246 

247<h4 id="process-wrappers">247<h4 id="process-wrappers">

248 Envoltorios248 Envoltorios


256 256 

257Esta lista de envoltorios está integrada y no es configurable. Los ejecutores de entorno de desarrollo como `direnv exec`, `devbox run`, `mise exec`, `npx` y `docker exec` no están en la lista. Debido a que estas herramientas ejecutan sus argumentos como un comando, una regla como `Bash(devbox run *)` coincide con lo que viene después de `run`, incluido `devbox run rm -rf .`. Para aprobar el trabajo dentro de un ejecutor de entorno, escriba una regla específica que incluya tanto el ejecutor como el comando interno, como `Bash(devbox run npm test)`. Agregue una regla por cada comando interno que desee permitir.257Esta lista de envoltorios está integrada y no es configurable. Los ejecutores de entorno de desarrollo como `direnv exec`, `devbox run`, `mise exec`, `npx` y `docker exec` no están en la lista. Debido a que estas herramientas ejecutan sus argumentos como un comando, una regla como `Bash(devbox run *)` coincide con lo que viene después de `run`, incluido `devbox run rm -rf .`. Para aprobar el trabajo dentro de un ejecutor de entorno, escriba una regla específica que incluya tanto el ejecutor como el comando interno, como `Bash(devbox run npm test)`. Agregue una regla por cada comando interno que desee permitir.

258 258 

259Los envoltorios Exec como `watch`, `setsid`, `ionice` y `flock` no pueden ser aprobados automáticamente por una regla de prefijo como `Bash(watch *)`, por lo que en modo Manual siempre solicitan aprobación. Lo mismo se aplica a `find` con `-exec` o `-delete`: una regla `Bash(find *)` no cubre estas formas. Para aprobar una invocación específica, escriba una regla de coincidencia exacta para la cadena de comando completa.259Los envoltorios Exec como `watch`, `setsid`, `ionice` y `flock` no pueden ser aprobados automáticamente por una regla de prefijo como `Bash(watch *)`, por lo que en modo Manual siempre solicitan. Lo mismo se aplica a `find` con `-exec` o `-delete`: una regla `Bash(find *)` no cubre estas formas. Para aprobar una invocación específica, escriba una regla de coincidencia exacta para la cadena de comando completa.

260 260 

261<h4 id="bash-rule-limits">261<h4 id="bash-rule-limits">

262 Qué no coincide una regla de Bash262 Qué no coincide una regla de Bash


272 272 

273Sus otras reglas y el modo de permiso deciden los comandos en la última columna.273Sus otras reglas y el modo de permiso deciden los comandos en la última columna.

274 274 

275Para la aplicación de sistema de archivos y red que no depende del texto del comando, use [sandboxing](/docs/es/sandboxing). Para inspeccionar el texto completo del comando con su propia lógica antes de que se ejecute, use un hook [PreToolUse](#extend-permissions-with-hooks).275Para la aplicación del sistema de archivos y la red que no depende del texto del comando, use [sandboxing](/docs/es/sandboxing). Para inspeccionar el texto completo del comando con su propia lógica antes de que se ejecute, use un hook [PreToolUse](#extend-permissions-with-hooks).

276 276 

277<h4 id="read-only-commands">277<h4 id="read-only-commands">

278 Comandos de solo lectura278 Comandos de solo lectura

279</h4>279</h4>

280 280 

281Claude Code reconoce un conjunto integrado de comandos de Bash como de solo lectura y los ejecuta sin una solicitud de permiso en todos los modos, excepto para una ruta que [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) cierra. El conjunto incluye `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` y formas de solo lectura de `git`. El conjunto no es configurable; para requerir una solicitud para uno de estos comandos, agregue una regla `ask` o `deny` para él. En modo automático, estos comandos también pueden esperar la revisión del clasificador; vea [cómo el clasificador evalúa acciones](/docs/es/permission-modes#how-the-classifier-evaluates-actions).281Claude Code reconoce un conjunto integrado de comandos de Bash como de solo lectura y los ejecuta sin una solicitud de permiso en cada modo, excepto para una ruta que [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) cierra. El conjunto incluye `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` y formas de solo lectura de `git`. El conjunto no es configurable; para requerir una solicitud para uno de estos comandos, agregue una regla `ask` o `deny` para él. En modo automático, estos comandos también pueden esperar la revisión del clasificador; consulte [cómo el clasificador evalúa acciones](/docs/es/permission-modes#how-the-classifier-evaluates-actions).

282 282 

283Una redirección como `ls > out.txt` agrega una verificación en el destino. Vea [Redirections](#redirections).283Una redirección como `ls > out.txt` agrega una verificación en el destino. Consulte [Redirections](#redirections).

284 284 

285Los patrones glob sin comillas se permiten para comandos cuya bandera es de solo lectura, por lo que `ls *.ts` y `wc -l src/*.py` se ejecutan sin una solicitud.285Los patrones glob sin comillas se permiten para comandos cuya bandera es de solo lectura, por lo que `ls *.ts` y `wc -l src/*.py` se ejecutan sin una solicitud.

286 286 

287En modo Manual, los comandos de este conjunto aún solicitan aprobación en estos casos:287En modo Manual, los comandos de este conjunto aún solicitan en estos casos:

288 288 

289* **Globs sin comillas para comandos con banderas capaces de escritura**: comandos con banderas capaces de escritura o ejecución, como `find`, `sort`, `sed` y `git`, solicitan aprobación cuando hay un glob sin comillas presente, porque el glob podría expandirse a una bandera como `-delete`.289* **Globs sin comillas para comandos con banderas capaces de escritura**: comandos con banderas capaces de escritura o ejecución, como `find`, `sort`, `sed` y `git`, solicitan cuando hay un glob sin comillas presente, porque el glob podría expandirse a una bandera como `-delete`.

290* **`docker` apuntado a otro daemon**: formas de solo lectura de `docker` solicitan aprobación cuando el comando lleva una bandera que selecciona un daemon diferente, como `-H`, `--context` o `--url` y `--connection` de Podman.290* **`docker` apuntado a otro daemon**: las formas de solo lectura de `docker` solicitan cuando el comando lleva una bandera que selecciona un daemon diferente, como `-H`, `--context` o `--url` y `--connection` de Podman.

291* **`file` con banderas de apertura de ruta**: `file` solicita aprobación cuando pasa `-m`/`--magic-file` o `-f`/`--files-from`, porque esas banderas hacen que `file` abra las rutas nombradas en el valor de la bandera.291* **`file` con banderas de apertura de ruta**: `file` solicita cuando pasa `-m`/`--magic-file` o `-f`/`--files-from`, porque esas banderas hacen que `file` abra las rutas nombradas en el valor de la bandera.

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

293* **Comandos que el análisis no puede analizar**: cuando Claude Code no puede analizar completamente un comando, solicita aprobación en lugar de tratar el comando como de solo lectura. Los comandos más largos que 10,000 caracteres siempre solicitan aprobación porque exceden lo que el análisis analiza.293* **Comandos que el análisis no puede analizar**: cuando Claude Code no puede analizar completamente un comando, solicita aprobación en lugar de tratar el comando como de solo lectura. Los comandos más largos que 10,000 caracteres siempre solicitan porque exceden lo que el análisis analiza.

294 294 

295Un `cd` en una ruta dentro de su directorio de trabajo o un [directorio adicional](#working-directories) también es de solo lectura, y un comando compuesto como `cd packages/api && ls` se ejecuta sin una solicitud cuando cada parte se califica por sí sola. Estas combinaciones solicitan aprobación incluso cuando cada parte es de solo lectura:295Un `cd` en una ruta dentro de su directorio de trabajo o un [directorio adicional](#working-directories) también es de solo lectura, y un comando compuesto como `cd packages/api && ls` se ejecuta sin una solicitud cuando cada parte se califica por sí sola. Estas combinaciones solicitan incluso cuando cada parte es de solo lectura:

296 296 

297* **`cd` con `git`**: solicita aprobación cuando el `cd` cambia a un directorio diferente, ya que ejecutar `git` en un nuevo directorio puede ejecutar los hooks de ese directorio. Un `cd` cuyo destino se resuelve al directorio de trabajo actual es una no-operación y no desencadena la solicitud.297* **`cd` con `git`**: solicita cuando el `cd` cambia a un directorio diferente, ya que ejecutar `git` en un nuevo directorio puede ejecutar los hooks de ese directorio. Un `cd` cuyo destino se resuelve al directorio de trabajo actual es una no-operación y no desencadena la solicitud.

298* **`cd` con una redirección**: solicita aprobación cuando Claude Code no puede determinar contra qué directorio se resuelve el destino de redirección después de que se ejecuta el `cd`. Un comando cuyo único destino de redirección es `/dev/null`, como `cd app; grep -r pattern . 2>/dev/null`, no solicita aprobación, porque `/dev/null` no depende del directorio de trabajo.298* **`cd` con una redirección**: solicita cuando Claude Code no puede determinar contra qué directorio se resuelve el destino de redirección después de que se ejecuta el `cd`. Un comando cuyo único destino de redirección es `/dev/null`, como `cd app; grep -r pattern . 2>/dev/null`, no solicita, porque `/dev/null` no depende del directorio de trabajo.

299 299 

300<Warning>300<Warning>

301 Los patrones de permisos de Bash que intentan restringir argumentos de comandos son frágiles. Por ejemplo, `Bash(curl http://github.com/ *)` intenta restringir curl a URLs de GitHub, pero no coincidirá con variaciones como:301 Los patrones de permisos de Bash que intentan restringir argumentos de comando son frágiles. Por ejemplo, `Bash(curl http://github.com/ *)` intenta restringir curl a URLs de GitHub, pero no coincidirá con variaciones como:

302 302 

303 * Opciones antes de URL: `curl -X GET http://github.com/...`303 * Opciones antes de URL: `curl -X GET http://github.com/...`

304 * Protocolo diferente: `curl https://github.com/...`304 * Protocolo diferente: `curl https://github.com/...`


307 307 

308 Para un filtrado de URL más confiable, considere:308 Para un filtrado de URL más confiable, considere:

309 309 

310 * **Restringir herramientas de red de Bash**: use reglas de negación para detener `curl`, `wget` y comandos similares, luego use la herramienta WebFetch con permiso `WebFetch(domain:github.com)` para dominios permitidos. Una regla de negación no coincide con el mismo programa por ruta o dentro de `sh -c`, por lo que emparéjela con la [lista de permitidos de red del sandbox](/docs/es/sandboxing#network-isolation) cuando la restricción debe mantenerse; vea [qué no coincide una regla de Bash](#bash-rule-limits)310 * **Restringir herramientas de red de Bash**: use reglas de negación para detener `curl`, `wget` y comandos similares, luego use la herramienta WebFetch con permiso `WebFetch(domain:github.com)` para dominios permitidos. Una regla de negación no coincide con el mismo programa por ruta o dentro de `sh -c`, por lo que emparéjela con la [lista de permitidos de red del sandbox](/docs/es/sandboxing#network-isolation) cuando la restricción debe mantenerse; consulte [qué no coincide una regla de Bash](#bash-rule-limits)

311 * **Usar hooks PreToolUse**: implemente un hook que valide URLs en comandos de Bash y bloquee dominios no permitidos311 * **Usar hooks PreToolUse**: implemente un hook que valide URLs en comandos de Bash y bloquee dominios no permitidos

312 * **Agregar orientación CLAUDE.md**: describa sus patrones de curl permitidos en `CLAUDE.md`. Esto forma lo que Claude intenta pero no aplica un límite, por lo que emparéjelo con una de las opciones anteriores312 * **Agregar orientación CLAUDE.md**: describa sus patrones de curl permitidos en `CLAUDE.md`. Esto forma lo que Claude intenta pero no aplica un límite, por lo que emparéjelo con una de las opciones anteriores

313 313 


347}347}

348```348```

349 349 

350Los alias comunes se canonicalizan antes de coincidir. Una regla escrita para el nombre del cmdlet también coincide con sus alias, por lo que `PowerShell(Get-ChildItem *)` coincide con `gci`, `ls` y `dir` también. La coincidencia no distingue mayúsculas de minúsculas.350Los alias comunes se canonicalizan antes de la coincidencia. Una regla escrita para el nombre del cmdlet también coincide con sus alias, por lo que `PowerShell(Get-ChildItem *)` coincide con `gci`, `ls` y `dir` también. La coincidencia no distingue mayúsculas de minúsculas.

351 351 

352Claude Code analiza el AST de PowerShell y verifica cada comando en un comando compuesto de forma independiente. Los operadores de pipeline `|`, separadores de declaración `;` y en PowerShell 7+ los operadores de cadena `&&` y `||` dividen un comando compuesto en subcomandos. Una regla debe coincidir con cada subcomando para que se permita el comando compuesto.352Claude Code analiza el AST de PowerShell y verifica cada comando en un comando compuesto de forma independiente. Los operadores de pipeline `|`, separadores de declaración `;` y en PowerShell 7+ los operadores de cadena `&&` y `||` dividen un comando compuesto en subcomandos. Una regla debe coincidir con cada subcomando para que se permita el comando compuesto.

353 353 


357 357 

358Para bloquear las herramientas de archivo de Claude de leer un archivo o directorio, agregue una regla de negación `Read` para su ruta, como `Read(./.env)` o `Read(./secrets/**)`; [Exclude sensitive files](/docs/es/settings-reference#exclude-sensitive-files) tiene un ejemplo listo para pegar.358Para bloquear las herramientas de archivo de Claude de leer un archivo o directorio, agregue una regla de negación `Read` para su ruta, como `Read(./.env)` o `Read(./secrets/**)`; [Exclude sensitive files](/docs/es/settings-reference#exclude-sensitive-files) tiene un ejemplo listo para pegar.

359 359 

360Las reglas `Edit` se aplican a todas las herramientas integradas que editan archivos. Claude hace un esfuerzo de mejor intento para aplicar reglas `Read` a todas las herramientas integradas que leen archivos como Grep y Glob, a menciones `@file` en sus solicitudes y a la selección y contexto de archivo abierto que un [IDE](/docs/es/vs-code#the-built-in-ide-mcp-server) conectado comparte con Claude.360Las reglas `Edit` se aplican a todas las herramientas integradas que editan archivos. Claude hace un esfuerzo de buena fe para aplicar reglas `Read` a todas las herramientas integradas que leen archivos como Grep y Glob, a menciones `@file` en sus indicaciones y a la selección y contexto de archivo abierto que un [IDE](/docs/es/vs-code#the-built-in-ide-mcp-server) conectado comparte con Claude.

361 361 

362Una regla de negación `Read` también bloquea las herramientas [Edit y Write](/docs/es/errors#file-is-covered-by-a-read-deny-rule) en la misma ruta, incluida la creación de un nuevo archivo allí. NotebookEdit no está cubierto, por lo que agregue una regla de negación `Edit` para rutas que ninguna herramienta pueda cambiar. La verificación requiere Claude Code v2.1.208 o posterior en ediciones, y v2.1.228 o posterior en escrituras.362Una regla de negación `Read` también bloquea las herramientas [Edit y Write](/docs/es/errors#file-is-covered-by-a-read-deny-rule) en la misma ruta, incluida la creación de un nuevo archivo allí. NotebookEdit no está cubierto, por lo que agregue una regla de negación `Edit` para rutas que ninguna herramienta pueda cambiar. La verificación requiere Claude Code v2.1.208 o posterior en ediciones, y v2.1.228 o posterior en escrituras.

363 363 

364Claude Code verifica permisos de archivo solo contra reglas `Edit(path)` y `Read(path)`. Si escribe una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta `MultiEdit` heredada en su lugar, Claude Code acepta la regla pero nunca la consulta, y [advierte al inicio](/docs/es/errors#is-not-matched-by-file-permission-checks), excepto para una regla `Glob` pasada en `--allowedTools`. Use `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Claude Code no advierte sobre una regla de nombre de herramienta sin ruta, como una regla de negación para `Write`; coincide esa regla a nivel de herramienta en todas partes. Requiere Claude Code v2.1.210 o posterior.364Claude Code verifica permisos de archivo solo contra reglas `Edit(path)` y `Read(path)`. Si escribe una regla de ruta para `Write`, `NotebookEdit`, `Glob` o la herramienta heredada `MultiEdit` en su lugar, Claude Code acepta la regla pero nunca la consulta, y [advierte al inicio](/docs/es/errors#is-not-matched-by-file-permission-checks), excepto para una regla `Glob` pasada en `--allowedTools`. Use `Edit(docs/**)` en lugar de `Write(docs/**)`, `NotebookEdit(docs/**)` o `MultiEdit(docs/**)`, y `Read(docs/**)` en lugar de `Glob(docs/**)`. Claude Code no advierte sobre una regla de nombre de herramienta sin ruta, como una regla de negación para `Write`; coincide esa regla a nivel de herramienta en todas partes. Requiere Claude Code v2.1.210 o posterior.

365 365 

366<Warning>366<Warning>

367 Las reglas de negación Read y Edit se aplican a las herramientas de archivo integradas de Claude, a comandos de archivo que Claude Code reconoce en Bash, como `cat`, `head`, `tail`, `sed` y `tee`, y a los destinos de [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, o a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para la aplicación a nivel del SO que bloquea todos los procesos de acceder a una ruta, [habilite el sandbox](/docs/es/sandboxing).367 Las reglas de negación Read y Edit se aplican a las herramientas de archivo integradas de Claude, a comandos de archivo que Claude Code reconoce en Bash, como `cat`, `head`, `tail`, `sed` y `tee`, y a los destinos de [redirecciones](#redirections) de Bash como `> file` y `< file`. No se aplican a un comando que lee archivos sin nombrarlos, como `grep -r pattern .` ejecutado desde el directorio que contiene el archivo, o a subprocesos arbitrarios que leen o escriben archivos indirectamente, como un script de Python o Node que abre archivos por sí mismo. Para la aplicación a nivel del SO que bloquea todos los procesos de acceder a una ruta, [habilite el sandbox](/docs/es/sandboxing).


380 Un patrón como `/Users/alice/file` no es una ruta absoluta. La barra inclinada inicial única se ancla en la fuente de configuración, no en la raíz del sistema de archivos. Use `//Users/alice/file` para rutas absolutas.380 Un patrón como `/Users/alice/file` no es una ruta absoluta. La barra inclinada inicial única se ancla en la fuente de configuración, no en la raíz del sistema de archivos. Use `//Users/alice/file` para rutas absolutas.

381</Warning>381</Warning>

382 382 

383Un patrón `/path` se ancla en un directorio asociado con la fuente de configuración que lo define, por lo que la misma regla coincide con ubicaciones diferentes dependiendo de dónde la coloque:383Un patrón `/path` se ancla en un directorio asociado con la fuente de configuración que lo define, por lo que la misma regla coincide con diferentes ubicaciones dependiendo de dónde la coloque:

384 384 

385| Regla definida en | `/path` se resuelve a |385| Regla definida en | `/path` se resuelve a |

386| :- | :- |386| :- | :- |


394 394 

395Las reglas de configuración local se anclan en el [directorio de trabajo principal](#working-directories) de la sesión, no en la raíz del repositorio donde Claude Code [almacena el archivo](#permission-system) en v2.1.211 y posterior. En una sesión iniciada en la raíz del repositorio, los dos directorios son iguales; en una sesión de [worktree](/docs/es/worktrees), una regla compartida como `Edit(/src/**)` coincide con el directorio `src/` propio de ese worktree.395Las reglas de configuración local se anclan en el [directorio de trabajo principal](#working-directories) de la sesión, no en la raíz del repositorio donde Claude Code [almacena el archivo](#permission-system) en v2.1.211 y posterior. En una sesión iniciada en la raíz del repositorio, los dos directorios son iguales; en una sesión de [worktree](/docs/es/worktrees), una regla compartida como `Edit(/src/**)` coincide con el directorio `src/` propio de ese worktree.

396 396 

397Una regla de negación como `Read(/secrets/**)` en configuración de usuario bloquea `~/.claude/secrets/**`, no un directorio `secrets` en su proyecto. Para escribir una regla en configuración de usuario que se aplique dentro de cada proyecto, use una ruta `//` absoluta o una ruta `~/` relativa a inicio en su lugar.397En Windows, las rutas se normalizan a forma POSIX antes de la coincidencia. `C:\Users\alice` se convierte en `/c/Users/alice`, por lo que use `//c/**/.env` para coincidir con archivos `.env` en cualquier lugar de esa unidad. Para coincidir en todas las unidades, use `//**/.env`.

398 

399En Windows, las rutas se normalizan a forma POSIX antes de coincidir. `C:\Users\alice` se convierte en `/c/Users/alice`, por lo que use `//c/**/.env` para coincidir con archivos `.env` en cualquier lugar de esa unidad. Para coincidir en todas las unidades, use `//**/.env`.

400 398 

401Ejemplos:399Ejemplos:

402 400 

403* `Edit(/docs/**)`: ediciones en `<primary working directory>/docs/`, no `/docs/` o `<primary working directory>/.claude/docs/`401* `Edit(/docs/**)`: edita en `<primary working directory>/docs/`, no en `/docs/` o `<primary working directory>/.claude/docs/`

404* `Read(~/.zshrc)`: lee el `.zshrc` de su directorio de inicio402* `Read(~/.zshrc)`: lee el `.zshrc` de su directorio de inicio

405* `Edit(//tmp/scratch.txt)`: edita la ruta absoluta `/tmp/scratch.txt`403* `Edit(//tmp/scratch.txt)`: edita la ruta absoluta `/tmp/scratch.txt`

406* `Read(src/**)`: como regla de permiso, lee desde `<current-directory>/src/` solo; como regla de negación o solicitud, coincide con un directorio `src` a cualquier profundidad bajo el directorio actual404* `Read(src/**)`: como regla de permiso, lee desde `<current-directory>/src/` solo; como regla de negación o solicitud, coincide con un directorio `src` a cualquier profundidad bajo el directorio actual


448 446 

449Una regla de negación o solicitud cuya ruta no es utilizable como patrón de gitignore aún protege esa ruta exacta. Una regla de permiso con un patrón no utilizable no aprueba nada.447Una regla de negación o solicitud cuya ruta no es utilizable como patrón de gitignore aún protege esa ruta exacta. Una regla de permiso con un patrón no utilizable no aprueba nada.

450 448 

451Un patrón de negación o solicitud que comienza con `!` es una negación de gitignore. Extrae las rutas que coincide de las reglas `path` o `./path` enumeradas antes. En la lista `deny` de un archivo de configuración, `Read(*.env)` seguido de `Read(!sample.env)` bloquea cada archivo cuyo nombre termina en `.env` a cualquier profundidad, excepto archivos nombrados `sample.env`. Una regla `!` enumerada primero no extrae nada.449Un patrón de negación o solicitud que comienza con `!` es una negación de gitignore. Extrae las rutas que coincide de las reglas `path` o `./path` listadas antes. En la lista `deny` de un archivo de configuración, `Read(*.env)` seguido de `Read(!sample.env)` bloquea cada archivo cuyo nombre termina en `.env` a cualquier profundidad, excepto archivos nombrados `sample.env`. Una regla `!` listada primero no extrae nada.

452 450 

453La extracción solo alcanza reglas de la misma fuente. Un `Read(!.env)` en configuración de proyecto o en `--disallowedTools` no cancela un `Read(./.env)` de negación de configuración administrada o cualquier otro archivo de configuración.451La extracción alcanza solo reglas de la misma fuente. Un `Read(!.env)` en configuración de proyecto o en `--disallowedTools` no cancela un `Read(./.env)` de negación de configuración administrada o cualquier otro archivo de configuración.

454 452 

455Dos límites estrechan lo que un patrón `!` puede extraer:453Dos límites estrechan lo que un patrón `!` puede extraer:

456 454 

457* Claude Code lee un patrón `!` relativo al directorio actual incluso cuando `/`, `~/` o `//` sigue a `!`, por lo que el patrón no puede alcanzar una regla anclada con uno de esos prefijos. `Read(!~/notes/public/**)` no extrae nada de `Read(~/notes/**)`.455* Claude Code lee un patrón `!` relativo al directorio actual incluso cuando `/`, `~/` o `//` sigue al `!`, por lo que el patrón no puede alcanzar una regla anclada con uno de esos prefijos. `Read(!~/notes/public/**)` no extrae nada de `Read(~/notes/**)`.

458* Una extracción no puede reabrir un archivo dentro de un directorio que una regla bloquea como un todo. Con `Read(secrets/**)` y `Read(!secrets/public/**)`, Claude Code aún bloquea `secrets/public` junto con el resto de `secrets`.456* Una extracción no puede reabrir un archivo dentro de un directorio que una regla bloquea en su totalidad. Con `Read(secrets/**)` y `Read(!secrets/public/**)`, Claude Code aún bloquea `secrets/public` junto con el resto de `secrets`.

457 

458<h4 id="symlinks">

459 Symlinks

460</h4>

461 

462Cuando una ruta de archivo que Claude solicita pasa a través de un symlink, la verificación de permiso cubre dos rutas: la que Claude solicitó y el archivo al que se resuelve. Esto se aplica a enlaces simbólicos en macOS, Linux y Windows, y a uniones de directorio en Windows.

459 463 

460Cuando Claude accede a un symlink, las reglas de permiso verifican dos rutas: el symlink en sí y el archivo al que se resuelve. Las reglas de permiso y negación tratan ese par de manera diferente: las reglas de permiso vuelven a solicitar aprobación, mientras que las reglas de negación bloquean directamente.464<h5 id="how-rules-match-a-symlinked-path">

465 Cómo las reglas coinciden con una ruta enlazada simbólicamente

466</h5>

461 467 

462* **Reglas de permiso**: se aplican solo cuando tanto la ruta del symlink como su destino coinciden. Un symlink dentro de un directorio permitido que apunta fuera de él aún le solicita aprobación.468Las reglas de permiso y negación tratan la ruta solicitada y el archivo al que se resuelve de manera diferente:

463* **Reglas de negación**: se aplican cuando la ruta del symlink o su destino coincide. Un symlink que apunta a un archivo negado está negado en sí mismo. Por ejemplo, con `Read(./project/**)` permitido y `Read(~/.ssh/**)` negado, un symlink en `./project/key` que apunta a `~/.ssh/id_rsa` está bloqueado: el destino falla la regla de permiso y coincide con la regla de negación.

464 469 

465En macOS y Linux, una regla de negación o solicitud escrita a través de un directorio con symlink con un patrón `//`, `~/` o `/` también se aplica en la ubicación real del directorio. Por ejemplo, en macOS, donde `/etc` se resuelve a `/private/etc`, `Read(//etc/**)` también bloquea `/private/etc/hosts`. Antes de v2.1.268, una regla de negación o solicitud escrita a través de un directorio con symlink no se aplicaba a una ruta dada por su ubicación real.470* **Reglas de permiso**: se aplican solo cuando tanto la ruta solicitada como el archivo al que se resuelve coinciden. Una lectura a través de un symlink dentro de un directorio permitido que apunta fuera de él no coincide con la regla.

471* **Reglas de negación**: se aplican cuando la ruta solicitada o el archivo al que se resuelve coincide. Un symlink que apunta a un archivo negado está negado. Por ejemplo, con `Read(./project/**)` permitido y `Read(~/.ssh/**)` negado, un symlink en `./project/key` que apunta a `~/.ssh/id_rsa` está bloqueado: el destino falla la regla de permiso y coincide con la regla de negación.

466 472 

467Cuando una herramienta abre un archivo aprobado, Claude Code [confirma que la ruta aún se resuelve a la ubicación que la verificación de permiso aprobó](/docs/es/errors#refusing-after-a-symlink-changed).473En macOS y Linux, una regla de negación o solicitud escrita a través de un directorio enlazado simbólicamente con un patrón `//`, `~/` o `/` también se aplica en la ubicación real del directorio. Por ejemplo, en macOS, donde `/etc` se resuelve a `/private/etc`, `Read(//etc/**)` también bloquea `/private/etc/hosts`. Antes de v2.1.268, una regla de negación o solicitud escrita a través de un directorio enlazado simbólicamente no se aplicaba a una ruta dada por su ubicación real.

468 474 

469Grep y Glob buscan el directorio al que se resuelve el argumento `path`. Claude Code aplica reglas de negación `Read` a ese directorio.475Grep y Glob buscan el directorio al que se resuelve el argumento `path`. Claude Code aplica reglas de negación `Read` a ese directorio.

470 476 

477<h5 id="writes-through-a-symlink">

478 Escrituras a través de un symlink

479</h5>

480 

481Si la ruta que Claude solicita editar o escribir es en sí misma un symlink, las herramientas Edit y Write [rechazan la escritura y dirigen a Claude al destino del enlace](/docs/es/errors#refusing-after-a-symlink-changed).

482 

483Una escritura aún puede pasar a través de un symlink cuando un directorio en el camino al archivo es un symlink, o cuando un comando de Bash o PowerShell hace la escritura. Para esas escrituras, lo que sucede depende de dónde se encuentra el archivo al que se resuelve la escritura en relación con sus [directorios de trabajo](#working-directories) y las [rutas protegidas](/docs/es/permission-modes#protected-paths):

484 

485* **Se resuelve fuera de los directorios de trabajo**: cuando la ruta solicitada está dentro de sus directorios de trabajo y el archivo al que se resuelve no, la escritura no se aprueba automáticamente en modo [`acceptEdits`](/docs/es/permission-modes#auto-approve-file-edits-with-acceptedits-mode). En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), a menos que una regla de permiso apruebe la escritura, se le solicita en lugar de que el clasificador decida. La solicitud nombra la ruta a la que se resuelve la escritura.

486* **Se resuelve a una ruta protegida que la ruta solicitada no nombra**: la [tabla de rutas protegidas](/docs/es/permission-modes#protected-paths) da el resultado para cada modo de permiso, excepto que donde la tabla enruta la escritura al clasificador, esta escritura le solicita en su lugar.

487 

488<h5 id="paths-that-can’t-be-resolved-or-that-change">

489 Rutas que no se pueden resolver o que cambian

490</h5>

491 

492Cuando Claude Code no puede determinar dónde lleva una ruta en el disco, por ejemplo porque los symlinks en ella forman un bucle, las herramientas Read, Edit y Write [rechazan la operación](/docs/es/errors#refusing-after-a-symlink-changed).

493 

494Cuando una herramienta luego abre el archivo aprobado, [confirma que la ruta aún se resuelve a la ubicación que la verificación de permiso aprobó](/docs/es/errors#refusing-after-a-symlink-changed).

495 

471<h3 id="webfetch">496<h3 id="webfetch">

472 WebFetch497 WebFetch

473</h3>498</h3>

474 499 

475Las reglas de WebFetch usan un prefijo `domain:` y coinciden contra el nombre de host de la URL solicitada. La coincidencia no distingue mayúsculas de minúsculas, admite comodines `*` y elimina un `.` final de la regla y el nombre de host para que `example.com.` y `example.com` se traten igual.500Las reglas de WebFetch usan un prefijo `domain:` y coinciden contra el nombre de host de la URL solicitada. La coincidencia no distingue mayúsculas de minúsculas, admite comodines `*` y elimina un punto final de ambas la regla y el nombre de host para que `example.com.` y `example.com` se traten igual.

476 501 

477* `WebFetch(domain:example.com)` coincide con solicitudes a `example.com`502* `WebFetch(domain:example.com)` coincide con solicitudes a `example.com`

478* `WebFetch(domain:*.example.com)` coincide con cualquier subdominio a cualquier profundidad, como `api.example.com` o `a.b.example.com`, pero no `example.com` en sí503* `WebFetch(domain:*.example.com)` coincide con cualquier subdominio a cualquier profundidad, como `api.example.com` o `a.b.example.com`, pero no `example.com` en sí

479* `WebFetch(domain:*)` coincide con cada dominio. No es lo mismo que una regla `WebFetch` desnuda; vea [Allow or deny every fetch](#allow-or-deny-every-fetch)504* `WebFetch(domain:*)` coincide con cada dominio. No es lo mismo que una regla `WebFetch` desnuda; consulte [Allow or deny every fetch](#allow-or-deny-every-fetch)

480 505 

481En cualquier posición que no sea un `*.` inicial o un `*` desnudo, el comodín coincide solo con el texto entre dos puntos. `WebFetch(domain:example.*)` coincide con `example.org`, donde `*` se convierte en `org`, pero no `example.evil.com`, donde `*` tendría que convertirse en `evil.com` y cruzar un punto. Esto evita que un comodín final coincida con dominios que un atacante podría registrar.506En cualquier posición que no sea un `*.` inicial o un `*` desnudo, el comodín coincide solo con el texto entre dos puntos. `WebFetch(domain:example.*)` coincide con `example.org`, donde `*` se convierte en `org`, pero no `example.evil.com`, donde `*` tendría que convertirse en `evil.com` y cruzar un punto. Esto evita que un comodín final coincida con dominios que un atacante podría registrar.

482 507 


488 513 

489Una regla `WebFetch` desnuda es el nombre de la herramienta sin una parte `domain:`, como `"deny": ["WebFetch"]`. Tanto ella como `WebFetch(domain:*)` cubren cada URL, pero Claude Code las aplica de manera diferente, y solo la forma `domain:` también agrega su dominio a la [lista de dominios permitidos o negados](/docs/es/sandboxing#network-isolation) del sandbox. Esa sección enumera las formas de comodín que el sandbox honra y la versión que agregó `*` desnudo.514Una regla `WebFetch` desnuda es el nombre de la herramienta sin una parte `domain:`, como `"deny": ["WebFetch"]`. Tanto ella como `WebFetch(domain:*)` cubren cada URL, pero Claude Code las aplica de manera diferente, y solo la forma `domain:` también agrega su dominio a la [lista de dominios permitidos o negados](/docs/es/sandboxing#network-isolation) del sandbox. Esa sección enumera las formas de comodín que el sandbox honra y la versión que agregó `*` desnudo.

490 515 

491Cada fila muestra qué hace una regla en la lista `allow` y en la lista `deny`:516Cada fila muestra lo que hace una regla en la lista `allow` y en la lista `deny`:

492 517 

493| Regla | En `allow` | En `deny` |518| Regla | En `allow` | En `deny` |

494| :- | :- | :- |519| :- | :- | :- |

495| `WebFetch` | Claude busca sin solicitarle aprobación. No cambia qué hosts pueden alcanzar los comandos en sandbox. | Claude Code elimina la herramienta `WebFetch`, por lo que Claude no puede buscar en absoluto. No cambia qué hosts pueden alcanzar los comandos en sandbox. |520| `WebFetch` | Claude busca sin solicitarle. No cambia qué hosts pueden alcanzar los comandos en sandbox. | Claude Code elimina la herramienta `WebFetch`, por lo que Claude no puede buscar en absoluto. No cambia qué hosts pueden alcanzar los comandos en sandbox. |

496| `WebFetch(domain:*)` | Claude busca sin solicitarle aprobación, y los comandos en sandbox pueden alcanzar cualquier host. | Claude Code mantiene la herramienta y rechaza cada búsqueda, y los comandos en sandbox no pueden alcanzar ningún host. |521| `WebFetch(domain:*)` | Claude busca sin solicitarle, y los comandos en sandbox pueden alcanzar cualquier host. | Claude Code mantiene la herramienta y rechaza cada búsqueda, y los comandos en sandbox no pueden alcanzar ningún host. |

497 522 

498Las dos formas también difieren en lecturas de [artefactos](/docs/es/artifacts), las páginas que la herramienta Artifact publica en claude.ai. Una regla de negación o solicitud `WebFetch` desnuda no se aplica a esas lecturas. Una regla `domain:` que cubre `claude.ai` o el host de contenido `*.claudeusercontent.com`, como `WebFetch(domain:claude.ai)` o `WebFetch(domain:*)`, niega cada lectura o solicita aprobación antes. Una regla [`Artifact`](/docs/es/artifacts#disable-artifacts) hace lo mismo.523Las dos formas también difieren en lecturas de [artefactos](/docs/es/artifacts), las páginas que la herramienta Artifact publica en claude.ai. Una regla `WebFetch` de negación o solicitud desnuda no se aplica a esas lecturas. Una regla `domain:` que cubre `claude.ai` o el host de contenido `*.claudeusercontent.com`, como `WebFetch(domain:claude.ai)` o `WebFetch(domain:*)`, niega cada lectura o solicita antes de ella. Una regla [`Artifact`](/docs/es/artifacts#disable-artifacts) hace lo mismo.

499 524 

500Cuando una regla bloquea una lectura, la negación nombra la regla. Antes de v2.1.268, una regla de negación `WebFetch` desnuda bloqueaba cada lectura de artefacto, y una regla de solicitud desnuda solicitaba aprobación antes de cada una.525Cuando una regla bloquea una lectura, la negación nombra la regla. Antes de v2.1.268, una regla `WebFetch` de negación desnuda bloqueaba cada lectura de artefacto, y una regla de solicitud desnuda solicitaba antes de cada una.

501 526 

502Para permitir que Claude busque libremente mientras mantiene la lista de permitidos del sandbox como está, use la forma desnuda. Este `settings.json` hace eso:527Para permitir que Claude busque libremente mientras mantiene la lista de permitidos del sandbox como está, use la forma desnuda. Este `settings.json` hace eso:

503 528 


509}534}

510```535```

511 536 

512Cuando le pide a Claude que busque una página, busca sin una solicitud. Cuando le pide que ejecute un `curl` [en sandbox](/docs/es/sandboxing) contra un host fuera de la lista de permitidos del sandbox, Claude Code aún le solicita aprobación para ese host, porque la regla desnuda no agregó el host a la lista de permitidos.537Cuando le pide a Claude que busque una página, busca sin una solicitud. Cuando le pide que ejecute un `curl` [en sandbox](/docs/es/sandboxing) contra un host fuera de la lista de permitidos del sandbox, Claude Code aún le solicita ese host, porque la regla desnuda no agregó el host a la lista de permitidos.

513 538 

514En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), Claude en su lugar nombra el host en los [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) del comando para que el clasificador revise.539En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), Claude en su lugar nombra el host en los [dominios permitidos por comando](/docs/es/sandboxing#per-command-allowed-domains-in-auto-mode) del comando para que el clasificador revise.

515 540 


523* `mcp__puppeteer__*` usa sintaxis de comodín y también coincide con todas las herramientas del servidor `puppeteer`548* `mcp__puppeteer__*` usa sintaxis de comodín y también coincide con todas las herramientas del servidor `puppeteer`

524* `mcp__puppeteer__puppeteer_navigate` coincide con la herramienta `puppeteer_navigate` proporcionada por el servidor `puppeteer`549* `mcp__puppeteer__puppeteer_navigate` coincide con la herramienta `puppeteer_navigate` proporcionada por el servidor `puppeteer`

525 550 

526Si su organización ha establecido una herramienta de [conector claude.ai](/docs/es/mcp#organization-controls-on-connector-tools) en `ask` y esa configuración llega a Claude Code en su sesión, las reglas de permiso para esa herramienta no tienen efecto: Claude Code solicita aprobación en cada llamada, incluso en modos `auto` y `bypassPermissions`. En modo `dontAsk`, que nunca solicita aprobación, Claude Code niega la llamada en su lugar. Las herramientas de conectores que Claude Code obtiene por sí mismo aparecen como `mcp__claude_ai_<server>__<tool>`.551Si su organización ha establecido una herramienta de conector [claude.ai](/docs/es/mcp#organization-controls-on-connector-tools) en `ask` y esa configuración llega a Claude Code en su sesión, las reglas de permiso para esa herramienta no tienen efecto: Claude Code solicita en cada llamada, incluso en modos `auto` y `bypassPermissions`. En modo `dontAsk`, que nunca solicita, Claude Code niega la llamada en su lugar. Las herramientas de conectores que Claude Code obtiene por sí mismo aparecen como `mcp__claude_ai_<server>__<tool>`.

527 552 

528En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop, Claude ejecuta comandos de shell a través de la herramienta `mcp__workspace__bash` de Cowork en lugar de la herramienta `Bash` integrada, y Cowork igualmente proporciona `mcp__workspace__web_fetch` para búsquedas web. Claude Code también aplica reglas de negación que nombran la herramienta `Bash` o `WebFetch` completa a estas herramientas de Cowork, por lo que una regla de negación `Bash` administrada detiene a Claude de ejecutar comandos de shell en Cowork. Cuando Claude Code bloquea tal llamada, el mensaje nombra la herramienta de Cowork: `Permission to use mcp__workspace__bash has been denied.` Las reglas de permiso no se transfieren: Claude Code nunca aplica una regla de permiso `Bash` a `mcp__workspace__bash`.553En una sesión de [Cowork](https://claude.com/docs/cowork/overview) en la aplicación Claude Desktop, Claude ejecuta comandos de shell a través de la herramienta `mcp__workspace__bash` de Cowork en lugar de la herramienta `Bash` integrada, y Cowork igualmente proporciona `mcp__workspace__web_fetch` para búsquedas web. Claude Code también aplica reglas de negación que nombran la herramienta `Bash` o `WebFetch` completa a estas herramientas de Cowork, por lo que una regla de negación `Bash` administrada detiene a Claude de ejecutar comandos de shell en Cowork. Cuando Claude Code bloquea tal llamada, el mensaje nombra la herramienta de Cowork: `Permission to use mcp__workspace__bash has been denied.` Las reglas de permiso no se transfieren: Claude Code nunca aplica una regla de permiso `Bash` a `mcp__workspace__bash`.

529 554 


553 578 

554Las reglas `Cd` controlan a qué directorios el comando [`/cd`](/docs/es/commands) puede mover la sesión. `Cd` no es una herramienta invocable por modelo: Claude no puede llamarla, y las reglas se aplican solo cuando ejecuta `/cd` usted mismo.579Las reglas `Cd` controlan a qué directorios el comando [`/cd`](/docs/es/commands) puede mover la sesión. `Cd` no es una herramienta invocable por modelo: Claude no puede llamarla, y las reglas se aplican solo cuando ejecuta `/cd` usted mismo.

555 580 

556Una regla de negación `Cd` desnuda deshabilita `/cd` completamente. Una regla de negación `Cd(<path-pattern>)` bloquea destinos coincidentes. Las reglas de negación verifican cada ortografía del destino, incluido cada salto de symlink que se resuelve, por lo que una regla escrita para una ruta también bloquea destinos que se resuelven a ella.581Una regla de negación `Cd` desnuda deshabilita `/cd` completamente. Una regla de negación `Cd(<path-pattern>)` bloquea destinos coincidentes. Las reglas de negación verifican cada ortografía del destino, incluido cada salto de symlink al que se resuelve, por lo que una regla escrita para una ruta también bloquea destinos que se resuelven a ella.

557 582 

558Agregar cualquier regla de permiso `Cd` cambia `/cd` a modo de lista de permitidos: el directorio de destino resuelto debe coincidir con una de sus reglas de permiso, o `/cd` rechaza. Sin reglas `Cd` configuradas, `/cd` mantiene su comportamiento predeterminado y le solicita que confíe en un directorio desconocido.583Agregar cualquier regla de permiso `Cd` cambia `/cd` a modo de lista de permitidos: el directorio de destino resuelto debe coincidir con una de sus reglas de permiso, o `/cd` rechaza. Sin reglas `Cd` configuradas, `/cd` mantiene su comportamiento predeterminado y le solicita que confíe en un directorio desconocido.

559 584 


705 730 

706Claude Code muestra el diálogo de confianza solo en sesiones interactivas. Una ejecución `claude -p` o una sesión SDK nunca lo muestra, y confiar en una carpeta principal no cuenta para estas reglas, por lo que [Lo que se ejecuta antes de confiar en una carpeta](#what-runs-before-you-trust-a-folder) dice qué contenido del repositorio Claude Code aún utiliza en cada una de esas dos situaciones.731Claude Code muestra el diálogo de confianza solo en sesiones interactivas. Una ejecución `claude -p` o una sesión SDK nunca lo muestra, y confiar en una carpeta principal no cuenta para estas reglas, por lo que [Lo que se ejecuta antes de confiar en una carpeta](#what-runs-before-you-trust-a-folder) dice qué contenido del repositorio Claude Code aún utiliza en cada una de esas dos situaciones.

707 732 

733Antes de que inicie o reinicie una [sesión en segundo plano](/docs/es/agent-view), Claude Code también verifica la confianza del espacio de trabajo para el directorio en el que se ejecuta la sesión. Si ejecuta `claude --bg` desde una terminal en un directorio en el que no ha confiado, el diálogo de confianza aparece primero y la sesión comienza una vez que lo acepta. Donde no puede aparecer ningún diálogo, como en un script, el comando sale con un error [`Workspace not trusted`](/docs/es/errors#workspace-not-trusted-when-dispatching-a-background-session) en su lugar.

734 

708<h3 id="when-your-local-settings-file-needs-trust">735<h3 id="when-your-local-settings-file-needs-trust">

709 Cuándo su archivo de configuración local necesita confianza736 Cuándo su archivo de configuración local necesita confianza

710</h3>737</h3>

platforms.md +1 −1

Details

53| | Desencadenante | Claude se ejecuta en | Configuración | Mejor para |53| | Desencadenante | Claude se ejecuta en | Configuración | Mejor para |

54| :- | :- | :- | :- | :- |54| :- | :- | :- | :- | :- |

55| [Dispatch](/docs/es/desktop#sessions-from-dispatch) | Envíe un mensaje con una tarea desde la aplicación móvil de Claude | Su máquina (Desktop) | [Empareje la aplicación móvil con Desktop](https://support.claude.com/en/articles/13947068) | Delegar trabajo mientras está fuera, configuración mínima |55| [Dispatch](/docs/es/desktop#sessions-from-dispatch) | Envíe un mensaje con una tarea desde la aplicación móvil de Claude | Su máquina (Desktop) | [Empareje la aplicación móvil con Desktop](https://support.claude.com/en/articles/13947068) | Delegar trabajo mientras está fuera, configuración mínima |

56| [Remote Control](/docs/es/remote-control) | Controle una sesión en ejecución desde [claude.ai/code](https://claude.ai/code) o la aplicación móvil de Claude | Su máquina (CLI o VS Code) | Ejecute `claude remote-control` | Dirigir el trabajo en progreso desde otro dispositivo |56| [Remote Control](/docs/es/remote-control) | Controle una sesión en ejecución desde [claude.ai/code](https://claude.ai/code) o la aplicación móvil de Claude | Su máquina (CLI, Desktop o VS Code) | Ejecute [`claude remote-control` o `/remote-control`](/docs/es/remote-control#start-a-remote-control-session) | Dirigir el trabajo en progreso desde otro dispositivo |

57| [Channels](/docs/es/channels) | Envíe eventos desde una aplicación de chat como Telegram o Discord, o su propio servidor | Su máquina (CLI) | [Instale un plugin de canal](/docs/es/channels#quickstart) o [cree el suyo propio](/docs/es/channels-reference) | Reaccionar a eventos externos como fallos de CI o mensajes de chat |57| [Channels](/docs/es/channels) | Envíe eventos desde una aplicación de chat como Telegram o Discord, o su propio servidor | Su máquina (CLI) | [Instale un plugin de canal](/docs/es/channels#quickstart) o [cree el suyo propio](/docs/es/channels-reference) | Reaccionar a eventos externos como fallos de CI o mensajes de chat |

58| [Slack](/docs/es/slack) | Mencione `@Claude` en un canal de equipo | Nube de Anthropic | [Instale la aplicación de Slack](/docs/es/slack#setting-up-claude-code-in-slack) con [Claude Code en la web](/docs/es/claude-code-on-the-web) habilitado | PRs y revisiones desde el chat del equipo |58| [Slack](/docs/es/slack) | Mencione `@Claude` en un canal de equipo | Nube de Anthropic | [Instale la aplicación de Slack](/docs/es/slack#setting-up-claude-code-in-slack) con [Claude Code en la web](/docs/es/claude-code-on-the-web) habilitado | PRs y revisiones desde el chat del equipo |

59| [Entornos autohospedados](/docs/es/self-hosted-environments) | Inicie una [sesión en la nube](/docs/es/claude-code-on-the-web) y seleccione el entorno de su organización | La infraestructura de su organización | [Implemente ejecutores](/docs/es/self-hosted-environments-quickstart), en planes Team y Enterprise | Sesiones en la nube que deben ejecutarse dentro de su red |59| [Entornos autohospedados](/docs/es/self-hosted-environments) | Inicie una [sesión en la nube](/docs/es/claude-code-on-the-web) y seleccione el entorno de su organización | La infraestructura de su organización | [Implemente ejecutores](/docs/es/self-hosted-environments-quickstart), en planes Team y Enterprise | Sesiones en la nube que deben ejecutarse dentro de su red |

plugin-evals.md +17 −2

Details

16* Detectar regresiones cuando cambia el plugin o se lanza un nuevo modelo16* Detectar regresiones cuando cambia el plugin o se lanza un nuevo modelo

17* Ver qué contribuye el plugin en comparación con ningún plugin17* Ver qué contribuye el plugin en comparación con ningún plugin

18 18 

19Esta página es para autores de plugins y skills que tienen un plugin funcional y desean probar su comportamiento, y para equipos que controlan cambios de plugins en CI. Su formato de caso es separado del archivo `evals/evals.json` que usa el [plugin skill-creator](/docs/es/skills#run-evals-with-skill-creator). Para crear un plugin, consulte [Crear un plugin](/docs/es/plugins/create); para verificar los archivos de un plugin en busca de errores de sintaxis y esquema en lugar de su comportamiento, use [`claude plugin validate`](/docs/es/plugins/cli-reference#plugin-validate).19Esta página es para autores de plugins y skills que tienen un plugin funcional y desean probar su comportamiento, y para equipos que controlan cambios de plugins en CI. Para iterar en una skill dentro de una conversación de Claude Code, el [plugin skill-creator](/docs/es/skills#run-evals-with-skill-creator) ejecuta una comparación similar con su propio formato `evals/evals.json`, y ninguna herramienta lee los archivos de casos de la otra. Para crear un plugin, consulte [Crear un plugin](/docs/es/plugins/create); para verificar los archivos de un plugin en busca de errores de sintaxis y esquema en lugar de su comportamiento, use [`claude plugin validate`](/docs/es/plugins/cli-reference#plugin-validate).

20 20 

21<Note>21<Note>

22 Cada ejecución de eval y cada calificador de juez es una llamada de modelo real en su cuenta, contada contra el uso de su plan o su factura de API, así que verifique los [requisitos](#requirements) primero. Luego [cree su primer conjunto de eval](#create-your-first-eval-suite), o vaya a [Ejecutar evals en CI](#run-evals-in-ci) si ya tiene uno.22 Cada ejecución de eval y cada calificador de juez es una llamada de modelo real en su cuenta, contada contra el uso de su plan o su factura de API, así que verifique los [requisitos](#requirements) primero. Luego [cree su primer conjunto de eval](#create-your-first-eval-suite), o vaya a [Ejecutar evals en CI](#run-evals-in-ci) si ya tiene uno.


29Para ejecutar evals de plugins necesita:29Para ejecutar evals de plugins necesita:

30 30 

31* Claude Code v2.1.269 o posterior. Ejecute `claude --version` para verificar y `claude update` para actualizar.31* Claude Code v2.1.269 o posterior. Ejecute `claude --version` para verificar y `claude update` para actualizar.

32* Git 2.31 o posterior, si git está instalado. Ejecute `git --version` para verificar. Con una versión anterior de git, `claude plugin eval` [se detiene antes de ejecutar cualquier caso](#git-is-too-old-for-claude-plugin-eval). Sin git, se ejecuta normalmente.

32* Un directorio de plugin con un manifiesto `plugin.json` o `.claude-plugin/plugin.json`, o un [plugin de directorio de skills](/docs/es/plugins/loading#plugins-shared-through-a-repository).33* Un directorio de plugin con un manifiesto `plugin.json` o `.claude-plugin/plugin.json`, o un [plugin de directorio de skills](/docs/es/plugins/loading#plugins-shared-through-a-repository).

33* La misma autenticación y proveedor de modelo que usan sus sesiones normales de Claude Code. Las ejecuciones de eval, los calificadores puntuados por juez, y `claude plugin eval init` llaman al modelo con sus credenciales, por lo que cuentan contra sus límites de uso del plan o su factura de API. Cuando el comando reporta un costo, la cifra es una [estimación de precio de lista](/docs/es/costs) de esas llamadas.34* La misma autenticación y proveedor de modelo que usan sus sesiones normales de Claude Code. Las ejecuciones de eval, los calificadores puntuados por juez, y `claude plugin eval init` llaman al modelo con sus credenciales, por lo que cuentan contra sus límites de uso del plan o su factura de API. Cuando el comando reporta un costo, la cifra es una [estimación de precio de lista](/docs/es/costs) de esas llamadas.

34 35 


440| 130 | Interrumpido. Los resultados parciales se escriben |441| 130 | Interrumpido. Los resultados parciales se escriben |

441| 143 | Terminado, como por un timeout de CI |442| 143 | Terminado, como por un timeout de CI |

442 443 

443Los problemas al escribir o publicar el informe HTML nunca cambian el código de salida.444El delta con-menos-sin se reporta pero nunca cambia el código de salida, y tampoco lo hacen los problemas al escribir o publicar el informe HTML.

444 445 

445Para ver por qué un caso puntuó bajo, ejecute localmente sin `--json` para que se impriman las líneas de progreso por ejecución y del calificador.446Para ver por qué un caso puntuó bajo, ejecute localmente sin `--json` para que se impriman las líneas de progreso por ejecución y del calificador.

446 447 


686 687 

687Esta es la primera ejecución contra un directorio que Claude Code aún no confía, y no puede preguntar porque stdin o stdout no es una terminal, pasó `--json`, o la variable de entorno `CI` está establecida en un valor verdadero como `true`. Ejecute `claude plugin eval <dir>` una vez en una terminal y responda el aviso, o pase `--trust-plugin` si confía en el código y conjunto del plugin. Vea [Lo que una ejecución puede acceder](#security).688Esta es la primera ejecución contra un directorio que Claude Code aún no confía, y no puede preguntar porque stdin o stdout no es una terminal, pasó `--json`, o la variable de entorno `CI` está establecida en un valor verdadero como `true`. Ejecute `claude plugin eval <dir>` una vez en una terminal y responda el aviso, o pase `--trust-plugin` si confía en el código y conjunto del plugin. Vea [Lo que una ejecución puede acceder](#security).

688 689 

690<h3 id="git-is-too-old-for-claude-plugin-eval">

691 "is too old for claude plugin eval"

692</h3>

693 

694El `git` en su `PATH` es anterior a 2.31, así que `claude plugin eval` se detuvo antes de ejecutar cualquier caso y salió 1 con un mensaje que nombra su versión:

695 

696```text theme={null}

697git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.

698```

699 

700Para cada ejecución, Claude Code desactiva los hooks de git, los asistentes de credenciales y otros programas que la configuración de git de un repositorio puede iniciar. Lo hace a través de la configuración del entorno que git lee solo desde la versión 2.31. Un git más antiguo ignora esa configuración, así que el conjunto se detiene en lugar de calificar ejecuciones donde esos programas podrían ejecutarse. Instale git 2.31 o posterior y ejecute el conjunto nuevamente.

701 

702Antes de v2.1.283, `claude plugin eval` no verificaba la versión de git, y en un git más antiguo el conjunto se ejecutaba con esos programas dejados activados.

703 

689<h3 id="no-eval-cases-found">704<h3 id="no-eval-cases-found">

690 "No eval cases found"705 "No eval cases found"

691</h3>706</h3>

Details

132 Próximos pasos132 Próximos pasos

133</h2>133</h2>

134 134 

135* [Publicar y distribuir un plugin](/docs/es/plugins/publish): las rutas hacia cada marketplace, incluido el marketplace oficial, que la sugerencia requiere135* [Publicar y distribuir un plugin](/docs/es/plugins/publish): las rutas para distribuir un plugin, incluido el marketplace oficial, que la sugerencia requiere

136* [Referencia de comandos de plugins](/docs/es/plugins/cli-reference#plugin-install): el comando shell que instala el mismo plugin fuera de una sesión136* [Referencia de comandos de plugins](/docs/es/plugins/cli-reference#plugin-install): el comando shell que instala el mismo plugin fuera de una sesión

Details

163 163 

164Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Cuando el plugin no está instalado en ese ámbito, el comando imprime una línea que comienza con `Failed to uninstall plugin "formatter@my-marketplace":` y sale con `1`.164Claude Code imprime `Successfully uninstalled plugin: formatter (scope: project)`. Cuando el plugin no está instalado en ese ámbito, el comando imprime una línea que comienza con `Failed to uninstall plugin "formatter@my-marketplace":` y sale con `1`.

165 165 

166Si la línea de fallo continúa con `"formatter" was not uninstalled:`, Claude Code no pudo confirmar que la configuración del ámbito ya no activa el plugin, por lo que el plugin permanece instalado con todo lo que guardó. Con `--json`, el resultado lleva `failureCode: "settings_still_on"`. Esta verificación de configuración requiere Claude Code v2.1.282 o posterior.

167 

168<h4 id="what-an-uninstall-deletes-and-keeps">

169 Qué elimina y qué conserva una desinstalación

170</h4>

171 

172Cuando desinstales un plugin del último ámbito en el que está instalado, Claude Code también elimina las [opciones y secretos](/docs/es/plugins/manifest-reference#user-configuration) almacenados del plugin y su directorio de datos, `~/.claude/plugins/data/<id>/`. Hay tres excepciones:

173 

174* Con `--keep-data`, el directorio de datos permanece

175* Cuando otro plugin instalado usa la misma carpeta, como uno cuyo ID difiere de este solo en mayúsculas, el directorio de datos permanece

176* Cuando Claude Code no puede leer la lista de plugins instalados después de eliminar el plugin de ese ámbito, las opciones, secretos y directorio de datos todos permanecen, porque el plugin puede estar aún instalado en otro ámbito. La desinstalación aún tiene éxito. El mensaje lista lo que permaneció y cómo eliminarlo, y con `--json` el resultado lleva `savedKept: "install_records_unreadable"`

177 

178Con `--json`, `keptData` reporta si el directorio permaneció, y `/plugin` muestra `· data preserved` cuando lo hizo. Para un directorio que permanece sin `--keep-data`, este reporte requiere Claude Code v2.1.281 o posterior. El campo `savedKept` requiere Claude Code v2.1.282 o posterior.

179 

166<h3 id="plugin-enable">180<h3 id="plugin-enable">

167 plugin enable181 plugin enable

168</h3>182</h3>


246 260 

247| Bandera | Descripción |261| Bandera | Descripción |

248| :- | :- |262| :- | :- |

249| `-s, --scope <scope>` | Ámbito a actualizar: `user`, `project`, `local` o `managed`. Por defecto es el ámbito en el que está instalado el plugin |263| `-s, --scope <scope>` | Ámbito a actualizar: `user`, `project`, `local` o `managed`. Se auto-detecta cuando se omite |

250| `-y, --yes` | Acepta un comando de instalación cambiado de un plugin [command-source](/docs/es/plugins/host-marketplace), sin el aviso. Requerido cuando stdin o stdout no es un TTY, a menos que pases `--accept-command`. Requiere Claude Code v2.1.229 o posterior |264| `-y, --yes` | Acepta un comando de instalación cambiado de un plugin [command-source](/docs/es/plugins/host-marketplace), sin el aviso. Requerido cuando stdin o stdout no es un TTY, a menos que pases `--accept-command`. Requiere Claude Code v2.1.229 o posterior |

251| `--accept-command <sha256>` | Acepta el comando declarado por el marketplace cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Requiere Claude Code v2.1.271 o posterior |265| `--accept-command <sha256>` | Acepta el comando declarado por el marketplace cuyo `sha256` una ejecución anterior de [`--json`](#plugin-json-result) reportó en `shownCommand`, en lugar de `-y`. No se puede combinar con `-y`. Requiere Claude Code v2.1.271 o posterior |

252| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |266| `--json` | Imprime el resultado como un objeto JSON en la última línea de stdout, en el [mismo formato que `plugin install --json`](#plugin-json-result). Requiere Claude Code v2.1.268 o posterior |

253 267 

268Si omites `--scope`, el comando actualiza el plugin en el ámbito más específico en el que está instalado para tu proyecto actual, verificando local, proyecto, usuario, luego managed.

269 

270Antes de v2.1.281, el comando usaba `user` cuando omitías `--scope`, por lo que actualizar un plugin instalado solo en ámbito de proyecto o local fallaba con `Plugin "<name>" is not installed at scope user`. En esas versiones, pasa `--scope`.

271 

254`managed` es el único ámbito que puedes actualizar pero no instalar. Para plugins instalados por administrador, consulta [Gestionar plugins para tu organización](/docs/es/plugins/org).272`managed` es el único ámbito que puedes actualizar pero no instalar. Para plugins instalados por administrador, consulta [Gestionar plugins para tu organización](/docs/es/plugins/org).

255 273 

256Actualiza un plugin:274Actualiza un plugin:

Details

413 413 

414 * **Construir su primer plugin**: comience con [Crear un plugin](/docs/es/plugins/create)414 * **Construir su primer plugin**: comience con [Crear un plugin](/docs/es/plugins/create)

415 * **Instalar el plugin de otra persona**: consulte [Instalar plugins](/docs/es/plugins/install)415 * **Instalar el plugin de otra persona**: consulte [Instalar plugins](/docs/es/plugins/install)

416 * **Los usuarios de su plugin están en claude.ai o en Cowork**: se carga un conjunto diferente de componentes allí. Consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview)416 * **Los usuarios de su plugin están en claude.ai o en Cowork**: se carga un conjunto diferente de componentes allí. Consulte [Estructura de plugins y pruebas](https://claude.com/docs/plugins/build) y la [tabla de compatibilidad de componentes](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)

417</Note>417</Note>

418 418 

419<h2 id="explore-the-plugin-directory">419<h2 id="explore-the-plugin-directory">


436 436 

437<PluginExplorer>437<PluginExplorer>

438 <Piece id="manifest">438 <Piece id="manifest">

439 El [manifiesto](/docs/es/plugins/manifest-reference) es el archivo `plugin.json` en el directorio `.claude-plugin/` de un plugin. Contiene los metadatos del plugin y los valores de `userConfig` que Claude Code solicita al usuario. Solo `name` es obligatorio. En este, `description` es el texto que los usuarios ven para el plugin en `/plugin`, y `version` mantiene a los usuarios en esa versión hasta que la cambie:439 El [manifiesto](/docs/es/plugins/manifest-reference) es el archivo `plugin.json` en el directorio `.claude-plugin/` de un plugin. Contiene los metadatos del plugin y los valores de `userConfig` que Claude Code solicita al usuario. Claude Code carga un plugin sin uno, pero el [directorio de Anthropic](/docs/es/plugins/publish#submit-to-anthropics-directory) lo requiere. Dentro del archivo, solo `name` es obligatorio. En este, `description` es el texto que los usuarios ven para el plugin en `/plugin`, y `version` mantiene a los usuarios en esa versión hasta que la cambie:

440 440 

441 ```json theme={null}441 ```json theme={null}

442 {442 {


838 Alcanzar usuarios en claude.ai y Cowork838 Alcanzar usuarios en claude.ai y Cowork

839</h4>839</h4>

840 840 

841Un servidor stdio local, como el servidor `db` bajo [Servidores MCP](#mcp-servers), se ejecuta en Claude Code y en una sesión de Cowork que se ejecuta en su máquina en la aplicación Claude Desktop, pero no en claude.ai. Para alcanzar a los usuarios allí también, haga referencia a un servidor remoto por su URL `https://`, que claude.ai y Cowork ofrecen al usuario como un conector.841Un servidor stdio local, como el servidor `db` bajo [Servidores MCP](#mcp-servers), se ejecuta en Claude Code y en una sesión de Cowork que se ejecuta en su máquina en la aplicación Claude Desktop, pero no en claude.ai. Para alcanzar a los usuarios allí también, haga referencia a un servidor remoto por su URL `https://`, que claude.ai y Cowork ofrecen al usuario como un conector, como [Agrupar un conector MCP con su skill](https://claude.com/docs/plugins/build#bundle-an-mcp-connector-with-its-skill) muestra.

842 842 

843<h4 id="server-names-tool-names-and-reloads">843<h4 id="server-names-tool-names-and-reloads">

844 Nombres de servidor, nombres de herramientas y recargas844 Nombres de servidor, nombres de herramientas y recargas


918 918 

919Los directorios `bin/` del plugin vienen después de las entradas `PATH` propias del usuario, así que un plugin no puede sombrear `git`, `ls` u otro comando del sistema.919Los directorios `bin/` del plugin vienen después de las entradas `PATH` propias del usuario, así que un plugin no puede sombrear `git`, `ls` u otro comando del sistema.

920 920 

921claude.ai y Cowork no instalan un plugin que tenga un directorio `bin/` de nivel superior, incluido uno que [distribuya a través de la configuración de la organización de claude.ai](/docs/es/plugins/host-marketplace#distribute-through-organization-settings).921claude.ai y Cowork no instalan un plugin que tenga un directorio `bin/` de nivel superior, incluido uno que [distribuya a través de la configuración de la organización de claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory).

922 922 

923<h3 id="default-settings">923<h3 id="default-settings">

924 Configuración predeterminada924 Configuración predeterminada

Details

15 15 

16 * **Instalar el plugin de otra persona**: consulte [Instalar plugins](/docs/es/plugins/install)16 * **Instalar el plugin de otra persona**: consulte [Instalar plugins](/docs/es/plugins/install)

17 * **No está seguro de si necesita un plugin**: consulte [Decidir si necesita un plugin](/docs/es/plugins/overview#decide-whether-you-need-a-plugin) en la descripción general17 * **No está seguro de si necesita un plugin**: consulte [Decidir si necesita un plugin](/docs/es/plugins/overview#decide-whether-you-need-a-plugin) en la descripción general

18 * **Los usuarios de su plugin están en claude.ai o en Cowork**: la misma carpeta se instala allí con un subconjunto diferente de componentes. Consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview)18 * **Los usuarios de su plugin están en claude.ai o en Cowork**: la misma carpeta se instala allí con un subconjunto diferente de componentes. Consulte [Estructura de plugins y pruebas](https://claude.com/docs/plugins/build) y la [tabla de compatibilidad de componentes](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)

19</Note>19</Note>

20 20 

21Comience desde la sección que coincida con lo que ya tiene:21Comience desde la sección que coincida con lo que ya tiene:


132 132 

133El plugin se carga solo en sesiones que inicia con `--plugin-dir`. Para continuar trabajando en él sin la bandera, o para probar una compilación `.zip`, consulte [Desarrollar sin un marketplace](#develop-without-a-marketplace).133El plugin se carga solo en sesiones que inicia con `--plugin-dir`. Para continuar trabajando en él sin la bandera, o para probar una compilación `.zip`, consulte [Desarrollar sin un marketplace](#develop-without-a-marketplace).

134 134 

135Para que Claude andamie y verifique un plugin más grande con usted, [instale](/docs/es/plugins/install#install-a-plugin) el plugin `plugin-dev` de Anthropic desde el marketplace `claude-plugins-official`, que agrega skills y agentes para escribir componentes como skills, hooks y servidores MCP y para validar el plugin terminado. Una vez que esté instalado, ejecute `/plugin-dev:create-plugin` seguido de una descripción del plugin que desea, y Claude lo guía a través del diseño, creación y validación.

136 

135<h3 id="share-the-plugin">137<h3 id="share-the-plugin">

136 Compartir su plugin138 Compartir su plugin

137</h3>139</h3>


140 142 

141* **Enviarlo a algunas personas directamente**: déles el directorio del plugin o un `.zip` del mismo, y nada necesita ser publicado. Consulte [Compartir un plugin sin un marketplace](/docs/es/plugins/publish#share-a-plugin-without-a-marketplace).143* **Enviarlo a algunas personas directamente**: déles el directorio del plugin o un `.zip` del mismo, y nada necesita ser publicado. Consulte [Compartir un plugin sin un marketplace](/docs/es/plugins/publish#share-a-plugin-without-a-marketplace).

142* **Listarlo en su propio marketplace**: los compañeros de equipo agregan su marketplace una vez e instalan el plugin por nombre, y reciben sus actualizaciones. Consulte [Publicar a través de su propio marketplace](/docs/es/plugins/publish#publish-through-your-own-marketplace).144* **Listarlo en su propio marketplace**: los compañeros de equipo agregan su marketplace una vez e instalan el plugin por nombre, y reciben sus actualizaciones. Consulte [Publicar a través de su propio marketplace](/docs/es/plugins/publish#publish-through-your-own-marketplace).

143* **Enviarlo al marketplace comunitario de Anthropic**: una vez que se lista, cualquiera que agregue ese marketplace puede instalarlo. Consulte [Enviar al marketplace comunitario](/docs/es/plugins/publish#submit-to-the-community-marketplace).145* **Enviarlo al directorio de Anthropic**: después de que pase la revisión, las personas pueden agregarlo en claude.ai y en Cowork, y llega a Claude Code a través de su cuenta. Consulte [Enviar al directorio de Anthropic](/docs/es/plugins/publish#submit-to-anthropics-directory).

144 146 

145<h3 id="plugin-layout">147<h3 id="plugin-layout">

146 Diseño del plugin148 Diseño del plugin


201 203 

202Si la carpeta no tiene un directorio `.claude-plugin/` y no tiene componentes de plugin en su nivel superior, Claude Code la trata como una carpeta de plugins. Cada subcarpeta inmediata que tenga un manifiesto `.claude-plugin/plugin.json` se carga como un plugin separado. Todo lo demás en la carpeta se omite sin un error, incluida una subcarpeta que no tiene manifiesto. Si un plugin en la carpeta no se carga, verifique que su subcarpeta tenga un `.claude-plugin/plugin.json`.204Si la carpeta no tiene un directorio `.claude-plugin/` y no tiene componentes de plugin en su nivel superior, Claude Code la trata como una carpeta de plugins. Cada subcarpeta inmediata que tenga un manifiesto `.claude-plugin/plugin.json` se carga como un plugin separado. Todo lo demás en la carpeta se omite sin un error, incluida una subcarpeta que no tiene manifiesto. Si un plugin en la carpeta no se carga, verifique que su subcarpeta tenga un `.claude-plugin/plugin.json`.

203 205 

206También puede pasar una carpeta que mantenga un `.claude-plugin/marketplace.json` junto a sus carpetas de plugins. Siempre que ese directorio `.claude-plugin/` no contenga `plugin.json`, los plugins en las carpetas aún se cargan. Nada se instala ni se habilita desde el archivo del marketplace, porque Claude Code no lo lee. Cargar plugins desde una carpeta de este tipo requiere Claude Code v2.1.281 o posterior.

207 

204En una sesión interactiva, también puede agregar y eliminar plugins en la carpeta después del inicio:208En una sesión interactiva, también puede agregar y eliminar plugins en la carpeta después del inicio:

205 209 

206* Una subcarpeta que agrega se carga como un nuevo plugin una vez que existe su manifiesto.210* Una subcarpeta que agrega se carga como un nuevo plugin una vez que existe su manifiesto.


417 421 

418* [Componentes de plugin](/docs/es/plugins/components): agregue agentes, hooks, servidores MCP, servidores LSP y configuración de usuario a su plugin422* [Componentes de plugin](/docs/es/plugins/components): agregue agentes, hooks, servidores MCP, servidores LSP y configuración de usuario a su plugin

419* [Probar plugins con evals](/docs/es/plugin-evals): escriba casos de eval y ejecútelos con `claude plugin eval` para verificar qué tan confiablemente el plugin guía el comportamiento de Claude423* [Probar plugins con evals](/docs/es/plugin-evals): escriba casos de eval y ejecútelos con `claude plugin eval` para verificar qué tan confiablemente el plugin guía el comportamiento de Claude

420* [Publicar un plugin](/docs/es/plugins/publish): versione, colóquelo en un marketplace y envíelo al marketplace comunitario424* [Publicar un plugin](/docs/es/plugins/publish): versione, colóquelo en un marketplace y envíelo para revisión

421* [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview): la misma carpeta de plugin se instala en claude.ai y en Cowork. Algunos componentes son solo de Claude Code425* [Estructura de plugin y pruebas](https://claude.com/docs/plugins/build): la misma carpeta de plugin se instala en claude.ai y en Cowork. Algunos componentes son solo de Claude Code, y la [tabla de compatibilidad de componentes](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) enumera cuáles se cargan en cada superficie

422* [Referencia del manifiesto del plugin](/docs/es/plugins/manifest-reference): cada campo `plugin.json`, regla de ruta y directorio426* [Referencia del manifiesto del plugin](/docs/es/plugins/manifest-reference): cada campo `plugin.json`, regla de ruta y directorio

423* [Skills](/docs/es/skills): escriba los skills que proporciona su plugin427* [Skills](/docs/es/skills): escriba los skills que proporciona su plugin

424* [Plugins de Anthropic en el repositorio claude-code](https://github.com/anthropics/claude-code/tree/main/plugins): ejemplos completos trabajados del diseño en esta página, como `feature-dev` y `code-review`428* [Plugins de Anthropic en el repositorio claude-code](https://github.com/anthropics/claude-code/tree/main/plugins): ejemplos completos trabajados del diseño en esta página, como `feature-dev` y `code-review`

Details

14 Estos casos se tratan en otras páginas:14 Estos casos se tratan en otras páginas:

15 15 

16 * **Compartir un plugin con algunas personas**: envíeles el directorio del plugin o un `.zip` del mismo. Consulte [Compartir un plugin sin un marketplace](/docs/es/plugins/publish#share-a-plugin-without-a-marketplace).16 * **Compartir un plugin con algunas personas**: envíeles el directorio del plugin o un `.zip` del mismo. Consulte [Compartir un plugin sin un marketplace](/docs/es/plugins/publish#share-a-plugin-without-a-marketplace).

17 * **Ofrecer un plugin a todos**: envíelo al marketplace comunitario de Anthropic. Consulte [Enviar al marketplace comunitario](/docs/es/plugins/publish#submit-to-the-community-marketplace).17 * **Ofrecer un plugin a todos**: envíelo al directorio de Anthropic. Consulte [Enviar al directorio de Anthropic](/docs/es/plugins/publish#submit-to-anthropics-directory).

18 * **Usar un plugin usted mismo**: cárguelo con `--plugin-dir` o guárdelo en su directorio de skills. Consulte [Desarrollar sin un marketplace](/docs/es/plugins/create#develop-without-a-marketplace).18 * **Usar un plugin usted mismo**: cárguelo con `--plugin-dir` o guárdelo en su directorio de skills. Consulte [Desarrollar sin un marketplace](/docs/es/plugins/create#develop-without-a-marketplace).

19</Note>19</Note>

20 20 

Details

89La sincronización de la organización es más estricta con el repositorio que `/plugin marketplace add`:89La sincronización de la organización es más estricta con el repositorio que `/plugin marketplace add`:

90 90 

91* **Repositorio de marketplace**: en github.com y gitlab.com, debe ser privado o interno91* **Repositorio de marketplace**: en github.com y gitlab.com, debe ser privado o interno

92* **Plugin sources**: cada plugin source debe ser de tipo `github`, `url` o `git-subdir`, o una [ruta relativa](/docs/es/plugins/marketplace-reference#relative-path-plugin-source) que comience con `./`92* **Plugin sources**: la sincronización de la organización acepta solo algunos [tipos de fuente](/docs/es/plugins/marketplace-reference#plugin-sources)

93* **Directorio `bin/` de nivel superior**: claude.ai rechaza un plugin que tiene uno y sincroniza el resto del marketplace. El mensaje de error comienza con `Plugin contains a top-level bin/ directory`. Mantenga los ejecutables en otro directorio, como `scripts/`, y haga referencia a ellos como `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` desde sus hooks o configuraciones de servidor MCP93* **Directorio `bin/` de nivel superior**: claude.ai rechaza un plugin que tiene uno y sincroniza el resto del marketplace. El mensaje de error comienza con `Plugin contains a top-level bin/ directory`. Mantenga los ejecutables en otro directorio, como `scripts/`, y haga referencia a ellos como `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` desde sus hooks o configuraciones de servidor MCP

94 94 

95Consulte [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) para el flujo de trabajo del administrador.95[Sync your organization's plugins from a repository](https://claude.com/docs/plugins/org-sync) en claude.com enumera las fuentes aceptadas, la configuración de GitLab y el error de `bin/`, y [Manage plugins for your organization](https://claude.com/docs/plugins/admin) cubre el flujo de trabajo del administrador.

96 96 

97<h2 id="grant-access-to-a-private-marketplace">97<h2 id="grant-access-to-a-private-marketplace">

98 Grant access to a private marketplace98 Grant access to a private marketplace


113 113 

114Para un host de GitHub Enterprise Server, los usuarios necesitan acceso de git a ese host desde su máquina. Consulte [Plugin marketplaces on GHES](/docs/es/github-enterprise-server#plugin-marketplaces-on-ghes) para ver qué necesita cada superficie de Claude Code para alcanzar un marketplace alojado en GHES.114Para un host de GitHub Enterprise Server, los usuarios necesitan acceso de git a ese host desde su máquina. Consulte [Plugin marketplaces on GHES](/docs/es/github-enterprise-server#plugin-marketplaces-on-ghes) para ver qué necesita cada superficie de Claude Code para alcanzar un marketplace alojado en GHES.

115 115 

116Si distribuye a través de **Organization settings > Plugins & skills** en claude.ai en su lugar, las credenciales de git de sus usuarios no están involucradas. Consulte [Distribute through organization settings](#distribute-through-organization-settings) para ver qué plugin sources pueden ser privados allí.116Si distribuye a través de **Organization settings > Plugins & skills** en claude.ai en su lugar, las credenciales de git de sus usuarios no están involucradas. Consulte [Distribute through organization settings](#distribute-through-organization-settings).

117 117 

118<h3 id="serve-users-who-have-no-git-host-account">118<h3 id="serve-users-who-have-no-git-host-account">

119 Serve users who have no git-host account119 Serve users who have no git-host account

Details

143El alcance de instalación de un plugin decide quién obtiene el plugin y qué archivo de configuración lo registra como habilitado:143El alcance de instalación de un plugin decide quién obtiene el plugin y qué archivo de configuración lo registra como habilitado:

144 144 

145* **User scope**: el plugin está habilitado para usted en cada proyecto en esta máquina. La entrada va en `enabledPlugins` en `~/.claude/settings.json`.145* **User scope**: el plugin está habilitado para usted en cada proyecto en esta máquina. La entrada va en `enabledPlugins` en `~/.claude/settings.json`.

146* **Project scope**: el plugin está habilitado para todos los que trabajan en este repositorio. La entrada va en `.claude/settings.json`, que usted confirma.146* **Project scope**: el plugin está habilitado para todos los que trabajan en este repositorio. La entrada va en `.claude/settings.json`, que usted confirma. Confirmar esa entrada activa el plugin para sus colaboradores pero no lo descarga en sus máquinas, así que cada colaborador también ejecuta `claude plugin install <name>@<marketplace> --scope project` una vez; consulte [Enabled in project settings but not installed](/docs/es/plugins/loading#enabled-in-project-settings-but-not-installed).

147* **Local scope**: el plugin está habilitado para usted en este repositorio solamente. La entrada va en `.claude/settings.local.json`.147* **Local scope**: el plugin está habilitado para usted en este repositorio solamente. La entrada va en `.claude/settings.local.json`.

148 148 

149Algunos plugins están configurados por su autor para comenzar desactivados, a través del campo [`defaultEnabled`](/docs/es/plugins/manifest-reference#defaultenabled). Tal plugin se instala pero permanece desactivado hasta que lo active con `claude plugin enable <name>` en su shell, o desde la pestaña **Installed** de `/plugin` en una sesión.149Algunos plugins están configurados por su autor para comenzar desactivados, a través del campo [`defaultEnabled`](/docs/es/plugins/manifest-reference#defaultenabled). Tal plugin se instala pero permanece desactivado hasta que lo active con `claude plugin enable <name>` en su shell, o desde la pestaña **Installed** de `/plugin` en una sesión.

Details

100 100 

101En sesiones de terminal, las habilidades, agentes, hooks, servidores MCP y servidores LSP de un plugin sincronizado se cargan todos, con la misma confianza que un plugin de mercado que instaló.101En sesiones de terminal, las habilidades, agentes, hooks, servidores MCP y servidores LSP de un plugin sincronizado se cargan todos, con la misma confianza que un plugin de mercado que instaló.

102 102 

103Para los componentes que carga Cowork, consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview) en claude.com.103Para los componentes que carga Cowork, consulte la [tabla de compatibilidad de componentes](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) en claude.com.

104 104 

105Los plugins sincronizados se cargan en sesiones de Cowork y en sesiones de terminal donde inicia sesión con su cuenta claude.ai:105Los plugins sincronizados se cargan en sesiones de Cowork y en sesiones de terminal donde inicia sesión con su cuenta claude.ai:

106 106 


184| Ruta | Lo que contiene |184| Ruta | Lo que contiene |

185| :- | :- |185| :- | :- |

186| `cache/<marketplace>/<plugin>/<version>/` | Un directorio por versión instalada de un plugin de mercado. `<plugin>` es el nombre de entrada del mercado y `<version>` es la [versión resuelta](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` apunta a este directorio |186| `cache/<marketplace>/<plugin>/<version>/` | Un directorio por versión instalada de un plugin de mercado. `<plugin>` es el nombre de entrada del mercado y `<version>` es la [versión resuelta](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` apunta a este directorio |

187| `data/<plugin-id>/` | El directorio persistente del plugin, expuesto como `${CLAUDE_PLUGIN_DATA}`. Para saber cómo se forma `<plugin-id>`, consulte [Variables de ruta y datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data). Claude Code lo crea cuando un componente del plugin lo usa por primera vez y lo mantiene en las actualizaciones. Claude Code lo elimina cuando desinstala el plugin de su último ámbito, a menos que pase `--keep-data` |187| `data/<plugin-id>/` | El directorio persistente del plugin, expuesto como `${CLAUDE_PLUGIN_DATA}`. Para saber cómo se forma `<plugin-id>`, consulte [Variables de ruta y datos persistentes](/docs/es/plugins/components#path-variables-and-persistent-data). Claude Code lo crea cuando un componente del plugin lo usa por primera vez y lo mantiene en las actualizaciones. De forma predeterminada, Claude Code lo elimina cuando desinstala el plugin de su último ámbito. Para `--keep-data` y los otros casos en los que permanece, consulte [plugin uninstall](/docs/es/plugins/cli-reference#plugin-uninstall) |

188| `marketplaces/<name>/` | El clon o descarga de un mercado agregado desde GitHub, otro host de Git, o una URL. Un mercado agregado desde una fuente `file` o `directory` local no tiene copia aquí, y su `installLocation` en `known_marketplaces.json` es la ruta que proporcionó |188| `marketplaces/<name>/` | El clon o descarga de un mercado agregado desde GitHub, otro host de Git, o una URL. Un mercado agregado desde una fuente `file` o `directory` local no tiene copia aquí, y su `installLocation` en `known_marketplaces.json` es la ruta que proporcionó |

189| `synced/` | Los plugins que Claude Code [sincronizó desde su cuenta claude.ai](#synced-plugins) |189| `synced/` | Los plugins que Claude Code [sincronizó desde su cuenta claude.ai](#synced-plugins) |

190| `.trash/` | Plugins que la sincronización de claude.ai eliminó, como después de desactivar uno en claude.ai o dejar de sincronizar |190| `.trash/` | Plugins que la sincronización de claude.ai eliminó, como después de desactivar uno en claude.ai o dejar de sincronizar |

Details

116* **`Validation passed with warnings`**: el manifiesto se carga, pero el validador encontró algo que corregir, como un campo de nivel superior desconocido que Claude Code elimina, un `name` que no está en kebab-case, o un `version`, `description` o `author` faltante. Pase `--strict` para convertir advertencias en fallos en CI116* **`Validation passed with warnings`**: el manifiesto se carga, pero el validador encontró algo que corregir, como un campo de nivel superior desconocido que Claude Code elimina, un `name` que no está en kebab-case, o un `version`, `description` o `author` faltante. Pase `--strict` para convertir advertencias en fallos en CI

117* **`Validation failed`**: el manifiesto tiene una discrepancia de tipo, una ruta que falta o escapa de la raíz del plugin, o una clave desconocida dentro de una opción `userConfig`, entrada `channels`, configuración `lspServers` o entrada `monitors`. Claude Code reporta el mismo problema cuando carga el plugin117* **`Validation failed`**: el manifiesto tiene una discrepancia de tipo, una ruta que falta o escapa de la raíz del plugin, o una clave desconocida dentro de una opción `userConfig`, entrada `channels`, configuración `lspServers` o entrada `monitors`. Claude Code reporta el mismo problema cuando carga el plugin

118 118 

119El comando también verifica cada entrada de servidor MCP que el plugin declara en `.mcp.json`, en un archivo `.json` que [`mcpServers`](#mcpservers) nombra, o en línea en `plugin.json`. Estas verificaciones de MCP requieren Claude Code v2.1.281 o posterior e incluyen:

120 

121* **Errores**: una entrada que Claude Code descartaría cuando carga el plugin, una referencia `${user_config.KEY}` a una opción que el manifiesto no declara, y una `url` remota que no es una URL absoluta válida

122* **Advertencias**: una URL `http://` o `ws://` a un host que no es loopback, y un valor de encabezado que parece una credencial literal

123 

119<h2 id="fields">124<h2 id="fields">

120 Campos125 Campos

121</h2>126</h2>


387 Contención y existencia392 Contención y existencia

388</h3>393</h3>

389 394 

390Cada ruta de componente debe resolverse dentro de la raíz del plugin y debe existir. `claude plugin validate` no verifica las rutas `outputStyles`, `lspServers`, `monitors` o `themes`, por lo que una ruta incorrecta en esos campos falla solo cuando el plugin se carga:395Cada ruta de componente debe resolverse dentro de la raíz del plugin y debe existir. `claude plugin validate` verifica las rutas bajo cada clave de componente:

391 396 

392* **Contención**: una ruta que se resuelve fuera de la raíz del plugin no se carga, y la pestaña **Errors** de `/plugin` muestra `<component> path escapes plugin directory: <path>`. Una ruta que contiene `..` es el caso usual, y `claude plugin validate` la reporta como `Path contains ".." which could be a path traversal attempt`397* **Contención**: una ruta que se resuelve fuera de la raíz del plugin no se carga, y la pestaña **Errors** de `/plugin` muestra `<component> path escapes plugin directory: <path>`. Una ruta que contiene `..` es el caso usual, y `claude plugin validate` reporta el error `Path contains ".." which could be a path traversal attempt`

393* **Existencia**: una ruta que no existe no se carga, y la pestaña **Errors** de `/plugin` muestra `<component> path not found: <path>`. `claude plugin validate` la reporta como `Path not found`398* **Existencia**: una ruta que no existe no se carga, y la pestaña **Errors** de `/plugin` muestra `<component> path not found: <path>`. `claude plugin validate` reporta el error `Path not found`

399 

400Para rutas de `outputStyles`, `lspServers`, `monitors` y `themes`, la verificación de `claude plugin validate` requiere Claude Code v2.1.283 o posterior.

394 401 

395<h3 id="how-each-key-combines-with-its-default-location">402<h3 id="how-each-key-combines-with-its-default-location">

396 Cómo cada clave se combina con su ubicación predeterminada403 Cómo cada clave se combina con su ubicación predeterminada


561 568 

562`${CLAUDE_PLUGIN_ROOT}` cambia cuando el plugin se actualiza, así que no escriba estado allí. Para dónde se mueve la raíz y cuándo se limpia el directorio antiguo, consulte la [página de carga](/docs/es/plugins/loading).569`${CLAUDE_PLUGIN_ROOT}` cambia cuando el plugin se actualiza, así que no escriba estado allí. Para dónde se mueve la raíz y cuándo se limpia el directorio antiguo, consulte la [página de carga](/docs/es/plugins/loading).

563 570 

564Cuando desinstala el plugin del último lugar donde está instalado, el directorio `${CLAUDE_PLUGIN_DATA}` se elimina a menos que pase [`--keep-data`](/docs/es/plugins/cli-reference).571De forma predeterminada, Claude Code elimina el directorio `${CLAUDE_PLUGIN_DATA}` cuando desinstala el plugin del último lugar donde está instalado. Para `--keep-data` y los otros casos donde se mantiene, consulte [desinstalación de plugin](/docs/es/plugins/cli-reference#plugin-uninstall).

565 572 

566<h3 id="where-each-variable-resolves">573<h3 id="where-each-variable-resolves">

567 Dónde se resuelve cada variable574 Dónde se resuelve cada variable


589* **Comandos de hook**: use [forma exec](/docs/es/hooks#exec-form-and-shell-form) con `args` para que cada ruta sea un argumento sin entrecomillado596* **Comandos de hook**: use [forma exec](/docs/es/hooks#exec-form-and-shell-form) con `args` para que cada ruta sea un argumento sin entrecomillado

590* **Hooks de forma shell y comandos de monitor**: envuelva la variable en comillas dobles para que una ruta con espacios permanezca como una palabra597* **Hooks de forma shell y comandos de monitor**: envuelva la variable en comillas dobles para que una ruta con espacios permanezca como una palabra

591 598 

599Si deja una de estas variables fuera de comillas en un comando de forma shell en un archivo de hooks, `claude plugin validate` advierte sobre ello a menos que el hook establezca [`shell`](/docs/es/hooks#command-hook-fields) en `"powershell"`.

600 

592Este hook de forma shell ejecuta un script incluido con el plugin:601Este hook de forma shell ejecuta un script incluido con el plugin:

593 602 

594```json theme={null}603```json theme={null}


629| Workflows | `workflows/` | Archivos Workflow `.js` |638| Workflows | `workflows/` | Archivos Workflow `.js` |

630| Temas | `themes/` | Archivos de tema JSON |639| Temas | `themes/` | Archivos de tema JSON |

631| Monitores | `monitors/monitors.json` | El array de monitores |640| Monitores | `monitors/monitors.json` | El array de monitores |

632| Ejecutables | `bin/` | Los archivos aquí están en el `PATH` de la herramienta Bash mientras el plugin está habilitado, por lo que Claude los ejecuta como comandos simples. claude.ai y Cowork no instalan un plugin que tenga este directorio, incluido uno que [distribuya a través de la configuración de la organización claude.ai](/docs/es/plugins/host-marketplace#distribute-through-organization-settings) |641| Ejecutables | `bin/` | Los archivos aquí están en el `PATH` de la herramienta Bash mientras el plugin está habilitado, por lo que Claude los ejecuta como comandos simples. claude.ai y Cowork no instalan un plugin que tenga este directorio, incluido uno que [distribuya a través de la configuración de la organización claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) |

633| Configuración | `settings.json` | Valores predeterminados `agent` y `subagentStatusLine` aplicados mientras el plugin está habilitado |642| Configuración | `settings.json` | Valores predeterminados `agent` y `subagentStatusLine` aplicados mientras el plugin está habilitado |

634 643 

635Un plugin que usa cada ubicación predeterminada, más una carpeta `scripts/` que sus hooks llaman, se distribuye así:644Un plugin que usa cada ubicación predeterminada, más una carpeta `scripts/` que sus hooks llaman, se distribuye así:

Details

47* **Nombres de marketplace oficial**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins` y `claude-tag-plugins`. Reservado a menos que el marketplace provenga de una [fuente de marketplace](#marketplace-sources) `github` o `git` bajo `github.com/anthropics/`.47* **Nombres de marketplace oficial**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins` y `claude-tag-plugins`. Reservado a menos que el marketplace provenga de una [fuente de marketplace](#marketplace-sources) `github` o `git` bajo `github.com/anthropics/`.

48* **Nombres de marketplace comunitario**: `claude-community`, `claude-plugins-community` y `healthcare`. Reservado bajo la misma regla que los nombres oficiales.48* **Nombres de marketplace comunitario**: `claude-community`, `claude-plugins-community` y `healthcare`. Reservado bajo la misma regla que los nombres oficiales.

49* **Nombres de directorio de plugins**: `anthropic-plugin-directory` y `claude-plugin-directory`. Reservado bajo la misma regla que los nombres oficiales.49* **Nombres de directorio de plugins**: `anthropic-plugin-directory` y `claude-plugin-directory`. Reservado bajo la misma regla que los nombres oficiales.

50* **Nombres que suplanten un marketplace oficial**: nombres como `official-claude-plugins` o `claude-plugins-v2`, y cualquier nombre que contenga un carácter no ASCII. El error es `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carácter de control o de formato bidireccional en un nombre también reporta `Marketplace name cannot contain control or bidirectional-formatting characters`.50* **Nombres que suplanten un marketplace oficial**: nombres como `official-claude-plugins` o `claude-plugins-v2`, y cualquier nombre que contenga un carácter no ASCII. El error es `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carácter de control o de formato bidireccional en un nombre también reporta `Marketplace name cannot contain control or bidirectional-formatting characters`. Un marketplace ya registrado bajo tal nombre deja de cargarse, junto con sus plugins.

51* <span id="reserved-name-spellings" />**Otra ortografía de un nombre reservado**: un nombre que difiere de un nombre reservado solo por un punto final, o por un símbolo distinto de un guión en lugar de un guión, por lo que `claude.code.plugins` cuenta como `claude-code-plugins`. `claude plugin validate` acepta tal nombre; agregar el marketplace falla con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/es/errors#marketplace-name-is-another-spelling-of-a-reserved-name), y un marketplace ya registrado bajo uno deja de cargarse. Esta verificación requiere Claude Code v2.1.280 o posterior.51* <span id="reserved-name-spellings" />**Otra ortografía de un nombre reservado**: un nombre que difiere de un nombre reservado solo por un punto final, o por un símbolo distinto de un guión en lugar de un guión, por lo que `claude.code.plugins` cuenta como `claude-code-plugins`. `claude plugin validate` acepta tal nombre; agregar el marketplace falla con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/es/errors#marketplace-name-is-another-spelling-of-a-reserved-name), y un marketplace ya registrado bajo uno deja de cargarse. Esta verificación requiere Claude Code v2.1.280 o posterior.

52* **Nombres que Claude Code usa para plugins que no provienen de un marketplace**: `inline` para plugins cargados con [`--plugin-dir`](/docs/es/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins cargados automáticamente desde [`.claude/skills/`](/docs/es/skills) y `synced` para plugins sincronizados desde su cuenta claude.ai. `claude-plugin-test` también está reservado. `skills-dir` también aparece como `{"source": "skills-dir"}` en `strictKnownMarketplaces` y `blockedMarketplaces`, descrito bajo [Valores de fuente válidos solo en listas de políticas](#source-values-valid-only-in-policy-lists).52* **Nombres que Claude Code usa para plugins que no provienen de un marketplace**: `inline` para plugins cargados con [`--plugin-dir`](/docs/es/cli-reference), `builtin` para plugins integrados, `skills-dir` para plugins cargados automáticamente desde [`.claude/skills/`](/docs/es/skills) y `synced` para plugins sincronizados desde su cuenta claude.ai. `claude-plugin-test` también está reservado. `skills-dir` también aparece como `{"source": "skills-dir"}` en `strictKnownMarketplaces` y `blockedMarketplaces`, descrito bajo [Valores de fuente válidos solo en listas de políticas](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` y `gh`**: reservado en cualquier mayúscula. Esta verificación requiere Claude Code v2.1.275 o posterior.53* **`npm`, `pip`, `uv`, `cargo`, `github` y `gh`**: reservado en cualquier mayúscula. Esta verificación requiere Claude Code v2.1.275 o posterior.

54* **Nombres que comienzan con `claudeai-`**: reservado para marketplaces alojados en claude.ai. `claude plugin marketplace add` rechaza cualquier otro marketplace que use uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.54* **Nombres que comienzan con `claudeai-`**: reservado para marketplaces alojados en claude.ai. `claude plugin marketplace add` rechaza cualquier otro marketplace que use uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

55 55 

56Cuando un marketplace registrado deja de cargarse porque su nombre imita uno oficial, `claude plugin list` y `/plugin` reportan `Claude Code refuses the marketplace name "<name>"`. El mensaje le indica que elimine el marketplace. Eliminarlo también desinstala sus plugins y elimina sus datos guardados. Este mensaje de rechazo nombrado requiere Claude Code v2.1.282 o posterior.

57 

56<h2 id="top-level-fields">58<h2 id="top-level-fields">

57 Campos de nivel superior59 Campos de nivel superior

58</h2>60</h2>

Details

96* **Son compañeros de equipo a los que puede preguntar**: el propio Claude Code de cada usuario les muestra si aún usan el plugin, en cuatro lugares: el [panel `/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor), y [`/usage`](#usage-share-in-/usage). Los cuatro son comandos que el usuario ejecuta en el prompt de Claude Code en una sesión en su propia máquina.96* **Son compañeros de equipo a los que puede preguntar**: el propio Claude Code de cada usuario les muestra si aún usan el plugin, en cuatro lugares: el [panel `/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor), y [`/usage`](#usage-share-in-/usage). Los cuatro son comandos que el usuario ejecuta en el prompt de Claude Code en una sesión en su propia máquina.

97* **Ninguno**: no tiene señal de uso de Claude Code para ese plugin.97* **Ninguno**: no tiene señal de uso de Claude Code para ese plugin.

98 98 

99Para el uso de un plugin listado en el directorio de Anthropic, consulte [Track published plugin usage](https://claude.com/docs/connectors/building/after-publishing#track-published-plugin-usage) en claude.com.

100 

99<h3 id="not-used-recently-in-/plugin">101<h3 id="not-used-recently-in-/plugin">

100 No utilizado recientemente en `/plugin`102 No utilizado recientemente en `/plugin`

101</h3>103</h3>

plugins/org.md +2 −1

Details

14 Estos casos se tratan en otras páginas:14 Estos casos se tratan en otras páginas:

15 15 

16 * **Instalar plugins para usted mismo**: comience en [Install plugins](/docs/es/plugins/install)16 * **Instalar plugins para usted mismo**: comience en [Install plugins](/docs/es/plugins/install)

17 * **Controlar qué plugins pueden usar los miembros en claude.ai y Cowork**: consulte [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) en el centro de ayuda17 * **Controlar qué plugins pueden usar los miembros en claude.ai y Cowork**: consulte [Manage plugins for your organization](https://claude.com/docs/plugins/admin) en claude.com

18 * **Implementar un plugin en claude.ai, Cowork y Claude Code juntos**: consulte [Choose a rollout route](https://claude.com/docs/plugins/org-rollout#choose-a-rollout-route) en claude.com

18 * **La página de plugins en la configuración de administración de claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) activa los plugins para las cuentas de claude.ai de los miembros, y esos llegan a Claude Code como [synced plugins](/docs/es/plugins/loading#synced-plugins). No establece ninguna de las claves en esta página19 * **La página de plugins en la configuración de administración de claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) activa los plugins para las cuentas de claude.ai de los miembros, y esos llegan a Claude Code como [synced plugins](/docs/es/plugins/loading#synced-plugins). No establece ninguna de las claves en esta página

19</Note>20</Note>

20 21 

Details

9Un plugin de Claude Code es un directorio de skills, agentes, hooks, servidores MCP u otros componentes que Claude Code instala y carga como una unidad. La mayoría de los plugins provienen de un marketplace, que es un catálogo que enumera plugins y dónde obtener cada uno. También puede cargar un plugin desde una carpeta que alguien le proporcione, o [crear el suyo propio](/docs/es/plugins/create).9Un plugin de Claude Code es un directorio de skills, agentes, hooks, servidores MCP u otros componentes que Claude Code instala y carga como una unidad. La mayoría de los plugins provienen de un marketplace, que es un catálogo que enumera plugins y dónde obtener cada uno. También puede cargar un plugin desde una carpeta que alguien le proporcione, o [crear el suyo propio](/docs/es/plugins/create).

10 10 

11<Note>11<Note>

12 Si utiliza el chat de claude.ai o Cowork y no Claude Code, consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview).12 Comience en claude.com en su lugar si alguno de estos lo describe:

13 

14 * **Utiliza el chat de claude.ai o Cowork y no Claude Code**: consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview)

15 * **Creó un servidor MCP y desea que esté en el directorio de Anthropic**: consulte [Publicar en el directorio](https://claude.com/docs/directory/publish)

13</Note>16</Note>

14 17 

15Para probar un plugin ahora, ejecute `/plugin` en una sesión de terminal de Claude Code e instale uno desde la pestaña **Discover**, que enumera los plugins del marketplace oficial de Anthropic y cualquier marketplace que haya agregado. Desde allí:18Para probar un plugin ahora, ejecute `/plugin` en una sesión de terminal de Claude Code e instale uno desde la pestaña **Discover**, que enumera los plugins del marketplace oficial de Anthropic y cualquier marketplace que haya agregado. Desde allí:


122Una sesión en la nube, incluida una en el navegador en claude.ai/code, no carga los plugins en su configuración local. Para pasos de instalación en la terminal, VS Code y la aplicación de escritorio, y para lo que carga una sesión en la nube, consulte [Instalar un plugin](/docs/es/plugins/install#install-a-plugin).125Una sesión en la nube, incluida una en el navegador en claude.ai/code, no carga los plugins en su configuración local. Para pasos de instalación en la terminal, VS Code y la aplicación de escritorio, y para lo que carga una sesión en la nube, consulte [Instalar un plugin](/docs/es/plugins/install#install-a-plugin).

123 126 

124<Note>127<Note>

125 El mismo formato de plugin también se instala en claude.ai y en Cowork, donde se carga un conjunto diferente de componentes. Para esas superficies, consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview) en claude.com.128 El mismo formato de plugin también se instala en claude.ai y en Cowork, donde se carga un conjunto diferente de componentes. Para esas superficies, consulte [Plugins en claude.ai y en Cowork](https://claude.com/docs/plugins/overview) en claude.com y su [tabla de compatibilidad de componentes](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app).

126</Note>129</Note>

127 130 

128<h2 id="next-steps">131<h2 id="next-steps">


135 138 

136Una vez que haya instalado o creado un plugin, estas páginas cubren lo que viene después:139Una vez que haya instalado o creado un plugin, estas páginas cubren lo que viene después:

137 140 

138* **Compartir lo que construyó**: [Publicar y distribuir un plugin](/docs/es/plugins/publish)141* **Compartir lo que construyó**: [Publicar y distribuir un plugin](/docs/es/plugins/publish), a través de su propio marketplace o [directorio de Anthropic](/docs/es/plugins/publish#submit-to-anthropics-directory)

139* **Verificar si funciona y se usa**: [Probar plugins con evals](/docs/es/plugin-evals) y [Medir el costo y uso de plugins](/docs/es/plugins/measure)142* **Verificar si funciona y se usa**: [Probar plugins con evals](/docs/es/plugin-evals) y [Medir el costo y uso de plugins](/docs/es/plugins/measure)

140* **Ejecutar un marketplace para su equipo**: [Crear un marketplace](/docs/es/plugins/create-marketplace), luego [Alojar y mantener un marketplace](/docs/es/plugins/host-marketplace)143* **Ejecutar un marketplace para su equipo**: [Crear un marketplace](/docs/es/plugins/create-marketplace), luego [Alojar y mantener un marketplace](/docs/es/plugins/host-marketplace)

141* **Establecer política de plugins para una organización**: [Administrar plugins para su organización](/docs/es/plugins/org)144* **Establecer política de plugins para una organización**: [Administrar plugins para su organización](/docs/es/plugins/org)

plugins/publish.md +21 −18

Details

4 4 

5# Publicar y distribuir un plugin5# Publicar y distribuir un plugin

6 6 

7> Publique un plugin de Claude Code a través de su propio marketplace o del marketplace comunitario de Anthropic, con una lista de verificación previa al lanzamiento y cómo los usuarios reciben actualizaciones.7> Publique un plugin de Claude Code a través de su propio marketplace o del directorio de Anthropic, con una lista de verificación previa al lanzamiento y cómo los usuarios reciben actualizaciones.

8 8 

9Publicar un plugin de Claude Code significa listarlo en un marketplace, un catálogo JSON que enumera plugins y dónde obtener cada uno, para que otras personas puedan instalarlo por nombre y recibir sus actualizaciones. Puede ejecutar su propio marketplace o enviar su plugin al marketplace comunitario de Anthropic. Para compartir un plugin sin publicarlo, envíe a las personas el directorio del plugin o un `.zip` del mismo para que lo carguen ellos mismos.9Publicar un plugin de Claude Code significa listarlo en un marketplace, un catálogo JSON que enumera plugins y dónde obtener cada uno, para que otras personas puedan instalarlo por nombre y recibir sus actualizaciones. Puede ejecutar su propio marketplace o enviar su plugin al directorio de Anthropic. Para compartir un plugin sin publicarlo, envíe a las personas el directorio del plugin o un `.zip` del mismo para que lo carguen ellos mismos.

10 10 

11Esta página es para el autor de un plugin funcional que está listo para compartirlo.11Esta página es para el autor de un plugin funcional que está listo para compartirlo.

12 12 


29| :- | :- | :- | :- |29| :- | :- | :- | :- |

30| [Sin marketplace](#share-a-plugin-without-a-marketplace) | Las personas a las que envíe la carpeta del plugin o un `.zip` del mismo | La carpeta del plugin | Ninguno. Cargan la copia que envió |30| [Sin marketplace](#share-a-plugin-without-a-marketplace) | Las personas a las que envíe la carpeta del plugin o un `.zip` del mismo | La carpeta del plugin | Ninguno. Cargan la copia que envió |

31| [Su propio marketplace](#publish-through-your-own-marketplace) | Cualquiera que pueda acceder al repositorio, que puede ser uno privado que su equipo pueda clonar | Un repositorio git u otro host con un `.claude-plugin/marketplace.json` que enumere su plugin | Desactivado |31| [Su propio marketplace](#publish-through-your-own-marketplace) | Cualquiera que pueda acceder al repositorio, que puede ser uno privado que su equipo pueda clonar | Un repositorio git u otro host con un `.claude-plugin/marketplace.json` que enumere su plugin | Desactivado |

32| [Marketplace comunitario de Anthropic](#submit-to-the-community-marketplace) | Cualquiera que agregue `anthropics/claude-plugins-community` | Un envío a través del formulario de envío del directorio de plugins | Desactivado |32| [Directorio de Anthropic](#submit-to-anthropics-directory) | Personas que lo agreguen en claude.ai o en Cowork. También se carga en sus sesiones de Claude Code a través de [sincronización de cuenta](/docs/es/plugins/loading#synced-plugins) | Un repositorio de GitHub que contenga el plugin y un plan de claude.ai de pago para enviar desde | Sí, después de que se publique la versión que envíe |

33 33 

34La actualización automática es una configuración por marketplace en el lado del usuario que obtiene nuevas versiones en segundo plano.34La actualización automática es una configuración por marketplace en el lado del usuario que obtiene nuevas versiones en segundo plano.

35 35 


141 141 

142[Instalar plugins](/docs/es/plugins/install) cubre los comandos del lado del usuario, y [cuándo se ejecuta la actualización automática](/docs/es/plugins/loading#when-auto-update-runs) cubre el tiempo.142[Instalar plugins](/docs/es/plugins/install) cubre los comandos del lado del usuario, y [cuándo se ejecuta la actualización automática](/docs/es/plugins/loading#when-auto-update-runs) cubre el tiempo.

143 143 

144<h2 id="submit-to-the-community-marketplace">144<h2 id="submit-to-anthropics-directory">

145 Enviar al marketplace comunitario145 Enviar al directorio de Anthropic

146</h2>146</h2>

147 147 

148El marketplace comunitario de Anthropic, `claude-community`, es el marketplace público que enumera plugins enviados a través del formulario de envío del directorio de plugins.148El directorio de Anthropic es el catálogo que las personas exploran en claude.ai y en Cowork para agregar plugins y conectores. Un listado allí llega a personas en claude.ai, en Cowork y en Claude Code. Usted envía desde el portal de desarrolladores en [claude.ai/directory/manage](https://claude.ai/directory/manage); [Prepare for review](https://claude.com/docs/directory/publish#prepare-for-review) en claude.com describe qué sucede con cada versión antes de que se publique.

149 149 

150Los usuarios agregan el marketplace comunitario en una sesión de Claude Code con `/plugin marketplace add anthropics/claude-plugins-community` e instalan desde él como `@claude-community`.150El envío requiere un plan de claude.ai de pago. En Pro y Max usted envía desde su propia cuenta. En Team y Enterprise, un Owner puede enviar, y en Enterprise un Owner también puede otorgar el permiso de **Directory** a otros miembros a través de un rol personalizado en **Organization settings > Roles**. Consulte [Confirm you can submit to the directory](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

151 151 

152Para saber cómo el marketplace comunitario difiere del marketplace oficial, consulte [Marketplaces de Anthropic](/docs/es/plugins/anthropic-marketplaces).152Los pasos de envío, las comprobaciones que cada versión debe pasar y qué sucede después de que publica se documentan en claude.com, porque son los mismos sin importar en qué superficie estén sus usuarios:

153 153 

154Para enviar su plugin al marketplace comunitario, use uno de los formularios en la aplicación:154* [Publish to the directory](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): qué puede enviar y quién puede enviarlo

155* [Submit a plugin](https://claude.com/docs/plugins/submit#submit-a-plugin): los pasos del portal y [updating a published plugin](https://claude.com/docs/plugins/submit#update-a-published-plugin)

156* [Plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): las comprobaciones a ejecutar y corregir antes de enviar

157* [Move an earlier submission to the developer portal](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): qué hacer si envió un plugin a través de uno de los formularios de envío anteriores, antes de que existiera el portal

155 158 

156* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)159Antes de abrir el portal, valide localmente y compruebe cuál de sus componentes se carga fuera de Claude Code:

157* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 160 

159El formulario de claude.ai requiere una organización Team o Enterprise y el permiso de Directory, que los Owners tienen de forma predeterminada. Los autores individuales que no forman parte de una organización Team o Enterprise pueden usar el formulario de Console en su lugar.161* **Ejecute `claude plugin validate ./your-plugin --strict` en su shell**: reemplace `./your-plugin` con la ruta a su directorio de plugin. El comando detecta errores de manifiesto localmente; [plugin validate](/docs/es/plugins/cli-reference#plugin-validate) enumera qué archivos lee cada ejecución. El portal aplica reglas de directorio adicionales que la CLI no comprueba, por lo que una ejecución local limpia no garantiza una validación de portal limpia.

162* **Compruebe qué se carga dónde**: algunos componentes de plugin son solo de Claude Code y no se cargan en claude.ai o en Cowork. La [component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) enumera cada componente por aplicación, para que sepa qué obtendrán los usuarios fuera de Claude Code.

160 163 

161En su shell, ejecute `claude plugin validate ./your-plugin` localmente antes de enviar, reemplazando `./your-plugin` con la ruta a su directorio de plugin. Cuando la validación pasa, Claude Code imprime `✔ Validation passed`, o `✔ Validation passed with warnings` si hay advertencias. Las advertencias no fallan la validación; agregue `--strict` para tratarlas como errores.164El marketplace oficial de Anthropic, `claude-plugins-official`, no acepta envíos a través del portal de directorio. Si trabaja con un contacto de socio de Anthropic, pregúnteles sobre un listado en el marketplace oficial.

162 165 

163Los plugins listados aparecen en el catálogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), en casi todos los casos fijados a un SHA de commit específico.166<h3 id="how-a-listed-plugin-reaches-claude-code-users">

164 167 Cómo un plugin listado llega a los usuarios de Claude Code

165Puede haber un retraso entre el envío y la aparición de su plugin en `marketplace.json`. Para verificar si su plugin ya es instalable, busque su nombre en el [catálogo comunitario](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).168</h3>

166 169 

167El marketplace oficial, `claude-plugins-official`, no acepta envíos a través de estos formularios. Si trabaja con un contacto de socio de Anthropic, pregúnteles sobre un listado en el marketplace oficial.170Una persona que instala su plugin desde el directorio en claude.ai lo tiene en su cuenta, y Claude Code lo carga como `<name>@synced`. [Plugins synced from claude.ai](/docs/es/plugins/loading#synced-plugins) cubre lo que ven y cómo lo desactivan.

168 171 

169<h2 id="ship-updates-renames-and-removals">172<h2 id="ship-updates-renames-and-removals">

170 Enviar actualizaciones, cambios de nombre y eliminaciones173 Enviar actualizaciones, cambios de nombre y eliminaciones


174 Lanzar una nueva versión177 Lanzar una nueva versión

175</h3>178</h3>

176 179 

177Si publica a través de su propio marketplace y su `plugin.json` establece `version`, increméntelo y haga push. Los usuarios que ejecuten `claude plugin update` o tengan la actualización automática activada reciben la nueva versión, como se describe en [Enviar actualizaciones a los usuarios](#ship-updates-to-users).180Si publica a través de su propio marketplace y su `plugin.json` establece `version`, increméntelo y haga push. Los usuarios que ejecuten `claude plugin update` o tengan la actualización automática activada reciben la nueva versión, como se describe en [Enviar actualizaciones a los usuarios](#ship-updates-to-users). Para un listado de directorio, consulte [Actualizar un plugin publicado](https://claude.com/docs/plugins/submit#update-a-published-plugin).

178 181 

179<h3 id="tag-a-release">182<h3 id="tag-a-release">

180 Etiquetar un lanzamiento183 Etiquetar un lanzamiento

Details

118 118 

119En tu shell, ejecuta [`claude plugin uninstall <plugin>`](/docs/es/plugins/cli-reference#plugin-uninstall) con el `--scope` en el que lo instalaste. Luego verifica qué eliminó la desinstalación y qué dejó:119En tu shell, ejecuta [`claude plugin uninstall <plugin>`](/docs/es/plugins/cli-reference#plugin-uninstall) con el `--scope` en el que lo instalaste. Luego verifica qué eliminó la desinstalación y qué dejó:

120 120 

121* **Datos persistentes**: cuando esa fue la última scope en la que se instaló el plugin, desinstalar también elimina el directorio de datos persistentes del plugin, a menos que pases `--keep-data`.121* **Datos persistentes**: por defecto, cuando esa fue la última scope en la que se instaló el plugin, desinstalar también elimina el directorio de datos persistentes del plugin. Para `--keep-data` y los otros casos en los que permanece, consulta [plugin uninstall](/docs/es/plugins/cli-reference#plugin-uninstall).

122* **Archivos en caché**: los archivos del plugin permanecen en el disco bajo `~/.claude/plugins/cache/` durante 14 días antes de que un [barrido de fondo los elimine](/docs/es/plugins/loading#cleanup-of-previous-versions). Después de desinstalar tu último plugin, los directorios huérfanos permanecen hasta que instales otro. Para eliminar los archivos ahora, elimina el directorio del plugin bajo `~/.claude/plugins/cache/<marketplace>/<plugin>/` tú mismo.122* **Archivos en caché**: los archivos del plugin permanecen en el disco bajo `~/.claude/plugins/cache/` durante 14 días antes de que un [barrido de fondo los elimine](/docs/es/plugins/loading#cleanup-of-previous-versions). Después de desinstalar tu último plugin, los directorios huérfanos permanecen hasta que instales otro. Para eliminar los archivos ahora, elimina el directorio del plugin bajo `~/.claude/plugins/cache/<marketplace>/<plugin>/` tú mismo.

123* **El marketplace**: si tampoco confías en el propietario del marketplace, [elimina el marketplace](/docs/es/plugins/install#manage-marketplaces) también, que desinstala cada plugin que instalaste desde él.123* **El marketplace**: si tampoco confías en el propietario del marketplace, [elimina el marketplace](/docs/es/plugins/install#manage-marketplaces) también, que desinstala cada plugin que instalaste desde él.

124 124 

Details

676 `Failed to load hooks from <path>` and hooks that don't fire676 `Failed to load hooks from <path>` and hooks that don't fire

677</h3>677</h3>

678 678 

679Los hooks de un plugin no se ejecutan. O la pestaña **Errors** muestra un fallo de carga para ellos, los hooks se cargan y ve avisos `<Event> hook error` en la transcripción, o un hook se carga sin error y nunca se dispara.679Los hooks de un plugin no se ejecutan, o uno bloquea una acción. O la pestaña **Errors** muestra un fallo de carga para ellos, los hooks se cargan y ve avisos `<Event> hook error` o un error de bloqueo en la transcripción, o un hook se carga sin error y nunca se dispara.

680 680 

681<h4 id="hooks-fail-to-load">681<h4 id="hooks-fail-to-load">

682 Hooks fail to load682 Hooks fail to load


693 693 

694Un aviso de la forma `... hook error: Failed with non-blocking status code: <stderr>` significa que el hook se ejecutó y su comando falló. Por ejemplo, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` significa que el shell que Claude Code generó no pudo encontrar `node`. Instálelo, o asegúrese de que esté en el `PATH` del terminal desde el que inicia `claude`.694Un aviso de la forma `... hook error: Failed with non-blocking status code: <stderr>` significa que el hook se ejecutó y su comando falló. Por ejemplo, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` significa que el shell que Claude Code generó no pudo encontrar `node`. Instálelo, o asegúrese de que esté en el `PATH` del terminal desde el que inicia `claude`.

695 695 

696Si el stderr muestra la ruta del plugin cortada en un espacio, el comando en forma de shell del hook usa `${CLAUDE_PLUGIN_ROOT}` fuera de comillas y la ruta de instalación contiene un espacio. Envuelva la variable entre comillas dobles o use [exec form](/docs/es/hooks#exec-form-and-shell-form). Para encontrar la variable sin comillas, ejecute `claude plugin validate` en el directorio del plugin y busque su [advertencia de entrecomillado](/docs/es/plugins/manifest-reference#quoting-and-path-separators).

697 

696Para cualquier otro error, ejecute el comando del hook usted mismo desde el directorio del plugin para ver la salida completa, o capture el stderr completo con [debug logging](/docs/es/hooks#debug-hooks).698Para cualquier otro error, ejecute el comando del hook usted mismo desde el directorio del plugin para ver la salida completa, o capture el stderr completo con [debug logging](/docs/es/hooks#debug-hooks).

697 699 

700<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">

701 A plugin hook blocks a tool call or prompt

702</h4>

703 

704Un hook que sale con código 2 [bloquea la acción para la que se ejecutó](/docs/es/hooks#exit-code-2). Cuando un hook de plugin bloquea de esta manera y su stderr es el mensaje de bloqueo, el error termina con `This hook comes from the <plugin> plugin.` para que sepa qué plugin deshabilitar o corregir. Antes de v2.1.281, el error no nombraba el plugin.

705 

706Si ese mensaje muestra la ruta del plugin cortada en un espacio, aplique la [solución de `${CLAUDE_PLUGIN_ROOT}` sin comillas](#hook-error-notices-in-the-transcript).

707 

698<h4 id="hook-loads-but-never-fires">708<h4 id="hook-loads-but-never-fires">

699 Hook loads but never fires709 Hook loads but never fires

700</h4>710</h4>

prompt-caching.md +29 −17

Details

37Dos configuraciones no aparecen en la tabla de capas pero aún afectan lo que permanece en caché:37Dos configuraciones no aparecen en la tabla de capas pero aún afectan lo que permanece en caché:

38 38 

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

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

41 41 

42<Tip>42<Tip>

43 Elija su modelo y nivel de esfuerzo al principio de una sesión, luego guarde `/compact` para descansos naturales entre tareas. Cuantos menos cambios realice a mitad de tarea, mayor será su tasa de aciertos de caché.43 Elija su modelo y nivel de esfuerzo al principio de una sesión, luego guarde `/compact` para descansos naturales entre tareas. Cuantos menos cambios realice a mitad de tarea, mayor será su tasa de aciertos de caché.


75* [Cambiar modelos](#switching-models)75* [Cambiar modelos](#switching-models)

76* [Cambiar el nivel de esfuerzo](#changing-effort-level)76* [Cambiar el nivel de esfuerzo](#changing-effort-level)

77* [Activar el modo rápido](#turning-on-fast-mode)77* [Activar el modo rápido](#turning-on-fast-mode)

78* [Conectar o desconectar un servidor MCP](#connecting-or-disconnecting-an-mcp-server)78* [Conectar o desconectar un servidor MCP](#connecting-or-removing-an-mcp-server)

79* [Habilitar o deshabilitar un plugin](#enabling-or-disabling-a-plugin)79* [Habilitar o deshabilitar un plugin](#enabling-or-disabling-a-plugin)

80* [Denegar una herramienta completa](#denying-an-entire-tool)80* [Denegar una herramienta completa](#denying-an-entire-tool)

81* [Compactar la conversación](#compacting-the-conversation)81* [Compactar la conversación](#compacting-the-conversation)


96 96 

97La [configuración del modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo de plan y Sonnet durante la ejecución, por lo que cada alternancia del modo de plan es un cambio de modelo e inicia una caché nueva.97La [configuración del modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo de plan y Sonnet durante la ejecución, por lo que cada alternancia del modo de plan es un cambio de modelo e inicia una caché nueva.

98 98 

99[El fallback automático del modelo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de fallback, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.99[El fallback automático del modelo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5, Sonnet 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de fallback, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.

100 100 

101Cuando la portada de una skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de sesión se reanuda en su siguiente solicitud. Una skill `context: fork` establece el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent) en su lugar.101Cuando la portada de una skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de sesión se reanuda en su siguiente solicitud. Una skill `context: fork` establece el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent) en su lugar.

102 102 


106 106 

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

108 108 

109En Opus 5.5 y Fable 5.1 con una clave API o una suscripción a Claude, cambiar el esfuerzo mantiene la caché, y Claude Code aplica el nuevo nivel sin preguntar. Esto no se aplica en Amazon Bedrock, en la plataforma de agentes de Google Cloud, ni en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), ni cuando establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) o su organización tiene una configuración HIPAA.109En Opus 5.5, Sonnet 5.5 y Fable 5.1 con una clave API o una suscripción a Claude, cambiar el esfuerzo mantiene la caché, y Claude Code aplica el nuevo nivel sin preguntar. Esto no se aplica en Amazon Bedrock, en la plataforma de agentes de Google Cloud, ni en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), ni cuando establece [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) o su organización tiene una configuración HIPAA.

110 110 

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

112 112 


118 118 

119El costo se aplica una vez por conversación. Después del primer turno de modo rápido, Claude Code sigue enviando el encabezado y varía solo la configuración de velocidad de la solicitud, que no es parte de la clave de caché. Desactivar el modo rápido, el [fallback automático a velocidad estándar](/docs/es/fast-mode#handle-rate-limits) después de un límite de velocidad, y activarlo nuevamente más tarde mantienen la caché. Si [se queda sin créditos de uso](/docs/es/fast-mode#handle-rate-limits) a mitad de sesión, Claude Code reintenta cada solicitud de modo rápido rechazada a velocidad estándar de la misma manera, por lo que este fallback también mantiene la caché. `/clear` y `/compact` restablecen esto, ya que reconstruyen la caché en esos puntos de todos modos.119El costo se aplica una vez por conversación. Después del primer turno de modo rápido, Claude Code sigue enviando el encabezado y varía solo la configuración de velocidad de la solicitud, que no es parte de la clave de caché. Desactivar el modo rápido, el [fallback automático a velocidad estándar](/docs/es/fast-mode#handle-rate-limits) después de un límite de velocidad, y activarlo nuevamente más tarde mantienen la caché. Si [se queda sin créditos de uso](/docs/es/fast-mode#handle-rate-limits) a mitad de sesión, Claude Code reintenta cada solicitud de modo rápido rechazada a velocidad estándar de la misma manera, por lo que este fallback también mantiene la caché. `/clear` y `/compact` restablecen esto, ya que reconstruyen la caché en esos puntos de todos modos.

120 120 

121<h3 id="connecting-or-disconnecting-an-mcp-server">121<h3 id="connecting-or-removing-an-mcp-server">

122 Conectar o desconectar un servidor MCP122 Conectar o desconectar un servidor MCP

123</h3>123</h3>

124 124 

125Las definiciones de herramientas se encuentran en la capa del mensaje del sistema, por lo que la caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Alternar la [herramienta de asesor](/docs/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene el prefijo almacenado en caché intacto. Si un cambio de [servidor MCP](/docs/es/mcp) hace esto depende de si sus herramientas se difieren por [búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) o se cargan en el prefijo:125Las definiciones de herramientas se encuentran en la capa del mensaje del sistema, por lo que la caché se invalida cuando el conjunto de definiciones de herramientas en la solicitud cambia entre turnos. Alternar la [herramienta de asesor](/docs/es/advisor) es una excepción: su definición se encuentra después del punto de ruptura de caché, por lo que habilitar o deshabilitar `/advisor` mantiene el prefijo almacenado en caché intacto. Si un cambio de [servidor MCP](/docs/es/mcp) hace esto depende de si [la búsqueda de herramientas](/docs/es/mcp#scale-with-mcp-tool-search) difiere las herramientas MCP de la sesión, el valor predeterminado en modelos compatibles:

126 126 

127* **Herramientas diferidas**, el valor predeterminado en modelos compatibles: un servidor que se conecta, desconecta o cambia su lista de herramientas solo agrega contenido nuevo y no perturba nada ya almacenado en caché.127* **Herramientas diferidas**: Claude Code mantiene la lista de herramientas de la primera solicitud de la conversación durante toda la conversación, por lo que un servidor que se conecta o desconecta a mitad de sesión no perturba nada ya almacenado en caché. Un servidor que termina de conectarse después de la primera solicitud proporciona sus herramientas como definiciones diferidas que Claude carga bajo demanda.

128* **Herramientas cargadas en el prefijo**: cualquier cambio en ellas invalida la caché. Esto ocurre cuando [la búsqueda de herramientas no está disponible o está deshabilitada](/docs/es/mcp#configure-tool-search), como en los modelos de la plataforma de agentes de Google Cloud anteriores a la generación Claude 4.5, con una puerta de enlace `ANTHROPIC_BASE_URL` personalizada, o en una [implementación de Microsoft Foundry alojada en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) una vez que Claude Code detecta que la implementación rechaza la búsqueda de herramientas. También ocurre para un servidor o herramienta marcada [`alwaysLoad`](/docs/es/mcp#exempt-a-server-from-deferral), y para definiciones mantenidas al frente por [carga basada en umbral](/docs/es/mcp#configure-tool-search).128* **Herramientas cargadas por adelantado**: agregar una definición invalida la caché, y lo mismo ocurre al eliminar una a propósito. Esto se aplica cuando la búsqueda de herramientas está [por debajo de su umbral `auto`, deshabilitada o no disponible](/docs/es/mcp#configure-tool-search), como en los modelos de la plataforma de agentes de Google Cloud anteriores a la generación Claude 4.5, con una puerta de enlace `ANTHROPIC_BASE_URL` personalizada, o en una [implementación de Microsoft Foundry alojada en Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) una vez que Claude Code detecta que la implementación rechaza la búsqueda de herramientas.

129 129 

130Cuando las herramientas se cargan en el prefijo, la causa más común de una invalidación es un servidor que se conecta o desconecta a mitad de sesión, lo que puede ocurrir sin ninguna acción de su parte: el proceso de un servidor stdio sale, una sesión HTTP expira, o un servidor [se reconecta automáticamente después de una falla transitoria](/docs/es/mcp#automatic-reconnection). Un servidor conectado también puede enviar una [actualización de herramienta dinámica](/docs/es/mcp#dynamic-tool-updates) que cambia su lista de herramientas.130Sin búsqueda de herramientas, si un cambio de servidor a mitad de sesión invalida la caché depende de qué cambió. Para cada cambio, esta tabla indica si la caché se mantiene y qué sucede con las definiciones de herramientas en la siguiente solicitud.

131 

132| Cambio a mitad de sesión | Caché | Definiciones de herramientas en la siguiente solicitud |

133| - | - | - |

134| Un servidor se conecta, o una [actualización de herramienta dinámica](/docs/es/mcp#dynamic-tool-updates) agrega herramientas | Invalidada | Las nuevas definiciones se agregan |

135| Un servidor se desconecta sin ninguna acción de su parte, como el proceso de un servidor stdio que sale | Mantenida | Las definiciones del servidor permanecen sin cambios. Una llamada a una de sus herramientas devuelve un error en lugar de ejecutarse |

136| Un servidor remoto [se reconecta automáticamente](/docs/es/mcp#automatic-reconnection) después de que su conexión se cae | Mantenida, a menos que una solicitud enviada mientras el servidor se reconecta agregue la herramienta `WaitForMcpServers`, que invalida la caché una vez | Las definiciones del servidor permanecen sin cambios. Una solicitud enviada mientras el servidor se reconecta puede agregar `WaitForMcpServers` cuando la conversación aún no la ha listado, y la herramienta permanece listada para el resto de la conversación |

137| Usted elimina una herramienta a propósito, como con una [regla de denegación](#denying-an-entire-tool) o deshabilitando su servidor en `/mcp` | Invalidada | La definición se elimina |

138 

139Cuando reanuda una conversación cuyas herramientas se cargan en el prefijo, uno de sus servidores MCP aún puede estar conectándose cuando la primera solicitud sale. Si la transcripción registró las definiciones de herramientas de ese servidor, esa solicitud las incluye como se registraron, por lo que no cambia cuando el servidor termina de conectarse con las mismas herramientas.

131 140 

132Editar su configuración de MCP no cambia la caché por sí solo. La nueva configuración entra en vigor solo después de un reinicio, que es cuando el servidor se conecta o desconecta.141Editar su configuración de MCP no cambia la caché por sí solo. La nueva configuración entra en vigor solo después de un reinicio, que es cuando el servidor se conecta o desconecta.

133 142 


147 Plugins que proporcionan servidores MCP156 Plugins que proporcionan servidores MCP

148</h4>157</h4>

149 158 

150Cuando habilita o deshabilita un plugin que proporciona [servidores MCP](/docs/es/plugins/components#mcp-servers), Claude Code sigue las mismas reglas que cuando [conecta o desconecta un servidor MCP](#connecting-or-disconnecting-an-mcp-server):159Cuando habilita o deshabilita un plugin que proporciona [servidores MCP](/docs/es/plugins/components#mcp-servers), Claude Code sigue las mismas reglas que cuando [conecta o desconecta un servidor MCP](#connecting-or-removing-an-mcp-server).

151 

152* Si Claude Code difiere las herramientas del servidor, mantiene la caché.

153* Si Claude Code las carga en el prefijo, la siguiente solicitud vuelve a leer toda la conversación.

154 160 

155<h4 id="code-intelligence-plugins">161<h4 id="code-intelligence-plugins">

156 Plugins de inteligencia de código162 Plugins de inteligencia de código


244 Editar archivos en su repositorio250 Editar archivos en su repositorio

245</h3>251</h3>

246 252 

247El contenido de los archivos entra en contexto solo cuando Claude los lee, y las lecturas se añaden a la conversación. Editar un archivo que Claude leyó previamente no cambia retroactivamente la lectura anterior en el historial. En su lugar, Claude Code añade un `<system-reminder>` notando que el archivo cambió, y Claude lo vuelve a leer si es necesario.253El contenido de los archivos entra en contexto solo cuando Claude los lee, y las lecturas se añaden a la conversación. Editar un archivo que Claude leyó previamente no cambia retroactivamente la lectura anterior en el historial. En su lugar, Claude Code añade un [`<system-reminder>`](/docs/es/glossary#system-reminder) notando que el archivo cambió, y Claude lo vuelve a leer si es necesario.

248 254 

249<h3 id="editing-claude-md-mid-session">255<h3 id="editing-claude-md-mid-session">

250 Editar CLAUDE.md durante la sesión256 Editar CLAUDE.md durante la sesión


354 Alcance del caché360 Alcance del caché

355</h2>361</h2>

356 362 

357En Claude Code, el caché está efectivamente limitado a una máquina y directorio. Cada conversación lleva consigo el directorio de trabajo, plataforma, shell, y versión del SO, y el prompt del sistema nombra sus rutas de memoria automática, por lo que dos sesiones en directorios diferentes construyen prefijos diferentes y se pierden el caché del otro. Eso incluye worktrees del mismo repositorio, ya que cada worktree tiene su propio directorio de trabajo.363En Claude Code, el caché está efectivamente limitado a una máquina y directorio. El prompt del sistema integra sus rutas de memoria automática, y la conversación se abre con un anuncio del directorio de trabajo, plataforma, shell, y versión del SO. Dos sesiones en directorios diferentes, por lo tanto, construyen prefijos diferentes y se pierden el caché del otro.

358 364 

359Las sesiones que ejecuta en paralelo en el mismo directorio construyen prefijos coincidentes y leen el caché del otro. Las sesiones secuenciales comparten el prefijo solo cuando la instantánea de estado de git al inicio coincide, ya que cada conversación también lleva la rama y commits recientes de esa instantánea.365Las sesiones que ejecuta en paralelo en el mismo directorio construyen prefijos coincidentes y leen el caché del otro. Las sesiones secuenciales comparten el prefijo solo cuando la instantánea de estado de git al inicio coincide, ya que cada conversación también lleva la rama y commits recientes de esa instantánea.

360 366 

361El caché de API subyacente es más amplio. Los cachés están aislados entre organizaciones, y en algunos proveedores, [entre espacios de trabajo dentro de una organización](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). Dentro de esos límites, cualquier dos solicitudes con el mismo modelo y prefijo leen el mismo caché. Para llamadores de Agent SDK que ejecutan flotas de procesos automatizados, vea [mejorar el almacenamiento en caché de prompts entre usuarios y máquinas](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) para suprimir las secciones por máquina del prompt del sistema y compartir el caché entre máquinas.367El caché de API subyacente es más amplio. Los cachés están aislados entre organizaciones, y en algunos proveedores, [entre espacios de trabajo dentro de una organización](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). Dentro de esos límites, cualquier dos solicitudes con el mismo modelo y prefijo leen el mismo caché. Para llamadores de Agent SDK que ejecutan flotas de procesos automatizados, vea [mejorar el almacenamiento en caché de prompts entre usuarios y máquinas](/docs/es/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) para mover la ubicación de la memoria automática fuera del prompt del sistema y compartir la entrada de caché del prompt del sistema entre usuarios y máquinas.

362 368 

363<h2 id="check-cache-performance">369<h2 id="check-cache-performance">

364 Verificar el rendimiento del caché370 Verificar el rendimiento del caché


405| Variable | Efecto |411| Variable | Efecto |

406| - | - |412| - | - |

407| `DISABLE_PROMPT_CACHING` | Desactivar para todos los modelos |413| `DISABLE_PROMPT_CACHING` | Desactivar para todos los modelos |

408| `DISABLE_PROMPT_CACHING_HAIKU` | Desactivar solo para Haiku |414| `DISABLE_PROMPT_CACHING_HAIKU` | Desactivar para el modelo Haiku predeterminado |

409| `DISABLE_PROMPT_CACHING_SONNET` | Desactivar solo para Sonnet |415| `DISABLE_PROMPT_CACHING_SONNET` | Desactivar solo para Sonnet |

410| `DISABLE_PROMPT_CACHING_OPUS` | Desactivar solo para Opus |416| `DISABLE_PROMPT_CACHING_OPUS` | Desactivar solo para Opus |

411| `DISABLE_PROMPT_CACHING_FABLE` | Desactivar solo para Fable |417| `DISABLE_PROMPT_CACHING_FABLE` | Desactivar solo para Fable |

412 418 

419`DISABLE_PROMPT_CACHING_HAIKU` se aplica al modelo Haiku predeterminado, el modelo al que se resuelve el alias `haiku`. Desactiva el almacenamiento en caché dondequiera que ese modelo se ejecute, incluida la conversación principal cuando es su modelo principal. Cubrir la conversación principal requiere Claude Code v2.1.283 o posterior.

420 

421La variable también cubre un modelo de fondo que establece con la variable `ANTHROPIC_SMALL_FAST_MODEL` obsoleta, cuando ese modelo difiere de su modelo principal.

422 

423Una versión diferente de Haiku que fija como su modelo principal mantiene el almacenamiento en caché; establezca `DISABLE_PROMPT_CACHING` para desactivar el almacenamiento en caché para ella.

424 

413Para establecer la política de almacenamiento en caché en toda una organización, coloque cualquiera de estas o las [variables de TTL](#cache-lifetime) en el bloque `env` de [configuración administrada](/docs/es/managed-settings). Para uso normal, deje el almacenamiento en caché habilitado.425Para establecer la política de almacenamiento en caché en toda una organización, coloque cualquiera de estas o las [variables de TTL](#cache-lifetime) en el bloque `env` de [configuración administrada](/docs/es/managed-settings). Para uso normal, deje el almacenamiento en caché habilitado.

414 426 

415<h2 id="related-resources">427<h2 id="related-resources">

quickstart.md +4 −2

Details

27 Paso 1: Instalar Claude Code27 Paso 1: Instalar Claude Code

28</h2>28</h2>

29 29 

30Para instalar Claude Code, utilice uno de los siguientes métodos:30Para instalar Claude Code, abra una terminal y ejecute el comando para su sistema. Si nunca ha utilizado una terminal antes, la [guía de terminal](/docs/es/terminal-guide) muestra cómo abrir una y pegar el comando.

31 31 

32<Tabs>32<Tabs>

33 <Tab title="Instalación nativa (recomendado)">33 <Tab title="Instalación nativa (recomendado)">


49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```50 ```

51 51 

52 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

53 

52 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.54 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.

53 55 

54 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.56 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.


187 189 

188Claude Code encuentra el archivo apropiado y le muestra el cambio. Si pregunta antes de realizar el cambio, seleccione **Sí** para aprobar.190Claude Code encuentra el archivo apropiado y le muestra el cambio. Si pregunta antes de realizar el cambio, seleccione **Sí** para aprobar.

189 191 

190El modo Auto es el [modo de permiso de inicio integrado](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para sesiones de terminal interactivas en planes Pro, Max y Team: un clasificador revisa las acciones en lugar de usted, y Claude edita la mayoría de los archivos y ejecuta la mayoría de los comandos sin preguntar. En otros planes, el modo Manual es el modo de permiso de inicio integrado. Para la sesión que inicia justo después de instalar, consulte [Primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade).192Con Claude Code v2.1.283 o posterior, el modo auto es el [modo de permiso de inicio integrado](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para sesiones de terminal interactivas: un clasificador revisa las acciones en lugar de usted, y Claude edita la mayoría de los archivos y ejecuta la mayoría de los comandos sin preguntar. En versiones anteriores, el modo auto es el modo de permiso de inicio integrado solo en planes Pro, Max y Team. Para la sesión que inicia justo después de instalar, consulte [Primera sesión después de una instalación o actualización](/docs/es/env-vars#first-session-after-an-install-or-upgrade).

191 193 

192<Note>194<Note>

193 Su configuración u organización puede establecer un modo de permiso de inicio diferente. [Qué modo de permiso inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera lo que hace. Presione `Shift+Tab` en cualquier momento para cambiar el modo de permiso de la sesión en la que se encuentra.195 Su configuración u organización puede establecer un modo de permiso de inicio diferente. [Qué modo de permiso inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) enumera lo que hace. Presione `Shift+Tab` en cualquier momento para cambiar el modo de permiso de la sesión en la que se encuentra.

remote-control.md +135 −143

Details

6 6 

7> Continúe una sesión local de Claude Code desde su teléfono, tableta o cualquier navegador usando Remote Control. Funciona con claude.ai/code y la aplicación móvil de Claude.7> Continúe una sesión local de Claude Code desde su teléfono, tableta o cualquier navegador usando Remote Control. Funciona con claude.ai/code y la aplicación móvil de Claude.

8 8 

9<Note>

10 Remote Control está disponible en todos los planes. En Team y Enterprise, está deshabilitado de forma predeterminada hasta que un propietario habilite el botón de alternancia de Remote Control en [configuración de administración de Claude Code](https://claude.ai/admin-settings/claude-code).

11</Note>

12 

13Remote Control conecta [claude.ai/code](https://claude.ai/code) o la aplicación Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) y [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) a una sesión de Claude Code que se ejecuta en su máquina. Inicie una tarea en su escritorio y luego continúela desde su teléfono en el sofá o desde un navegador en otra computadora.9Remote Control conecta [claude.ai/code](https://claude.ai/code) o la aplicación Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) y [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) a una sesión de Claude Code que se ejecuta en su máquina. Inicie una tarea en su escritorio y luego continúela desde su teléfono en el sofá o desde un navegador en otra computadora.

14 10 

15Cuando inicia una sesión de Remote Control en su máquina, Claude sigue ejecutándose localmente todo el tiempo, por lo que su ejecución de código y acceso al sistema de archivos permanecen en su máquina. Con Remote Control puede:11Cuando inicia una sesión de Remote Control en su máquina, Claude sigue ejecutándose localmente todo el tiempo, por lo que su ejecución de código y acceso al sistema de archivos permanecen en su máquina. Con Remote Control puede:


17* **Usar su entorno local completo de forma remota**: su sistema de archivos, [MCP servers](/docs/es/mcp), herramientas y configuración del proyecto permanecen disponibles, y escribir `@` completa automáticamente las rutas de archivo de su proyecto local.13* **Usar su entorno local completo de forma remota**: su sistema de archivos, [MCP servers](/docs/es/mcp), herramientas y configuración del proyecto permanecen disponibles, y escribir `@` completa automáticamente las rutas de archivo de su proyecto local.

18* **Trabajar desde ambas superficies a la vez**: la conversación y el progreso de [subagentes](/docs/es/sub-agents) y [flujos de trabajo dinámicos](/docs/es/workflows) se mantienen sincronizados en todos los dispositivos conectados, por lo que puede enviar mensajes desde su terminal, navegador y teléfono indistintamente.14* **Trabajar desde ambas superficies a la vez**: la conversación y el progreso de [subagentes](/docs/es/sub-agents) y [flujos de trabajo dinámicos](/docs/es/workflows) se mantienen sincronizados en todos los dispositivos conectados, por lo que puede enviar mensajes desde su terminal, navegador y teléfono indistintamente.

19* **Enviar imágenes y archivos desde su teléfono o navegador**: adjunte una foto o archivo en la aplicación Claude o en claude.ai/code, con o sin un título. Claude ve las fotos adjuntas directamente como parte de su mensaje. Claude Code descarga otros archivos a su máquina y los pasa a Claude como referencias de archivo `@`.15* **Enviar imágenes y archivos desde su teléfono o navegador**: adjunte una foto o archivo en la aplicación Claude o en claude.ai/code, con o sin un título. Claude ve las fotos adjuntas directamente como parte de su mensaje. Claude Code descarga otros archivos a su máquina y los pasa a Claude como referencias de archivo `@`.

20* **Sobrevivir a interrupciones**: si su portátil se duerme o su red se cae, Claude Code se reconecta automáticamente cuando su máquina vuelve a estar en línea. Mientras se reconstruye la conexión, Claude Code pone en cola mensajes, solicitudes de permiso y actualizaciones de estado de subagentes y flujos de trabajo, y los entrega una vez que se recupera la conexión.16* **Sobrevivir a interrupciones**: si su portátil se duerme o su red se cae, Claude Code se reconecta automáticamente cuando su máquina vuelve a estar en línea.

21 

22A diferencia de [Claude Code en la web](/docs/es/claude-code-on-the-web), que se ejecuta en infraestructura en la nube, las sesiones de Remote Control se ejecutan directamente en su máquina e interactúan con su sistema de archivos local. Las interfaces web y móvil son una ventana a esa sesión local.

23 17 

24Esta página cubre la configuración, cómo iniciar y conectarse a sesiones, y cómo Remote Control se compara con Claude Code en la web.18A diferencia de [sesiones en la nube](/docs/es/claude-code-on-the-web), que se ejecutan en infraestructura en la nube, las sesiones de Remote Control se ejecutan directamente en su máquina e interactúan con su sistema de archivos local. Las interfaces web y móvil son una ventana a esa sesión local, por lo que su computadora tiene que permanecer encendida y el proceso `claude` tiene que seguir ejecutándose.

25 19 

26<h2 id="requirements">20<h2 id="requirements">

27 Requisitos21 Requisitos


33* **Autenticación**: ejecute `claude` y use `/login` para iniciar sesión a través de claude.ai si aún no lo ha hecho. Sin un inicio de sesión elegible, `claude remote-control` se cierra con un error, mientras que `claude --remote-control` aún inicia una sesión interactiva y muestra una notificación de fallo de Remote Control poco después del lanzamiento.27* **Autenticación**: ejecute `claude` y use `/login` para iniciar sesión a través de claude.ai si aún no lo ha hecho. Sin un inicio de sesión elegible, `claude remote-control` se cierra con un error, mientras que `claude --remote-control` aún inicia una sesión interactiva y muestra una notificación de fallo de Remote Control poco después del lanzamiento.

34* **Punto final de API**: no disponible en ninguna de estas configuraciones:28* **Punto final de API**: no disponible en ninguna de estas configuraciones:

35 * Utiliza Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.29 * Utiliza Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry.

36 * Apunta [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) a un host distinto de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy. Desactive la variable para usar Remote Control. Antes de v2.1.196, Claude Code permitía Remote Control con un `ANTHROPIC_BASE_URL` personalizado.30 * Apunta [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) a un host distinto de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy. Desactive la variable para usar Remote Control.

37 * Inicia sesión a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) empresarial.31 * Inicia sesión a través de una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) empresarial.

38* **Evaluación de indicadores de características**: [`DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` y `DISABLE_GROWTHBOOK`](/docs/es/env-vars) cada una deshabilita la evaluación de indicadores de características de la que depende la disponibilidad de Remote Control. Desactive la variable dondequiera que esté configurada, en su entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings), para usar Remote Control.32* **Evaluación de indicadores de características**: si establece una [variable de entorno que desactiva la evaluación de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), la disponibilidad de Remote Control depende de cuál sea:

39* **Confianza del espacio de trabajo**: ejecute `claude` en su directorio de proyecto al menos una vez para aceptar el diálogo de confianza del espacio de trabajo. El diálogo de confianza de inicio nunca guarda la confianza para su directorio de inicio, así que inicie Remote Control desde un directorio de proyecto.33 * Si establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK`, Remote Control no está disponible. Desactive la variable dondequiera que esté configurada, en su entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings), para usar Remote Control.

34 * Si establece solo `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, Remote Control permanece disponible a menos que su organización requiera [Dispositivos de confianza](#trusted-devices). Si es así, desactive la variable para usar Remote Control. El uso de Remote Control con cualquiera de estas variables establecidas requiere Claude Code v2.1.283 o posterior.

35* **Confianza del espacio de trabajo**: en un directorio que aún no ha confiado, `claude remote-control` imprime lo que confiar en él activa y pregunta `¿Confiar en <directorio>? [s/N]` antes de iniciarse. Responder `s` guarda la opción, excepto en su directorio de inicio, donde la confianza nunca se guarda y la pregunta vuelve en cada ejecución. Cuando su entrada o salida estándar no es una terminal, el comando no puede preguntar y se cierra con un error [`Workspace not trusted`](/docs/es/errors#workspace-not-trusted-when-starting-remote-control).

40 36 

41<h2 id="start-a-remote-control-session">37<h2 id="start-a-remote-control-session">

42 Inicie una sesión de Remote Control38 Inicie una sesión de Remote Control

43</h2>39</h2>

44 40 

45Puede iniciar una sesión de Remote Control desde la CLI o la extensión de VS Code. La CLI ofrece tres modos de invocación; VS Code usa el comando `/remote-control`.41Puede iniciar una sesión de Remote Control desde la CLI, la [aplicación Claude Desktop](/docs/es/desktop), o la extensión de VS Code. La CLI ofrece tres modos de invocación; la aplicación Desktop y VS Code usan el comando `/remote-control`.

46 42 

47<Tabs>43<Tabs>

48 <Tab title="Modo servidor">44 <Tab title="Modo servidor">


62 | - | - |58 | - | - |

63 | `--name "My Project"` | Establezca un título de sesión personalizado visible en la lista de sesiones en claude.ai/code. |59 | `--name "My Project"` | Establezca un título de sesión personalizado visible en la lista de sesiones en claude.ai/code. |

64 | `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión generados automáticamente cuando no se establece un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. Establezca `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto. |60 | `--remote-control-session-name-prefix <prefix>` | Prefijo para nombres de sesión generados automáticamente cuando no se establece un nombre explícito. El valor predeterminado es el nombre de host de su máquina, produciendo nombres como `myhost-graceful-unicorn`. Establezca `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` para el mismo efecto. |

65 | `-c`, `--continue` | Reanude la sesión que el último servidor en este directorio inició, en lugar de crear una nueva. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--session-id`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior; las versiones anteriores rechazan la bandera como un argumento desconocido. |61 | `-c`, `--continue` | Reanude la sesión que el último servidor en este directorio inició, en lugar de crear una nueva. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--session-id`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior. |

66 | `--session-id <id>` | Reanude una sesión por su ID. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--continue`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior; las versiones anteriores rechazan la bandera como un argumento desconocido. |62 | `--session-id <id>` | Reanude una sesión por su ID. Consulte [Reanude sesiones después de detener el servidor](#resume-sessions-after-stopping-the-server). No se puede combinar con `--continue`, `--spawn`, `--capacity`, o `--create-session-in-dir`. Requiere Claude Code v2.1.200 o posterior. |

67 | `--spawn <mode>` | Cómo el servidor crea sesiones.<br />• `same-dir` (predeterminado): todas las sesiones comparten el directorio de trabajo actual, por lo que pueden entrar en conflicto si editan los mismos archivos.<br />• `worktree`: cada sesión bajo demanda obtiene su propio [git worktree](/docs/es/worktrees). Requiere un repositorio git.<br />• `session`: modo de sesión única. Sirve exactamente una sesión y rechaza conexiones adicionales. Se establece solo al inicio.<br />Presione `w` en tiempo de ejecución para alternar entre `same-dir` y `worktree`. |63 | `--spawn <mode>` | Cómo el servidor crea sesiones.<br />• `same-dir` (predeterminado): todas las sesiones comparten el directorio de trabajo actual, por lo que pueden entrar en conflicto si editan los mismos archivos.<br />• `worktree`: cada sesión bajo demanda obtiene su propio [git worktree](/docs/es/worktrees). Requiere un repositorio git.<br />• `session`: modo de sesión única. Sirve exactamente una sesión y rechaza conexiones adicionales. Se establece solo al inicio.<br />Presione `w` en tiempo de ejecución para alternar entre `same-dir` y `worktree`. |

68 | `--capacity <N>` | Número máximo de sesiones concurrentes. El valor predeterminado es 32. No se puede usar con `--spawn=session`. |64 | `--capacity <N>` | Número máximo de sesiones concurrentes. El valor predeterminado es 32. No se puede usar con `--spawn=session`. |

69 | `--[no-]create-session-in-dir` | Pre-crear una sesión en el directorio actual cuando el servidor se inicia, para que tenga un lugar donde escribir inmediatamente. En modo `worktree` esta sesión permanece en el directorio actual mientras las sesiones bajo demanda obtienen worktrees aislados. Habilitado de forma predeterminada. Si pasa `--no-create-session-in-dir` para comenzar sin ninguno, Claude Code archiva las sesiones del servidor cuando lo detiene, por lo que no hay nada que [reanudar](#resume-sessions-after-stopping-the-server). |65 | `--[no-]create-session-in-dir` | Pre-crear una sesión en el directorio actual cuando el servidor se inicia, para que tenga un lugar donde escribir inmediatamente. En modo `worktree` esta sesión permanece en el directorio actual mientras las sesiones bajo demanda obtienen worktrees aislados. Habilitado de forma predeterminada. Si pasa `--no-create-session-in-dir` para comenzar sin ninguno, Claude Code archiva las sesiones del servidor cuando lo detiene, por lo que no hay nada que [reanudar](#resume-sessions-after-stopping-the-server). |

70 | `--permission-mode <mode>` | Establezca el [modo de permiso](/docs/es/permission-modes) inicial para las sesiones del servidor, como `acceptEdits`. Acepta `manual` como alias para `default`; un modo no reconocido detiene el servidor al inicio y enumera los modos válidos. |66 | `--permission-mode <mode>` | Establezca el [modo de permiso](/docs/es/permission-modes) inicial para las sesiones del servidor, como `acceptEdits`. Acepta `manual` como alias para `default`; un modo no reconocido detiene el servidor al inicio y enumera los modos válidos. |

67 | `-d`, `--debug[=<filter>]` | Active el registro de depuración para el servidor, opcionalmente filtrado por categoría. Pase un filtro solo en la forma `=`, como `--debug=api,hooks`. Requiere Claude Code v2.1.282 o posterior; las versiones anteriores rechazan la bandera como un argumento desconocido. |

71 | `--debug-file <path>` | Escriba registros de depuración en el archivo dado. |68 | `--debug-file <path>` | Escriba registros de depuración en el archivo dado. |

72 | `--verbose` | Mostrar registros detallados de conexión y sesión. |69 | `--verbose` | Mostrar registros detallados de conexión y sesión. |

73 | `--sandbox` / `--no-sandbox` | Habilitar o deshabilitar [sandboxing](/docs/es/sandboxing) para aislamiento del sistema de archivos y red. Deshabilitado de forma predeterminada. |70 | `--sandbox` / `--no-sandbox` | Habilitar o deshabilitar [sandboxing](/docs/es/sandboxing) para aislamiento del sistema de archivos y red. Deshabilitado de forma predeterminada. |

74 71 

75 Proporcione estas banderas después de `remote-control`.72 Proporcione estas banderas después de `remote-control`.

76 73 

77 Si pasa una bandera global `claude` antes de `remote-control`, o un script contenedor agrega una, Claude Code no lleva la bandera a las sesiones que crea el servidor. Claude Code deja pasar la bandera solo cuando se sabe que dejarla no cambia lo que esas sesiones pueden hacer, como `--verbose` o `--model`. Para cualquier otra bandera, como `--settings`, Claude Code [se niega a iniciar](/docs/es/errors#not-carried-over-to-the-sessions-remote-control-starts) y nombra la bandera a eliminar. Antes de v2.1.248, cualquier opción antes de `remote-control` hacía que Claude Code rechazara las banderas después de ella con un error `unknown option`.74 Si pasa una bandera global `claude` antes de `remote-control`, o un script contenedor agrega una, Claude Code no lleva la bandera a las sesiones que crea el servidor. Claude Code deja pasar la bandera solo cuando se sabe que dejarla no cambia lo que esas sesiones pueden hacer, como `--verbose` o `--model`. Para cualquier otra bandera, como `--settings`, Claude Code [se niega a iniciar](/docs/es/errors#not-carried-over-to-the-sessions-remote-control-starts) y nombra la bandera a eliminar.

78 75 

79 Claude Code verifica la elegibilidad de Remote Control antes de imprimir la ayuda, por lo que `claude remote-control --help` devuelve un error en lugar de esta lista de banderas cuando no ha iniciado sesión con una cuenta elegible.76 Claude Code verifica la elegibilidad de Remote Control antes de imprimir la ayuda, por lo que `claude remote-control --help` devuelve un error en lugar de esta lista de banderas cuando no ha iniciado sesión con una cuenta elegible.

80 </Tab>77 </Tab>


126 123 

127 A diferencia de la CLI, el comando de VS Code no acepta un argumento de nombre ni muestra un código QR. El título de la sesión se deriva del historial de conversación o del primer mensaje.124 A diferencia de la CLI, el comando de VS Code no acepta un argumento de nombre ni muestra un código QR. El título de la sesión se deriva del historial de conversación o del primer mensaje.

128 </Tab>125 </Tab>

126 

127 <Tab title="Aplicación de escritorio">

128 En una sesión local en la [pestaña Code de la aplicación Claude Desktop](/docs/es/desktop), escriba `/remote-control` o `/rc` en el cuadro de solicitud.

129 

130 ```text theme={null}

131 /remote-control

132 ```

133 

134 Una vez que la sesión se conecta, encuéntrela en la lista de sesiones en [claude.ai/code](https://claude.ai/code). Para desconectarse, ejecute `/remote-control` nuevamente.

135 

136 Para activar Remote Control para cada sesión de forma predeterminada, consulte [Habilite Remote Control para todas las sesiones](#enable-remote-control-for-all-sessions).

137 </Tab>

129</Tabs>138</Tabs>

130 139 

131<h3 id="check-connection-status">140<h3 id="check-connection-status">


140* **Esta sesión fue terminada o archivada desde otro dispositivo o aplicación**: ejecute `/remote-control` solo si la desea de vuelta. Claude Code reabre una sesión archivada.149* **Esta sesión fue terminada o archivada desde otro dispositivo o aplicación**: ejecute `/remote-control` solo si la desea de vuelta. Claude Code reabre una sesión archivada.

141* **El servidor ya no reporta esta sesión**: puede haber sido eliminada desde otro dispositivo o aplicación.150* **El servidor ya no reporta esta sesión**: puede haber sido eliminada desde otro dispositivo o aplicación.

142 151 

143<h3 id="session-url-reminders">

144 Recordatorios de URL de sesión

145</h3>

146 

147Mientras Remote Control está conectado, Claude Code le recuerda la URL de la sesión cuando cambiar a su teléfono o navegador es más útil, para que no tenga que encontrar el enlace en `/remote-control`. Un recordatorio aparece encima del cuadro de solicitud en cualquiera de estos momentos:

148 

149* **Turno largo**: cuando un turno se ejecuta más tiempo que un umbral ajustado por el servidor, Claude Code muestra una notificación **Still working** con un enlace **Check in from your phone**, para que pueda seguir el turno desde su teléfono o navegador en lugar de esperar en la terminal. Claude Code la elimina cuando el turno termina.

150* **Solicitudes de permiso repetidas**: después de responder varios [solicitudes de permiso](/docs/es/permissions) en una sesión, aparece una notificación **Approve tool calls from your phone** que muestra la URL de la sesión. Claude Code la elimina cuando comienza su próximo turno.

151 

152Los recordatorios pueden aparecer en cualquier sesión conectada, incluidas aquellas donde Remote Control [se conecta automáticamente](#enable-remote-control-for-all-sessions). No aparecen cada vez que ocurren estas condiciones, y cada uno aparece solo algunas pocas veces en total entre sesiones. No puede configurarlos ni desactivarlos; cada uno se borra por sí solo.

153 

154<h3 id="connect-from-another-device">152<h3 id="connect-from-another-device">

155 Conectarse desde otro dispositivo153 Conectarse desde otro dispositivo

156</h3>154</h3>


1703. El último mensaje significativo en el historial de conversación existente1683. El último mensaje significativo en el historial de conversación existente

1714. Un nombre generado automáticamente como `myhost-graceful-unicorn`, donde `myhost` es el nombre de host de su máquina o el prefijo que estableció con `--remote-control-session-name-prefix`1694. Un nombre generado automáticamente como `myhost-graceful-unicorn`, donde `myhost` es el nombre de host de su máquina o el prefijo que estableció con `--remote-control-session-name-prefix`

172 170 

173Si no estableció un nombre explícito, Claude Code actualiza el título para reflejar su solicitud una vez que envíe una. Claude Code hace coincidir los títulos generados automáticamente con el idioma de su conversación, o con la configuración [`language`](/docs/es/settings-reference#language) si una está configurada.171Si no estableció un nombre explícito, Claude Code actualiza el título para reflejar su solicitud una vez que envíe una. Cuando renombra una sesión desde claude.ai o la aplicación Claude, Claude Code también actualiza el título local que se muestra en `claude --resume`.

174 

175Cuando renombra una sesión desde claude.ai o la aplicación Claude, Claude Code también actualiza el título local que se muestra en `claude --resume`. Claude Code aplica el mismo cambio de nombre al nombre de sesión que se muestra en la barra de solicitud, y en la lista `claude agents` cuando la sesión [se ejecuta en segundo plano](/docs/es/agent-view). Antes de v2.1.221, renombrar desde la lista de sesiones en claude.ai o en la aplicación Claude actualizaba solo el título, y la CLI mantenía su nombre de sesión anterior; `/rename`, que se ejecuta en la CLI misma, establece el nombre en cualquier versión.

176 172 

177Si aún no tiene la aplicación Claude, ejecute `/mobile` dentro de Claude Code para mostrar un código QR para [claude.ai/mobile](https://claude.ai/mobile), que abre la tienda de aplicaciones correcta para su teléfono.173Si aún no tiene la aplicación Claude, ejecute `/mobile` dentro de Claude Code para mostrar un código QR para [claude.ai/mobile](https://claude.ai/mobile), que abre la tienda de aplicaciones correcta para su teléfono.

178 174 


185* **Compactación y `/clear`**: mientras Claude Code [compacta la conversación](/docs/es/context-window#what-survives-compaction), los dispositivos conectados muestran el progreso y luego dónde se compactó la conversación. Cuando ejecuta `/clear`, la conversación se reinicia en los dispositivos conectados también.181* **Compactación y `/clear`**: mientras Claude Code [compacta la conversación](/docs/es/context-window#what-survives-compaction), los dispositivos conectados muestran el progreso y luego dónde se compactó la conversación. Cuando ejecuta `/clear`, la conversación se reinicia en los dispositivos conectados también.

186* **Cambiar conversaciones con `/resume`**: el dispositivo conectado no recibe el título o historial anterior de la conversación a la que se cambió, pero los nuevos mensajes en ambas direcciones van hacia y desde cualquier conversación que esté abierta en su terminal. Para trabajar en la conversación original desde el dispositivo nuevamente, ejecute `/resume` en su terminal y vuelva a cambiar a ella.182* **Cambiar conversaciones con `/resume`**: el dispositivo conectado no recibe el título o historial anterior de la conversación a la que se cambió, pero los nuevos mensajes en ambas direcciones van hacia y desde cualquier conversación que esté abierta en su terminal. Para trabajar en la conversación original desde el dispositivo nuevamente, ejecute `/resume` en su terminal y vuelva a cambiar a ella.

187* **Extraer una sesión con `/teleport`**: cuando extrae una [sesión de Claude Code en la web](/docs/es/claude-code-on-the-web#from-cloud-to-terminal) en su terminal con `/teleport`, el dispositivo conectado no recibe el historial anterior de la conversación extraída. Los nuevos mensajes en ambas direcciones van hacia y desde la conversación extraída, que ahora es la que está abierta en su terminal.183* **Extraer una sesión con `/teleport`**: cuando extrae una [sesión de Claude Code en la web](/docs/es/claude-code-on-the-web#from-cloud-to-terminal) en su terminal con `/teleport`, el dispositivo conectado no recibe el historial anterior de la conversación extraída. Los nuevos mensajes en ambas direcciones van hacia y desde la conversación extraída, que ahora es la que está abierta en su terminal.

188* **Mensajes de sus otras sesiones**: con [mensajería entre sesiones](/docs/es/cross-session-messaging), la misma conexión lleva mensajes entre sus propias sesiones en diferentes máquinas y desde sus sesiones [Claude Code en la web](/docs/es/claude-code-on-the-web), a través de servidores de Anthropic como el resto del tráfico de Remote Control. [Mensajería de sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cubre las reglas de entrega y [Controle los mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) cubre los controles entrantes. Requiere Claude Code v2.1.224 o posterior.184* **Mensajes de sus otras sesiones**: con [mensajería entre sesiones](/docs/es/cross-session-messaging), la misma conexión lleva mensajes entre sus propias sesiones en diferentes máquinas y desde sus [sesiones de Claude Code en la web](/docs/es/claude-code-on-the-web).

189* **Solicitudes que envía a mitad de turno**: cuando envía una solicitud desde un dispositivo conectado antes de que termine el turno actual, Claude Code la pone en cola y la mantiene en la transcripción del dispositivo después de que ese turno termina.185* **Diferencia de sus cambios**: cuando el directorio de la sesión está en un repositorio git, el panel de diferencia de un dispositivo conectado muestra sus cambios. En una rama que tiene confirmaciones por delante de la rama predeterminada del repositorio, el panel muestra los cambios desde que la rama se separó de ella, incluidas sus ediciones sin confirmar. En la rama predeterminada misma, o en una rama que no está por delante de ella, el panel muestra solo sus cambios sin confirmar.

190* **Diferencia de sus cambios**: cuando el directorio de la sesión está en un repositorio git, el panel de diferencia de un dispositivo conectado muestra sus cambios. El dispositivo solicita la diferencia sobre la conexión, y Claude Code la calcula en su máquina. En una rama que tiene confirmaciones por delante de la rama predeterminada del repositorio, el panel muestra los cambios desde que la rama se separó de ella, incluidas sus ediciones sin confirmar. En la rama predeterminada misma, o en una rama que no está por delante de ella, el panel muestra solo sus cambios sin confirmar. Antes de v2.1.247, Claude Code reportaba la diferencia a los dispositivos conectados solo en sesiones servidas por `claude remote-control`.186* **Modelo**: cuando elige un [modelo](/docs/es/model-config) desde un dispositivo conectado, Claude Code ejecuta la sesión en ese modelo. Requiere Claude Code v2.1.238 o posterior. Un modelo que elige desde el control de modelo del dispositivo se aplica solo a la sesión actual. Cuando envía `/model <name>` desde el dispositivo a una sesión interactiva, Claude Code también establece su predeterminado para nuevas sesiones.

191* **Modelo**: cuando elige un [modelo](/docs/es/model-config) desde un dispositivo conectado, Claude Code ejecuta la sesión en ese modelo. El selector `/model` del terminal, `/status`, y `/config` muestran ese modelo. Requiere Claude Code v2.1.238 o posterior.187* **Nivel de esfuerzo**: cuando establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) desde un dispositivo conectado, con `/effort` o el control de esfuerzo del dispositivo, Claude Code lo aplica a la sesión en su máquina. Si fijó un nivel con `CLAUDE_CODE_EFFORT_LEVEL`, la sesión mantiene ese nivel, y Claude Code rechaza una selección diferente desde el control de esfuerzo. Seleccionar un nivel desde el control de esfuerzo requiere Claude Code v2.1.234 o posterior en su máquina.

192 * Un modelo que elige desde el control de modelo del dispositivo se aplica solo a la sesión actual. Cuando envía `/model <name>` desde el dispositivo a una sesión interactiva, Claude Code también establece su predeterminado para nuevas sesiones.

193 * Si envía un nombre que Claude Code no reconoce, como un nombre para mostrar donde se espera un ID de modelo, Claude Code [rechaza la selección](/docs/es/errors#model-is-not-a-recognized-model-id) y la sesión mantiene su modelo actual. Antes de v2.1.260, Claude Code guardaba una selección no reconocida desde el control de modelo del dispositivo, y su próximo mensaje fallaba.

194* **Nivel de esfuerzo**: cuando establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) desde un dispositivo conectado, con `/effort` o el control de esfuerzo del dispositivo, Claude Code lo aplica a la sesión en su máquina, y claude.ai/code muestra el nivel que la sesión está usando. Si fijó un nivel con `CLAUDE_CODE_EFFORT_LEVEL`, la sesión mantiene ese nivel, y Claude Code rechaza una selección diferente desde el control de esfuerzo. Seleccionar un nivel desde el control de esfuerzo requiere Claude Code v2.1.234 o posterior en su máquina.

195* **Reconexión después de un fallo de conexión**: ejecute `/remote-control` para reconectarse. Si la compactación rescribió la conversación o cambió conversaciones con `/resume` mientras tanto, Claude Code archiva la sesión del servidor que estaba usando en lugar de dejarla en la lista de sesiones. Aún puede encontrarla [filtrando sesiones archivadas](/docs/es/claude-code-on-the-web#archive-sessions). Cambiar conversaciones mientras un dispositivo aún está conectado no archiva la sesión.188* **Reconexión después de un fallo de conexión**: ejecute `/remote-control` para reconectarse. Si la compactación rescribió la conversación o cambió conversaciones con `/resume` mientras tanto, Claude Code archiva la sesión del servidor que estaba usando en lugar de dejarla en la lista de sesiones. Aún puede encontrarla [filtrando sesiones archivadas](/docs/es/claude-code-on-the-web#archive-sessions). Cambiar conversaciones mientras un dispositivo aún está conectado no archiva la sesión.

196 189 

197<h3 id="enable-remote-control-for-all-sessions">190<h3 id="enable-remote-control-for-all-sessions">


207El mismo botón de alternancia aparece fuera de la CLI:200El mismo botón de alternancia aparece fuera de la CLI:

208 201 

209* **Aplicación de escritorio**: **Settings > Claude Code > Enable remote control by default**.202* **Aplicación de escritorio**: **Settings > Claude Code > Enable remote control by default**.

210* **Extensión de VS Code**: **Enable Remote Control for all sessions** en la sección Configuración del [menú de comandos](/docs/es/vs-code#use-the-prompt-box). Requiere Claude Code v2.1.203 o posterior.203* **Extensión de VS Code**: **Enable Remote Control for all sessions** en la sección Configuración del [menú de comandos](/docs/es/vs-code#use-the-prompt-box).

211 204 

212Para activar la conexión automática desde un archivo de configuración en su lugar, establezca [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) en `true` en su usuario `~/.claude/settings.json` o en [configuración administrada](/docs/es/managed-settings). En configuración de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra un `false` y desactiva la conexión automática para ese repositorio, pero ignora un `true`, por lo que un archivo registrado no puede activar Remote Control para todos los que abren el repositorio.205Para activar la conexión automática desde un archivo de configuración en su lugar, establezca [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) en `true` en su usuario `~/.claude/settings.json` o en [configuración administrada](/docs/es/managed-settings). En configuración de proyecto o local (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code honra un `false` y desactiva la conexión automática para ese repositorio, pero ignora un `true`, por lo que un archivo registrado no puede activar Remote Control para todos los que abren el repositorio.

213 206 


227 220 

228Estos comandos funcionan durante aproximadamente cuatro horas después de que el servidor se detuvo. Después de eso, ejecute `claude remote-control` para iniciar una nueva sesión. Si archivó una sesión mientras tanto, `--continue` y `--session-id` la desarchivan en Claude Code v2.1.228 o posterior.221Estos comandos funcionan durante aproximadamente cuatro horas después de que el servidor se detuvo. Después de eso, ejecute `claude remote-control` para iniciar una nueva sesión. Si archivó una sesión mientras tanto, `--continue` y `--session-id` la desarchivan en Claude Code v2.1.228 o posterior.

229 222 

230Para traer de vuelta una sesión que inició con `claude --remote-control` o `/remote-control`, reanude la conversación con `claude --continue` o `claude --resume`. Si Claude Code se reconecta, y a qué sesión, depende del [registro de reconexión](#resume-outcomes) de la conversación.223Para traer de vuelta una sesión que inició con `claude --remote-control` o `/remote-control`, reanude la conversación con `claude --continue` o `claude --resume`. Si Remote Control no se reconecta, consulte [No se pudo reconectar a su sesión de Remote Control](#couldnt-reconnect-to-your-remote-control-session).

231 224 

232Si reanuda la conversación en una segunda terminal mientras la primera aún tiene Remote Control activado, Claude Code imprime un aviso en la segunda terminal y deja Remote Control desactivado allí en lugar de tomar la sesión de la primera. Mientras Remote Control permanece desactivado allí, Claude en esa terminal no ve [sus sesiones en otras máquinas](/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach), y no pueden alcanzarlo. Ejecute `/remote-control` en la segunda terminal para mover Remote Control a ella.225Si reanuda la conversación en una segunda terminal mientras la primera aún tiene Remote Control activado, Claude Code imprime un aviso `Remote Control not started here` en la segunda terminal y deja Remote Control desactivado allí en lugar de tomar la sesión de la primera. Ejecute `/remote-control` en la segunda terminal para mover Remote Control a ella.

233 226 

234Cuando reanuda una conversación en Claude Desktop o una extensión de IDE que tenía Remote Control activado, Claude Code lo vuelve a adjuntar a la sesión de claude.ai existente en lugar de agregar una nueva a la lista de sesiones.227Cuando reanuda una conversación en Claude Desktop o una extensión de IDE que tenía Remote Control activado, Claude Code lo vuelve a adjuntar a la sesión de claude.ai existente en lugar de agregar una nueva a la lista de sesiones.

235 228 


239 232 

240Su sesión local de Claude Code realiza solo solicitudes HTTPS salientes y nunca abre puertos entrantes en su máquina. Cuando inicia Remote Control, se registra con la API de Anthropic y sondea el trabajo. Cuando se conecta desde otro dispositivo, el servidor enruta mensajes entre el cliente web o móvil y su sesión local a través de una conexión de transmisión.233Su sesión local de Claude Code realiza solo solicitudes HTTPS salientes y nunca abre puertos entrantes en su máquina. Cuando inicia Remote Control, se registra con la API de Anthropic y sondea el trabajo. Cuando se conecta desde otro dispositivo, el servidor enruta mensajes entre el cliente web o móvil y su sesión local a través de una conexión de transmisión.

241 234 

242Todo el tráfico viaja a través de la API de Anthropic sobre TLS, el mismo transporte de seguridad que cualquier sesión de Claude Code. La conexión utiliza múltiples credenciales de corta duración, cada una limitada a un único propósito y expirando de forma independiente. Cuando la credencial de registro de un servidor `claude remote-control` expira, el servidor se registra nuevamente con la API de Anthropic y continúa sirviendo sus sesiones.235Todo el tráfico viaja a través de la API de Anthropic sobre TLS, el mismo transporte de seguridad que cualquier sesión de Claude Code. La conexión utiliza múltiples credenciales de corta duración, cada una limitada a un único propósito y expirando de forma independiente.

243 236 

244Mientras Remote Control está conectado, la transcripción de la sesión, incluidos sus mensajes, las respuestas de Claude y la actividad de herramientas, se almacena en los servidores de Anthropic. La transcripción almacenada mantiene la conversación sincronizada en todos sus dispositivos y permite que la sesión se reconecte después de una caída de red. La ejecución y el acceso al sistema de archivos permanecen en su máquina, y las transcripciones almacenadas se retienen bajo la política de [Uso de datos](/docs/es/data-usage).237Mientras Remote Control está conectado, la transcripción de la sesión, incluidos sus mensajes, las respuestas de Claude y la actividad de herramientas, se almacena en los servidores de Anthropic. La transcripción almacenada mantiene la conversación sincronizada en todos sus dispositivos y permite que la sesión se reconecte después de una caída de red. La ejecución y el acceso al sistema de archivos permanecen en su máquina, y las transcripciones almacenadas se retienen bajo la política de [Uso de datos](/docs/es/data-usage).

245 238 


309Para un dispositivo perdido o robado, el miembro lo elimina de esta página. Si el miembro no puede iniciar sesión, un administrador puede usar **Sign out everywhere** en la consola de administración para revocar cada sesión y dispositivo inscrito para ese miembro, después de lo cual el miembro reinscribe los dispositivos que aún posee.302Para un dispositivo perdido o robado, el miembro lo elimina de esta página. Si el miembro no puede iniciar sesión, un administrador puede usar **Sign out everywhere** en la consola de administración para revocar cada sesión y dispositivo inscrito para ese miembro, después de lo cual el miembro reinscribe los dispositivos que aún posee.

310 303 

311<h2 id="remote-control-vs-cloud-sessions">304<h2 id="remote-control-vs-cloud-sessions">

312 Remote Control vs sesiones en la nube305 Control Remoto vs sesiones en la nube

313</h2>306</h2>

314 307 

315Remote Control y [sesiones en la nube](/docs/es/claude-code-on-the-web) ambos usan la interfaz claude.ai/code. La diferencia clave es dónde se ejecuta la sesión: Remote Control se ejecuta en su máquina, por lo que sus servidores MCP locales, herramientas y configuración del proyecto permanecen disponibles. Una sesión en la nube se ejecuta en infraestructura en la nube, administrada por Anthropic de forma predeterminada.308Control Remoto y [sesiones en la nube](/docs/es/claude-code-on-the-web) ambos utilizan la interfaz claude.ai/code. La diferencia clave es dónde se ejecuta la sesión: Control Remoto se ejecuta en su máquina, por lo que sus servidores MCP locales, herramientas y configuración del proyecto permanecen disponibles. Una sesión en la nube se ejecuta en infraestructura en la nube, administrada por Anthropic de forma predeterminada.

309 

310Utilice Control Remoto cuando esté en medio de trabajo local y desee continuar desde otro dispositivo. Utilice una sesión en la nube cuando desee iniciar una tarea sin ninguna configuración local, trabajar en un repositorio que no tiene clonado, o ejecutar múltiples tareas en paralelo. Un [proyecto](/docs/es/claude-projects) combina los dos: sus hilos se ejecutan en la nube, y utiliza Control Remoto para [ejecutar un hilo en su computadora](/docs/es/claude-projects#run-a-thread-on-your-own-computer) cuando usted lo solicita allí.

311 

312Claude Code ofrece varias formas de trabajar cuando no está en su terminal. Difieren en lo que desencadena el trabajo, dónde se ejecuta Claude y cuánta configuración necesita.

316 313 

317Use Remote Control cuando esté en medio del trabajo local y desee continuar desde otro dispositivo. Use una sesión en la nube cuando desee iniciar una tarea sin ninguna configuración local, trabajar en un repositorio que no tiene clonado, o ejecutar varias tareas en paralelo.314| | Desencadenante | Claude se ejecuta en | Configuración | Mejor para |

315| :- | :- | :- | :- | :- |

316| [Dispatch](/docs/es/desktop#sessions-from-dispatch) | Envíe un mensaje con una tarea desde la aplicación móvil de Claude | Su máquina (Desktop) | [Empareje la aplicación móvil con Desktop](https://support.claude.com/en/articles/13947068) | Delegar trabajo mientras está fuera, configuración mínima |

317| [Remote Control](/docs/es/remote-control) | Controle una sesión en ejecución desde [claude.ai/code](https://claude.ai/code) o la aplicación móvil de Claude | Su máquina (CLI, Desktop o VS Code) | Ejecute [`claude remote-control` o `/remote-control`](/docs/es/remote-control#start-a-remote-control-session) | Dirigir el trabajo en progreso desde otro dispositivo |

318| [Channels](/docs/es/channels) | Envíe eventos desde una aplicación de chat como Telegram o Discord, o su propio servidor | Su máquina (CLI) | [Instale un plugin de canal](/docs/es/channels#quickstart) o [cree el suyo propio](/docs/es/channels-reference) | Reaccionar a eventos externos como fallos de CI o mensajes de chat |

319| [Slack](/docs/es/slack) | Mencione `@Claude` en un canal de equipo | Nube de Anthropic | [Instale la aplicación de Slack](/docs/es/slack#setting-up-claude-code-in-slack) con [Claude Code en la web](/docs/es/claude-code-on-the-web) habilitado | PRs y revisiones desde el chat del equipo |

320| [Entornos autohospedados](/docs/es/self-hosted-environments) | Inicie una [sesión en la nube](/docs/es/claude-code-on-the-web) y seleccione el entorno de su organización | La infraestructura de su organización | [Implemente ejecutores](/docs/es/self-hosted-environments-quickstart), en planes Team y Enterprise | Sesiones en la nube que deben ejecutarse dentro de su red |

321| [Tareas programadas](/docs/es/scheduled-tasks) | Establezca una programación | [CLI](/docs/es/scheduled-tasks), [Desktop](/docs/es/desktop-scheduled-tasks), o [nube](/docs/es/routines) | Seleccione una frecuencia | Automatización recurrente como revisiones diarias |

318 322 

319<h2 id="mobile-push-notifications">323<h2 id="mobile-push-notifications">

320 Notificaciones push móviles324 Notificaciones push móviles


322 326 

323Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono.327Cuando Remote Control está activo, Claude puede enviar notificaciones push a su teléfono.

324 328 

325Claude decide cuándo enviar. Típicamente envía una cuando una tarea de larga duración finaliza o cuando necesita una decisión de usted para continuar. También puede solicitar un push en su solicitud, por ejemplo `notify me when the tests finish`. Más allá de los dos botones de alternancia activado/desactivado a continuación, no hay configuración por evento.329Claude decide cuándo enviar. Típicamente envía una cuando una tarea de larga duración finaliza o cuando necesita una decisión suya para continuar. También puede solicitar una notificación en su prompt, por ejemplo `notifícame cuando terminen las pruebas`. Más allá de los dos controles de encendido/apagado a continuación, no hay configuración por evento.

326 330 

327Para configurar notificaciones push móviles:331Para configurar notificaciones push móviles:

328 332 

329<Steps>333<Steps>

330 <Step title="Instale la aplicación móvil Claude">334 <Step title="Instalar la aplicación móvil de Claude">

331 Descargue la aplicación Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) o [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude).335 Descargue la aplicación Claude para [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) o [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude).

332 </Step>336 </Step>

333 337 

334 <Step title="Inicie sesión con su cuenta de Claude Code">338 <Step title="Inicie sesión con su cuenta de Claude Code">

335 Use la misma cuenta y organización que usa para Claude Code en la terminal.339 Use la misma cuenta y organización que utiliza para Claude Code en la terminal.

336 </Step>340 </Step>

337 341 

338 <Step title="Permita notificaciones">342 <Step title="Permitir notificaciones">

339 Acepte el mensaje de solicitud de permiso de notificación del sistema operativo.343 Acepte el aviso de permiso de notificaciones del sistema operativo.

340 </Step>344 </Step>

341 345 

342 <Step title="Habilite push en Claude Code">346 <Step title="Habilitar push en Claude Code">

343 En su terminal, ejecute `/config` y habilite **Push when Claude decides** para notificaciones proactivas, **Push when actions required** para mensajes de solicitud de permiso y preguntas, o ambos.347 En su terminal, ejecute `/config` y habilite **Push cuando Claude decide** para notificaciones proactivas, **Push cuando se requieren acciones** para avisos de permisos y preguntas, o ambas.

344 </Step>348 </Step>

345</Steps>349</Steps>

346 350 

347Si las notificaciones no llegan:351Si las notificaciones no llegan:

348 352 

349* Si `/config` muestra **No mobile registered**, abra la aplicación Claude en su teléfono para que pueda actualizar su token push. La advertencia se borra la próxima vez que Remote Control se conecte.353* Si `/config` muestra **No mobile registered**, abra la aplicación Claude en su teléfono para que pueda actualizar su token push. El aviso se borra la próxima vez que Remote Control se conecte.

350* En iOS, los modos Focus y los resúmenes de notificaciones pueden suprimir o retrasar los pushes. Verifique Configuración → Notificaciones → Claude.354* En iOS, los modos de enfoque y los resúmenes de notificaciones pueden suprimir o retrasar los pushes. Verifique Configuración → Notificaciones → Claude.

351* En Android, la optimización agresiva de batería puede retrasar la entrega. Exima la aplicación Claude de la optimización de batería en la configuración del sistema.355* En Android, la optimización agresiva de batería puede retrasar la entrega. Exima la aplicación Claude de la optimización de batería en la configuración del sistema.

352 356 

353Claude Code omite las notificaciones push móviles mientras usted está escribiendo o enfocado en la terminal conectada. A partir de v2.1.181, puede establecer [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/es/env-vars) en una ruta de archivo marcador para extender esto a cualquier momento en que esté en la máquina, incluso en otra ventana: las notificaciones se omiten mientras el archivo existe. Configure un escucha de bloqueo de pantalla o una herramienta similar para crear el archivo cuando su pantalla se desbloquea y eliminarlo cuando su pantalla se bloquea.357Claude Code omite las notificaciones push móviles mientras está escribiendo o enfocado en la terminal conectada. Para extender esto a cualquier momento en que esté en la máquina, incluso en otra ventana, establezca [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/es/env-vars) en una ruta de archivo marcador: las notificaciones se omiten mientras el archivo existe. Configure un escucha de bloqueo de pantalla o una herramienta similar para crear el archivo cuando su pantalla se desbloquea y eliminarlo cuando su pantalla se bloquea.

354 358 

355<h2 id="limitations">359<h2 id="limitations">

356 Limitaciones360 Limitaciones

357</h2>361</h2>

358 362 

359* **Una sesión remota por proceso interactivo**: fuera del modo servidor, cada instancia de Claude Code admite una sesión remota a la vez. Use el [modo servidor](#start-a-remote-control-session) para ejecutar varias sesiones concurrentes desde un único proceso.363* **Una sesión remota por proceso interactivo**: fuera del modo servidor, cada instancia de Claude Code admite una sesión remota a la vez. Utilice [modo servidor](#start-a-remote-control-session) para ejecutar múltiples sesiones concurrentes desde un único proceso.

360* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierra la terminal, cierra VS Code, o detiene el proceso `claude` de otra manera, la sesión se desconecta hasta que la [reanude](#resume-sessions-after-stopping-the-server). A menos que Claude esté en medio de una tarea, claude.ai y la aplicación Claude muestran la sesión como desconectada en segundos después de que el proceso se cierre. Para mantener una sesión ejecutándose en una máquina remota después de desconectarse de SSH, inicie la sesión dentro de `tmux` o `screen`.364* **El proceso local debe seguir ejecutándose**: Remote Control se ejecuta como un proceso local. Si cierra la terminal, sale de la aplicación de escritorio o VS Code, o detiene de otra manera el proceso `claude`, la sesión se desconecta hasta que [la vuelva a conectar](#resume-sessions-after-stopping-the-server). Para mantener una sesión ejecutándose en una máquina remota después de desconectarse de SSH, inicie la sesión dentro de `tmux` o `screen`.

361* **Sesiones bloqueadas en modo servidor**: si una sesión servida por `claude remote-control` se bloquea, envíele un mensaje desde un dispositivo conectado. Claude Code la sirve nuevamente. No tiene que reiniciar el servidor. Requiere Claude Code v2.1.238 o posterior.365* **Sesiones que se cuelgan en modo servidor**: si una sesión servida por `claude remote-control` se cuelga, envíele un mensaje desde un dispositivo conectado. Claude Code la sirve de nuevo. No tiene que reiniciar el servidor. Requiere Claude Code v2.1.238 o posterior.

362* **Rechazos HTTP 403 en una sesión conectada**: una vez que una sesión interactiva está conectada, Claude Code sigue reintentando hasta tres minutos cuando algo entre su máquina y los servidores de Anthropic responde con HTTP 403, como puede suceder después de un cambio de VPN o red. Si los rechazos duran más tiempo, Claude Code se desconecta, y el motivo nombra lo que rechazó: un borde de red, o un proxy, VPN o firewall en su propia red.366* **Rechazos HTTP 403 en una sesión conectada**: una vez que una sesión interactiva está conectada, Claude Code sigue reintentando durante hasta tres minutos cuando algo entre su máquina y los servidores de Anthropic responde con HTTP 403, lo que puede ocurrir después de un cambio de VPN o red. Si los rechazos duran más tiempo, Claude Code se desconecta, y el motivo indica qué rechazó: un borde de red, o un proxy, VPN o firewall en su propia red.

363* **Interrupción de red extendida**: si su máquina está despierta pero no puede alcanzar la red, lo que haga a continuación depende del modo:367* **Interrupción de red extendida**: si su máquina está encendida pero no puede alcanzar la red, lo que haga a continuación depende del modo:

364 * **Modo servidor**: Claude Code se rinde después de aproximadamente 10 minutos y el proceso `claude remote-control` se cierra. Ejecute `claude remote-control` nuevamente para iniciar una nueva sesión.368 * **Modo servidor**: Claude Code se rinde después de aproximadamente 10 minutos y el proceso `claude remote-control` se cierra. Ejecute `claude remote-control` de nuevo para iniciar una nueva sesión.

365 * **Sesión interactiva**: siga trabajando localmente. Claude Code reintenta mientras dure la interrupción y se reconecta automáticamente cuando la red vuelva.369 * **Sesión interactiva**: siga trabajando localmente. Claude Code reintenta mientras dure la interrupción y se reconecta automáticamente cuando la red vuelve.

366* **Latidos de presencia fallidos**: si una sesión interactiva se desconecta con `could not reach the Remote Control server for about 30 minutes`, ejecute `/remote-control` para reconectarse. Claude Code muestra este mensaje solo cuando los latidos de presencia de la sesión han estado fallando mientras el resto de la conexión se mantuvo activa; vuelve a registrar la sesión durante aproximadamente 30 minutos antes de desconectarse.370* **Latidos de presencia fallidos**: si una sesión interactiva se desconecta con `could not reach the Remote Control server for about 30 minutes`, ejecute `/remote-control` para reconectarse.

367* **Los diálogos reenviados expiran**: Claude Code mantiene los avisos de permiso y las preguntas de `AskUserQuestion` abiertas hasta que las responda. Cuando Claude Code reenvía otro tipo de diálogo a la sesión remota, como el aviso de selección de modelo que se muestra después de un rechazo de seguridad, espera cinco minutos por defecto, luego cierra el diálogo y continúa con el valor predeterminado sin acción del diálogo. Establezca [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) para ajustar o deshabilitar el plazo. Requiere Claude Code v2.1.224 o posterior.371* **Los diálogos reenviados expiran**: Claude Code mantiene los mensajes de permiso y las preguntas de `AskUserQuestion` abiertas hasta que las responda. Cuando Claude Code reenvía otro tipo de diálogo a la sesión remota, como el mensaje de selección de modelo que se muestra después de un rechazo de seguridad, espera cinco minutos por defecto, luego cierra el diálogo y continúa con el valor predeterminado sin acción del diálogo. Establezca [`dialogExpiry`](/docs/es/settings-reference#dialogexpiry) para ajustar o desactivar el plazo. Requiere Claude Code v2.1.224 o posterior.

368* **El aviso de consentimiento de créditos de uso de Fable no se reenvía**: Claude Code muestra el aviso de consentimiento de créditos de uso de [Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión solo donde se ejecuta la sesión, no en su dispositivo. Cuando la sesión se ejecuta en una terminal y nadie allí responde antes de que Claude Code cierre el aviso, el turno finaliza sin enviar la solicitud; consulte [El aviso para confirmar no fue respondido](/docs/es/errors#the-prompt-to-confirm-went-unanswered).372* **El mensaje de consentimiento de créditos de uso de Fable no se reenvía**: Claude Code muestra el mensaje de consentimiento de créditos de uso de [Fable](/docs/es/model-config#fable-and-usage-credits) a mitad de sesión solo donde se ejecuta la sesión, no en su dispositivo. Cuando la sesión se ejecuta en una terminal y nadie allí responde antes de que Claude Code cierre el mensaje, el turno termina sin enviar la solicitud; consulte [El mensaje de confirmación no fue respondido](/docs/es/errors#the-prompt-to-confirm-went-unanswered).

369* **Algunos comandos son solo locales**: comandos que solo se ejecutan en la interfaz de terminal, como `/plugin` o `/resume`, funcionan solo desde la CLI local, independientemente de si pasa un argumento o no. Los siguientes funcionan desde móvil y web:373* **Algunos comandos son solo locales**: los comandos que solo se ejecutan en la interfaz de terminal, como `/plugin` o `/resume`, funcionan solo desde la CLI local, independientemente de si pasa un argumento o no. Los siguientes funcionan desde dispositivos móviles y web:

370 * Comandos de salida de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` y `/reload-plugins`. `/usage-credits` imprime la URL de facturación en lugar de abrir un navegador. `/reload-plugins` funciona solo cuando la sesión se ejecuta en una terminal interactiva; una sesión sin una la rechaza.374 * Comandos de salida de texto: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, y `/reload-plugins`. `/usage-credits` imprime la URL de facturación en lugar de abrir un navegador. `/reload-plugins` funciona solo cuando la sesión se ejecuta en una terminal interactiva; una sesión sin una la rechaza.

371 * `/model`, `/effort`, `/fast`, `/color` y `/rename`: pase el valor como argumento, por ejemplo `/model sonnet` o `/effort high`. Desde móvil y web, `/model` y `/effort` toman el argumento en lugar del selector de terminal o deslizador.375 * `/model`, `/effort`, `/fast`, `/color`, y `/rename`: pase el valor como argumento, por ejemplo `/model sonnet` o `/effort high`. Desde dispositivos móviles y web, `/model` y `/effort` toman el argumento en lugar del selector de terminal o deslizador.

372 * `/mcp`: desde la aplicación móvil, devuelve un resumen de texto del estado del servidor en lugar de abrir el selector. En la web, `/mcp` por sí solo abre un directorio de [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) en lugar de devolver el resumen. Los [subcomandos](/docs/es/commands#all-commands) `reconnect`, `enable` y `disable` funcionan desde ambos. A diferencia de la CLI local, `/mcp reconnect` sin nombre de servidor reconecta cada servidor que ha fallado o necesita autenticación.376 * `/mcp`: desde la aplicación móvil, devuelve un resumen de texto del estado del servidor en lugar de abrir el selector. En la web, `/mcp` por sí solo abre un directorio de [conectores de claude.ai](/docs/es/mcp#use-mcp-servers-from-claude-ai) en lugar de devolver el resumen. Los [subcomandos](/docs/es/commands#all-commands) `reconnect`, `enable`, y `disable` funcionan desde ambos. A diferencia de la CLI local, `/mcp reconnect` sin un nombre de servidor reconecta cada servidor que ha fallado o necesita autenticación.

373 * `/config`: desde la aplicación móvil, pase `key=value` para establecer una configuración, o ejecútelo sin argumentos para listar las claves que puede establecer. En la web, `/config` abre la sección Claude Code de su configuración en su lugar, e ignora el texto después del comando.377 * `/config`: desde la aplicación móvil, pase `key=value` para establecer una configuración, o ejecútelo sin argumento para enumerar las claves que puede establecer. En la web, `/config` abre la sección Claude Code de su configuración en su lugar, e ignora el texto después del comando.

374 * En Team y Enterprise, `/usage-credits` desde móvil o web no envía una [solicitud de créditos de uso a su administrador](/docs/es/costs#add-usage-credits-to-your-subscription). El envío requiere una confirmación que aparece solo en la CLI interactiva, por lo que el comando le indica que lo ejecute allí en su lugar. Antes de v2.1.211, el formulario de texto enviaba la solicitud sin confirmación.378 * En Team y Enterprise, `/usage-credits` desde dispositivos móviles o web no envía una [solicitud de créditos de uso a su administrador](/docs/es/costs#add-usage-credits-to-your-subscription). El envío requiere una confirmación que aparece solo en la CLI interactiva, por lo que el comando le indica que la ejecute allí en su lugar.

375 * `/autocompact`, a partir de v2.1.221: pase el tamaño de la ventana como argumento, por ejemplo `/autocompact 500k`. Sin argumento, imprime el tamaño de ventana actual como texto en lugar de abrir el diálogo que muestra el comando en una sesión de terminal.379 * `/autocompact`, desde v2.1.221: pase el tamaño de la ventana como argumento, por ejemplo `/autocompact 500k`. Sin argumento, imprime el tamaño de ventana actual como texto en lugar de abrir el diálogo que muestra el comando en una sesión de terminal.

376 * `/advisor`, a partir de v2.1.260: pase el modelo como argumento, por ejemplo `/advisor opus`, o pase `off` para desactivar el asesor. Ambas formas se aplican solo a la sesión actual y dejan su valor predeterminado guardado sin cambios. Sin argumento, imprime el asesor actual como texto en lugar de abrir el selector.380 * `/advisor`, desde v2.1.260: pase el modelo como argumento, por ejemplo `/advisor opus`, o pase `off` para desactivar el asesor. Ambas formas se aplican solo a la sesión actual y dejan su valor predeterminado guardado sin cambios. Sin argumento, imprime el asesor actual como texto en lugar de abrir el selector.

377 * `/output-style`, a partir de v2.1.269: pase el nombre del estilo como argumento, por ejemplo `/output-style concise`, o ejecútelo sin argumento para listar los estilos. Desde móvil y web, puede listar y seleccionar solo [estilos integrados](/docs/es/output-styles#built-in-output-styles). Para usar un [estilo personalizado](/docs/es/output-styles#create-a-custom-output-style), selecciónelo en la sesión misma.381 * `/output-style`, desde v2.1.269: pase el nombre del estilo como argumento, por ejemplo `/output-style concise`, o ejecútelo sin argumento para enumerar los estilos. Desde dispositivos móviles y web, puede enumerar y seleccionar solo [estilos integrados](/docs/es/output-styles#built-in-output-styles). Para usar un [estilo personalizado](/docs/es/output-styles#create-a-custom-output-style), selecciónelo en la sesión misma.

382 * `/focus`, desde v2.1.281: pase `on` u `off` como argumento, por ejemplo `/focus on`, o ejecútelo sin argumento para alternar la [vista de enfoque](/docs/es/commands#all-commands). Ambas formas se aplican solo a la sesión actual y dejan su selección guardada sin cambios.

378 383 

379<h2 id="troubleshooting">384<h2 id="troubleshooting">

380 Solución de problemas385 Solución de problemas

381</h2>386</h2>

382 387 

383<h3 id="remote-control-requires-a-claude-ai-subscription">388<h3 id="remote-control-requires-a-claude-ai-subscription">

384 "Remote Control requires a claude.ai subscription"389 "Remote Control requiere una suscripción a claude.ai"

385</h3>390</h3>

386 391 

387No está autenticado con una cuenta de claude.ai, o bien otra credencial está tomando precedencia sobre su inicio de sesión. El mensaje toma una de estas formas:392No ha iniciado sesión con una cuenta de claude.ai, o una credencial diferente tiene precedencia sobre su inicio de sesión. El mensaje toma una de estas formas:

388 393 

389* Sin sesión iniciada, desde `/remote-control` o `--remote-control`: `Remote Control requires a claude.ai subscription.` o `/remote-control requires a claude.ai subscription.`394* Sesión cerrada, desde `/remote-control` o `--remote-control`: `Remote Control requiere una suscripción a claude.ai.` o `/remote-control requiere una suscripción a claude.ai.`

390* Sin sesión iniciada, desde `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`395* Sesión cerrada, desde `claude remote-control`: `Debe iniciar sesión para usar Remote Control. Remote Control solo está disponible con suscripciones a claude.ai.`

391* Con sesión iniciada, pero se está usando una clave API o token: `Remote Control requires claude.ai subscription auth.` seguido de la credencial en uso, como `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Una configuración `apiKeyHelper` y `ANTHROPIC_AUTH_TOKEN` se nombran de la misma manera.396* Sesión iniciada, pero se está utilizando una clave API o token: `Remote Control requiere autenticación de suscripción a claude.ai.` seguido de la credencial en uso, como `ANTHROPIC_API_KEY está configurada, por lo que esta sesión está utilizando autenticación de clave API`. Una configuración `apiKeyHelper` y `ANTHROPIC_AUTH_TOKEN` se nombran de la misma manera.

392 397 

393Ejecute `claude auth login` y elija la opción de claude.ai. Si el mensaje menciona `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, elimínelo dondequiera que esté configurado: su entorno de shell o el bloque `env` de un [archivo de configuración](/docs/es/settings-reference#env). Si menciona `apiKeyHelper`, elimine esa configuración.398Ejecute `claude auth login` y elija la opción de claude.ai. Si el mensaje menciona `ANTHROPIC_API_KEY` o `ANTHROPIC_AUTH_TOKEN`, elimínelo dondequiera que esté configurado: su entorno de shell o el bloque `env` de un [archivo de configuración](/docs/es/settings-reference#env). Si menciona `apiKeyHelper`, elimine esa configuración.

394 399 

395Antes de v2.1.206, ejecutar `/remote-control` mientras no estaba conectado reportaba `Unknown command: /remote-control` en lugar de este mensaje.

396 

397<h3 id="remote-control-requires-a-full-scope-login-token">400<h3 id="remote-control-requires-a-full-scope-login-token">

398 "Remote Control requires a full-scope login token"401 "Remote Control requiere un token de inicio de sesión de alcance completo"

399</h3>402</h3>

400 403 

401Está autenticado con un token de larga duración de `claude setup-token` o la variable de entorno `CLAUDE_CODE_OAUTH_TOKEN`. Estos tokens solo pueden hacer solicitudes de modelo, por lo que no pueden establecer sesiones de Remote Control. Ejecute `claude auth login` para autenticarse con un token de sesión de alcance completo en su lugar.404Está autenticado con un token de larga duración de `claude setup-token` o la variable de entorno `CLAUDE_CODE_OAUTH_TOKEN`. Estos tokens solo pueden hacer solicitudes de modelo, por lo que no pueden establecer sesiones de Remote Control. Ejecute `claude auth login` para autenticarse con un token de sesión de alcance completo en su lugar.

402 405 

403<h3 id="unable-to-determine-your-organization-for-remote-control-eligibility">406<h3 id="unable-to-determine-your-organization-for-remote-control-eligibility">

404 "Unable to determine your organization for Remote Control eligibility"407 "No se puede determinar su organización para la elegibilidad de Remote Control"

405</h3>408</h3>

406 409 

407Su información de cuenta en caché está obsoleta o incompleta. Ejecute `claude auth login` para actualizarla.410Su información de cuenta en caché está obsoleta o incompleta. Ejecute `claude auth login` para actualizarla.

408 411 

409<h3 id="remote-control-isn’t-enabled-for-this-account">412<h3 id="remote-control-isn’t-enabled-for-this-account">

410 "Remote Control isn't enabled for this account"413 "Remote Control no está habilitado para esta cuenta"

411</h3>414</h3>

412 415 

413Claude Code verificó la disponibilidad de Remote Control para la cuenta con la que está conectado y la verificación resultó desactivada. La causa habitual son los derechos en caché que están desactualizados después de un cambio de plan. Ejecute `claude auth logout` y luego `claude auth login` para actualizarlos, y actualice Claude Code si está usando una versión antigua.416Claude Code verificó la disponibilidad de Remote Control para la cuenta con la que ha iniciado sesión y la verificación resultó desactivada. La causa habitual son los derechos en caché que están desactualizados después de un cambio de plan. Ejecute `claude auth logout` y luego `claude auth login` para actualizarlos, y actualice Claude Code si está en una versión antigua.

414 417 

415Ejecute `claude doctor` para ver qué verificación de elegibilidad individual falló. Los conflictos de variables de entorno, las verificaciones inaccesibles y la configuración de Remote Control de su organización producen cada uno su propio mensaje, por lo que este error significa la verificación a nivel de cuenta en sí.418Ejecute `claude doctor` para ver qué verificación de elegibilidad individual falló. Los conflictos de variables de entorno, las verificaciones inaccesibles y la configuración de Remote Control de su organización producen cada uno su propio mensaje, por lo que este error significa que la verificación a nivel de cuenta en sí.

416 419 

417Antes de v2.1.239, este mensaje decía "Remote Control is not yet enabled for your account". Antes de v2.1.154, una variable que desactiva la evaluación de banderas de características, como `DISABLE_TELEMETRY` o `DO_NOT_TRACK`, también producía este mensaje; la entrada "Remote Control requires feature-flag evaluation" a continuación cubre esa configuración.420Antes de v2.1.239, este mensaje decía "Remote Control aún no está habilitado para su cuenta".

418 421 

419<h3 id="couldn’t-verify-remote-control-eligibility">422<h3 id="couldn’t-verify-remote-control-eligibility">

420 "Couldn't verify Remote Control eligibility"423 "No se pudo verificar la elegibilidad de Remote Control"

421</h3>424</h3>

422 425 

423Claude Code no pudo alcanzar el servicio de banderas de características para verificar si Remote Control está habilitado para su cuenta, típicamente porque está sin conexión o un proxy está bloqueando la solicitud. Reintente una vez que tenga acceso a la red, o ejecute `claude doctor` para obtener detalles. El mensaje relacionado "Couldn't verify your organization's Remote Control policy" significa que Claude Code no pudo leer esa política, y tiene la misma solución. Ambos mensajes se agregaron en v2.1.178.426Claude Code no pudo alcanzar el servicio de indicadores de características para verificar si Remote Control está habilitado para su cuenta, típicamente porque está sin conexión o un proxy está bloqueando la solicitud. Reinténtelo una vez que tenga acceso a la red, o ejecute `claude doctor` para obtener detalles. El mensaje relacionado "No se pudo verificar la política de Remote Control de su organización" significa que Claude Code encontró un error al leer esa política, y tiene la misma solución.

424 427 

425<h3 id="remote-control-requires-feature-flag-evaluation">428<h3 id="remote-control-requires-feature-flag-evaluation">

426 "Remote Control requires feature-flag evaluation"429 "Remote Control requiere evaluación de indicadores de características"

427</h3>430</h3>

428 431 

429Una de estas variables está configurada: [`DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, o `DISABLE_GROWTHBOOK`](/docs/es/env-vars). Cada una de ellas desactiva la evaluación de banderas de características de la que depende la disponibilidad de Remote Control, y el mensaje completo nombra la variable que Claude Code encontró. Desactive esa variable dondequiera que esté configurada, en su entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings). En versiones anteriores a 2.1.154, la misma configuración produce "Remote Control is not yet enabled for your account" en su lugar.432Una [variable de entorno](/docs/es/env-vars#features-that-need-feature-flag-fetching) que desactiva la evaluación de indicadores de características está configurada, y el mensaje completo menciona la variable que Claude Code encontró. En versiones anteriores a 2.1.154, la misma configuración produce "Remote Control aún no está habilitado para su cuenta" en su lugar. Lo que debe hacer depende de la variable que menciona el mensaje:

433 

434* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` o `DISABLE_GROWTHBOOK`**: desactive la variable dondequiera que esté configurada, en su entorno de shell o en el bloque `env` de un [archivo `settings.json`](/docs/es/settings-reference#all-settings).

435* **`DISABLE_TELEMETRY` o `DO_NOT_TRACK`**: en un plan Pro, Max, Team o Enterprise con `DISABLE_GROWTHBOOK` desactivado, estas variables dejan Remote Control disponible a menos que su organización requiera [Dispositivos de confianza](#trusted-devices). Si lo hace, desactive la variable dondequiera que esté configurada para usar Remote Control. De v2.1.154 a v2.1.282, cualquiera de las variables produjo este mensaje, por lo que actualice Claude Code a v2.1.283 o posterior.

430 436 

431<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">437<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">

432 "Remote Control is only available when using Claude via api.anthropic.com"438 "Remote Control solo está disponible cuando se usa Claude a través de api.anthropic.com"

433</h3>439</h3>

434 440 

435La sesión no está hablando directamente con la API de Anthropic, por lo que no hay un backend de claude.ai para emparejar. Esto ocurre en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry. También ocurre cuando [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un host distinto de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy, incluso si inicia sesión con claude.ai. Antes de v2.1.196, Claude Code no mostraba este mensaje para un `ANTHROPIC_BASE_URL` personalizado. Vea la [referencia de errores](/docs/es/errors#remote-control-requires-the-anthropic-api) para la lista completa de causas.441La sesión no está hablando directamente con la API de Anthropic, por lo que no hay un backend de claude.ai para emparejar. Esto sucede en Amazon Bedrock, en la plataforma de agentes de Google Cloud y en Microsoft Foundry. También sucede cuando [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) apunta a un host diferente de `api.anthropic.com`, como una [puerta de enlace LLM](/docs/es/llm-gateway) o proxy, incluso si inicia sesión con claude.ai. Consulte la [referencia de errores](/docs/es/errors#remote-control-requires-the-anthropic-api) para obtener la lista completa de causas.

436 442 

437El mensaje nombra lo que enrutó la sesión lejos de la API de Anthropic, como `CLAUDE_CODE_USE_BEDROCK` o un `ANTHROPIC_BASE_URL` personalizado. Si tiene un inicio de sesión de claude.ai elegible, desactive la variable nombrada, elimínela de la clave `env` en [configuración](/docs/es/settings) si la configuró allí, y reinicie la sesión. Antes de v2.1.219, el mensaje era solo la oración en el encabezado de esta sección, por lo que en versiones anteriores verifique su entorno usted mismo para variables de proveedor como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, y para `ANTHROPIC_BASE_URL`.443El mensaje menciona lo que enrutó la sesión lejos de la API de Anthropic, como `CLAUDE_CODE_USE_BEDROCK` o un `ANTHROPIC_BASE_URL` personalizado. Si tiene un inicio de sesión de claude.ai elegible, desactive la variable mencionada, elimínela de la clave `env` en [configuración](/docs/es/settings) si la configuró allí, y reinicie la sesión.

438 444 

439<h3 id="remote-control-is-disabled-by-your-organization’s-policy">445<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

440 "Remote Control is disabled by your organization's policy"446 "Remote Control está deshabilitado por la política de su organización"

447</h3>

448 

449Una política bloquea Remote Control. Verifique estas causas en orden:

450 

451* **El error menciona `disableRemoteControl`**: su administrador de TI ha deshabilitado Remote Control en este dispositivo a través de [configuración administrada](/docs/es/managed-settings), independientemente del conmutador de toda la organización y de cómo haya iniciado sesión.

452* **Su plan de claude.ai es Pro o Max**: Claude Code aún está firmado bajo una organización de Team o Enterprise de un inicio de sesión anterior, por lo que verifica la política de Remote Control de esa organización. Ejecute `/status` para ver qué plan y organización utiliza su inicio de sesión. Ejecute `claude auth logout` y luego `claude auth login` para iniciar sesión nuevamente bajo su plan actual.

453* **El mensaje no dice que contacte a su administrador de organización**: su organización tiene una configuración HIPAA que es incompatible con Remote Control, y `/status` enumera `HIPAA` en su fila `Compliance`. En este estado, el conmutador de Remote Control del panel de administración está atenuado, por lo que un propietario no puede cambiarlo allí. Póngase en contacto con el soporte de Anthropic para discutir opciones. Antes de v2.1.267, este caso mostraba "Remote Control no está disponible para su organización debido a su política de cumplimiento" en su lugar.

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

455 

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

457 

458<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">

459 "No se pudo verificar la política de su organización para remote control"

441</h3>460</h3>

442 461 

443Una política bloquea Remote Control, o Claude Code no pudo cargar la política de su organización en esta máquina y mantiene Remote Control desactivado mientras tanto. Verifique estas causas en orden:462Claude Code no pudo obtener la política de su organización y no tiene una copia guardada en esta máquina para usar en su lugar, por lo que mantiene Remote Control desactivado hasta que pueda confirmar que su organización lo permite. Esto generalmente sucede cuando inicia Claude Code sin conexión o antes de que se conecte una VPN, o cuando un proxy interfiere con la solicitud. En una conexión lenta también puede aparecer mientras la primera solicitud aún está en vuelo.

444 463 

445* **El error menciona `disableRemoteControl`**: su administrador de TI ha deshabilitado Remote Control en este dispositivo a través de [configuración administrada](/docs/es/managed-settings), independientemente del botón de alternancia de toda la organización y de cómo esté conectado.464El mensaje toma una de estas formas:

446* **Su plan de claude.ai es Pro o Max**: Claude Code aún está conectado bajo una organización Team o Enterprise de un inicio de sesión anterior, por lo que verifica la política de Remote Control de esa organización. Ejecute `/status` para ver qué plan y organización usa su inicio de sesión. Ejecute `claude auth logout` y luego `claude auth login` para conectarse nuevamente bajo su plan actual.465 

447* **La política de la organización no se cargó en esta máquina**: ejecute `claude doctor` y lea la línea `Organization policy`. Si la línea muestra que la política no está cargada, eso es lo que mantiene Remote Control desactivado. Antes de v2.1.261, `claude doctor` no imprimía esta línea.466* Desde `/remote-control`, `claude remote-control`, o `claude --remote-control`: `No se pudo verificar la política de su organización para remote control. Verifique su conexión de red e intente de nuevo.`

448* **El mensaje no dice que contacte a su administrador de la organización**: su organización tiene una configuración de HIPAA que es incompatible con Remote Control, y `/status` enumera `HIPAA` en su fila `Compliance`. En este estado, el botón de alternancia de Remote Control del panel de administración está atenuado, por lo que un propietario no puede cambiarlo allí. Póngase en contacto con el soporte de Anthropic para discutir opciones. Antes de v2.1.267, este caso mostraba "Remote Control isn't available for your organization due to its compliance policy" en su lugar.467* Desde [conexión automática](#enable-remote-control-for-all-sessions) cuando se inicia una sesión: `no se pudo verificar la política de su organización — verifique su conexión de red e intente de nuevo`, con el prefijo `Remote Control falló` en la notificación y `Remote Control desconectado` en la conversación. La sesión luego deja Remote Control desactivado.

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

469Restaure su conexión de red, luego ejecute `/remote-control` o ejecute el comando nuevamente. Cada intento verifica la política nuevamente, por lo que no necesita reiniciar Claude Code. Si el mensaje sigue apareciendo, ejecute `claude doctor` y lea su línea `Organization policy`, que dice por qué la política no se cargó.

470 

471Antes de v2.1.281, este estado mostraba `Remote Control está deshabilitado por la política de su organización` en su lugar.

450 472 

451<h3 id="remote-credentials-fetch-failed">473<h3 id="remote-credentials-fetch-failed">

452 "Remote credentials fetch failed"474 "Error al obtener credenciales remotas"

453</h3>475</h3>

454 476 

455Claude Code no pudo obtener una credencial de corta duración de la API de Anthropic para establecer la conexión. Vuelva a ejecutar con `--verbose` para ver el error completo:477Claude Code no pudo obtener una credencial de corta duración de la API de Anthropic para establecer la conexión. Vuelva a ejecutar con `--verbose` para ver el error completo:


460 482 

461Causas comunes:483Causas comunes:

462 484 

463* No ha iniciado sesión: ejecute `claude` y use `/login` para autenticarse con su cuenta de claude.ai. La autenticación con clave API no es compatible con Remote Control.485* No ha iniciado sesión: ejecute `claude` y use `/login` para autenticarse con su cuenta de claude.ai. La autenticación de clave API no es compatible con Remote Control.

464* Problema de red o proxy: un firewall o proxy puede estar bloqueando la solicitud HTTPS saliente. Remote Control requiere acceso a la API de Anthropic en el puerto 443.486* Problema de red o proxy: un firewall o proxy puede estar bloqueando la solicitud HTTPS saliente. Remote Control requiere acceso a la API de Anthropic en el puerto 443.

465* Error en la creación de sesión: si también ve `Session creation failed — see debug log`, el error ocurrió antes en la configuración. Verifique que su suscripción esté activa.487* Error en la creación de sesión: si también ve `Session creation failed — see debug log`, el error ocurrió anteriormente en la configuración. Verifique que su suscripción esté activa.

466 

467Un token de inicio de sesión obsoleto no causa este error. Cuando la API de Anthropic rechaza el token guardado, por ejemplo porque otro proceso de Claude Code ya lo actualizó, Claude Code actualiza el token y reintenta por su cuenta. Antes de v2.1.224, un token obsoleto fallaba en el inicio de Remote Control con este mensaje, por lo que las sesiones configuradas para [conectarse automáticamente](#enable-remote-control-for-all-sessions) podrían fallar intermitentemente al iniciarse.

468 488 

469<h3 id="couldn’t-reconnect-to-your-remote-control-session">489<h3 id="couldnt-reconnect-to-your-remote-control-session">

470 "Couldn't reconnect to your Remote Control session"490 "No se pudo reconectar a su sesión de Remote Control"

471</h3>491</h3>

472 492 

473Cuando reanuda una conversación con `claude --resume` o `claude --continue`, Claude Code se reconecta a la sesión de Remote Control registrada en esa conversación. Este mensaje significa que la reconexión falló por una razón que puede ser temporal, como una interrupción de red o un error del servidor, por lo que Claude Code no puede confirmar si la sesión remota aún existe.493Cuando reanuda una conversación con `claude --resume` o `claude --continue`, Claude Code se reconecta a la sesión de Remote Control registrada en esa conversación. Este mensaje significa que la reconexión falló por una razón que puede ser temporal, como una interrupción de red o un error del servidor, por lo que Claude Code no puede confirmar si la sesión remota aún existe.

474 494 

475Ejecute `/remote-control` para reintentar la conexión, o inicie una nueva sesión con `claude --remote-control` para crear una nueva sesión de Remote Control. Su sesión local continúa ejecutándose sin Remote Control mientras tanto.495Ejecute `/remote-control` para reintentar la conexión, o inicie una nueva sesión con `claude --remote-control` para crear una nueva sesión de Remote Control. Su sesión local sigue ejecutándose sin Remote Control mientras tanto.

476 

477<span id="resume-outcomes" />Cuando reanuda, también puede obtener uno de estos resultados en lugar de este mensaje:

478 

479* **El servidor reporta que la sesión registrada se ha ido, o el registro de reconexión nombra una cuenta diferente**: Claude Code se guía por lo que dice el registro de reconexión de la conversación:

480 * **El registro nombra su cuenta conectada**: Claude Code inicia una sesión de reemplazo con un nombre generado automáticamente y deja los mensajes anteriores de la conversación fuera de ella. Obtiene esto después de eliminar la sesión de claude.ai o de la aplicación Claude, por ejemplo.

481 * **El registro nombra una cuenta diferente**: Claude Code inicia una nueva sesión sin los mensajes anteriores de la conversación y sin mostrar un mensaje, independientemente de si la sesión registrada aún existe.

482 * **El registro no dice qué cuenta era propietaria de la sesión, o Claude Code no puede leer su inicio de sesión guardado**: Claude Code muestra [`Previous session is unavailable — run /remote-control to start a new one`](#previous-session-is-unavailable) en lugar de este mensaje, no inicia nada, y elimina el registro de la conversación.

483* **Desactivó Remote Control antes de reanudar**: a menos que la aplicación que aloja Claude Code le haya dicho que la aplicación es propietaria de la sesión de claude.ai, Claude Code eliminó el registro de reconexión cuando desactivó Remote Control desde el [panel de estado](#check-connection-status) de la CLI, la extensión de VS Code, o un host construido en el [Agent SDK](/docs/es/agent-sdk/overview), por lo que no se reconecta. Cuando una aplicación propietaria lo desactivó, Claude Code mantuvo el registro y se reconecta.

484* **Otro Claude Code en esta máquina aún tiene la sesión**: ve un aviso que comienza con `Remote Control not started here`, y Claude Code [deja Remote Control desactivado en la sesión reanudada](#resume-sessions-after-stopping-the-server). Ejecute `/remote-control` allí para moverlo.

485 

486<span id="reconnect-history" />Antes de v2.1.232, Claude Code respondía de manera diferente cuando el servidor reportaba que la sesión registrada se había ido. De v2.1.227 a v2.1.231, Claude Code se negaba a iniciar un reemplazo incluso cuando el registro coincidía con su cuenta. Hasta v2.1.226, Claude Code iniciaba un reemplazo independientemente de si el registro coincidía con su cuenta, y en v2.1.224 a v2.1.226 lo creaba bajo la cuenta conectada en esa máquina, nunca bajo la cuenta de otro, sin cargar los mensajes anteriores de la conversación en ella. Antes de v2.1.200, Claude Code creaba una nueva sesión después de cualquier falla de reconexión.

487 496 

488<h3 id="previous-session-is-unavailable">497<h3 id="previous-session-is-unavailable">

489 "Previous session is unavailable — run /remote-control to start a new one"498 "La sesión anterior no está disponible — ejecute /remote-control para iniciar una nueva"

490</h3>499</h3>

491 500 

492Claude Code no pudo recuperar la sesión anterior de Remote Control y se detuvo en lugar de iniciar una nueva por su cuenta. Puede ver este mensaje después de reanudar una conversación con `claude --resume` o `claude --continue`, o después de que Claude Code [se reconecte por su cuenta después de una desconexión](/docs/es/errors#remote-control-couldnt-refresh-your-login).501Claude Code no pudo recuperar la sesión anterior de Remote Control y se detuvo en lugar de iniciar una nueva por su cuenta. Puede ver este mensaje después de reanudar una conversación con `claude --resume` o `claude --continue`, o después de que Claude Code [se reconecte por su cuenta después de una desconexión](/docs/es/errors#remote-control-couldnt-refresh-your-login).

493 502 

494Ejecute `/remote-control` para iniciar una nueva sesión de Remote Control bajo el inicio de sesión actual; su sesión local continúa ejecutándose sin Remote Control mientras tanto. El mensaje relacionado `Remote Control could not verify the signed-in account — run /remote-control to reconnect` tiene la misma solución; Claude Code lo muestra cuando la cuenta conectada cambió o no se pudo leer entre validarla y reconectarse. Si ejecuta `/remote-control` después de `Previous session is unavailable` sin reiniciar Claude Code primero, Claude Code deja los mensajes anteriores de la conversación fuera de la nueva sesión.503Ejecute `/remote-control` para iniciar una nueva sesión de Remote Control bajo el inicio de sesión actual; su sesión local sigue ejecutándose sin Remote Control mientras tanto. El mensaje relacionado `Remote Control no pudo verificar la cuenta con la que ha iniciado sesión — ejecute /remote-control para reconectar` tiene la misma solución. Si ejecuta `/remote-control` después de `La sesión anterior no está disponible` sin reiniciar Claude Code primero, Claude Code deja los mensajes anteriores de la conversación fuera de la nueva sesión.

495 

496Al reanudar, Claude Code [inicia una nueva sesión en su lugar](#resume-outcomes) solo si el registro de reconexión de la conversación nombra la cuenta que era propietaria de la sesión, porque el servidor reporta una sesión que eliminó y una sesión propiedad de otra cuenta de la misma manera. Claude Code anterior a v2.1.227 no registraba esa cuenta, y Claude Code no puede verificar el registro cuando no puede leer su inicio de sesión guardado. Claude Code anterior a v2.1.232 mostraba `Remote Control could not resume the previous session under the current login — run /remote-control to start fresh` en su lugar, en [un conjunto diferente de casos](#reconnect-history).

497 504 

498<h3 id="remote-control-got-an-unexpected-server-response">505<h3 id="remote-control-got-an-unexpected-server-response">

499 "Remote Control got an unexpected server response"506 "Remote Control recibió una respuesta inesperada del servidor"

500</h3>507</h3>

501 508 

502El servidor de Remote Control aceptó una solicitud pero respondió de una forma que esta versión de Claude Code no pudo leer, mientras creaba la sesión remota u obtenía sus credenciales. Reintentar en la misma versión falla de la misma manera. Ejecute `claude update`, luego ejecute `/remote-control` para reconectarse. Este mensaje se agregó en v2.1.225.509El servidor de Remote Control aceptó una solicitud pero respondió de una forma que esta versión de Claude Code no pudo leer, mientras creaba la sesión remota u obtenía sus credenciales. Reintentar en la misma versión falla de la misma manera. Ejecute `claude update`, luego ejecute `/remote-control` para reconectar.

503 510 

504<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">511<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">

505 "Your organization requires Trusted Devices for Remote Control, but this device is not enrolled"512 "Su organización requiere Dispositivos de confianza para Remote Control, pero este dispositivo no está inscrito"

506</h3>513</h3>

507 514 

508Su organización tiene [Trusted Devices](#trusted-devices) habilitado y esta máquina aún no se ha inscrito. Ejecute `/login` en Claude Code. La inscripción ocurre como parte del inicio de sesión, y no hay un comando de inscripción separado.515Su organización tiene [Dispositivos de confianza](#trusted-devices) habilitados y esta máquina aún no se ha inscrito. Ejecute `/login` en Claude Code. La inscripción ocurre como parte del inicio de sesión, y no hay un comando de inscripción separado.

509 516 

510<h3 id="session-expired-for-trusted-device-check">517<h3 id="session-expired-for-trusted-device-check">

511 "session expired for trusted-device check"518 "sesión expirada para verificación de dispositivo de confianza"

512</h3>519</h3>

513 520 

514Su inicio de sesión tiene más de 18 horas. Ejecute `/login` en Claude Code, o confirme con Face ID, Touch ID, Windows Hello o una passkey cuando claude.ai o la aplicación móvil se lo solicite. Vea [Trusted Devices](#trusted-devices).521Su inicio de sesión tiene más de 18 horas. Ejecute `/login` en Claude Code, o confirme con Face ID, Touch ID, Windows Hello, o una contraseña cuando claude.ai o la aplicación móvil le solicite. Consulte [Dispositivos de confianza](#trusted-devices).

515 

516<h2 id="choose-the-right-approach">

517 Elija el enfoque correcto

518</h2>

519 

520Claude Code ofrece varias formas de trabajar cuando no está en su terminal. Difieren en lo que desencadena el trabajo, dónde se ejecuta Claude y cuánta configuración necesita.

521 

522| | Desencadenante | Claude se ejecuta en | Configuración | Mejor para |

523| :- | :- | :- | :- | :- |

524| [Dispatch](/docs/es/desktop#sessions-from-dispatch) | Envíe un mensaje con una tarea desde la aplicación móvil de Claude | Su máquina (Desktop) | [Empareje la aplicación móvil con Desktop](https://support.claude.com/en/articles/13947068) | Delegar trabajo mientras está fuera, configuración mínima |

525| [Remote Control](/docs/es/remote-control) | Controle una sesión en ejecución desde [claude.ai/code](https://claude.ai/code) o la aplicación móvil de Claude | Su máquina (CLI o VS Code) | Ejecute `claude remote-control` | Dirigir el trabajo en progreso desde otro dispositivo |

526| [Channels](/docs/es/channels) | Envíe eventos desde una aplicación de chat como Telegram o Discord, o su propio servidor | Su máquina (CLI) | [Instale un plugin de canal](/docs/es/channels#quickstart) o [cree el suyo propio](/docs/es/channels-reference) | Reaccionar a eventos externos como fallos de CI o mensajes de chat |

527| [Slack](/docs/es/slack) | Mencione `@Claude` en un canal de equipo | Nube de Anthropic | [Instale la aplicación de Slack](/docs/es/slack#setting-up-claude-code-in-slack) con [Claude Code en la web](/docs/es/claude-code-on-the-web) habilitado | PRs y revisiones desde el chat del equipo |

528| [Entornos autohospedados](/docs/es/self-hosted-environments) | Inicie una [sesión en la nube](/docs/es/claude-code-on-the-web) y seleccione el entorno de su organización | La infraestructura de su organización | [Implemente ejecutores](/docs/es/self-hosted-environments-quickstart), en planes Team y Enterprise | Sesiones en la nube que deben ejecutarse dentro de su red |

529| [Tareas programadas](/docs/es/scheduled-tasks) | Establezca una programación | [CLI](/docs/es/scheduled-tasks), [Desktop](/docs/es/desktop-scheduled-tasks), o [nube](/docs/es/routines) | Seleccione una frecuencia | Automatización recurrente como revisiones diarias |

530 522 

531<h2 id="related-resources">523<h2 id="related-resources">

532 Recursos relacionados524 Recursos relacionados

routines.md +3 −2

Details

59Cuando el cronograma de la rutina o **Run now** inicia una ejecución, Claude republica un artefacto existente sin preguntar solo cuando se cumplen todas estas condiciones:59Cuando el cronograma de la rutina o **Run now** inicia una ejecución, Claude republica un artefacto existente sin preguntar solo cuando se cumplen todas estas condiciones:

60 60 

61* Puede editar el artefacto y pertenece a su propia organización61* Puede editar el artefacto y pertenece a su propia organización

62* El artefacto no se comparte públicamente, y no se comparte con personas específicas u su organización con la última versión elegida como la versión que ven los espectadores62* El artefacto no se comparte públicamente

63* Si el artefacto se comparte con personas específicas u su organización, sus espectadores no ven automáticamente cada nueva versión

63* La publicación lleva solo la página, sin archivos de apoyo ni nada más agregado, y no fuerza una versión más nueva64* La publicación lleva solo la página, sin archivos de apoyo ni nada más agregado, y no fuerza una versión más nueva

64* La página no contiene una concesión que vaya más allá de la página, como [llamadas de conectores](/docs/es/artifacts#pull-live-data-with-mcp-connectors)65* La página no contiene una concesión que vaya más allá de la página, como [llamadas de conectores](/docs/es/artifacts#pull-live-data-with-mcp-connectors)

65 66 


151 152 

152Un disparador de horario ejecuta la rutina en una cadencia recurrente, o una sola vez en un momento futuro específico. Elija una frecuencia preestablecida en la sección **Select a trigger**: 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.153Un disparador de horario ejecuta la rutina en una cadencia recurrente, o una sola vez en un momento futuro específico. Elija una frecuencia preestablecida en la sección **Select a trigger**: 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.

153 154 

154Las ejecuciones pueden comenzar unos minutos después de la hora programada debido al escalonamiento. El desplazamiento es consistente para cada rutina.155Si programa una ejecución exactamente en la hora, como las 9:00, puede comenzar varios minutos tarde. Para comenzar cerca de la hora programada, elija unos minutos después de la hora, por ejemplo 9:07.

155 156 

156Para 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.157Para 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.

157 158 

Details

117En Linux y WSL2, el tiempo de ejecución aplica permisos de escritura solo a rutas que ya existen. En un entorno nuevo, cree las rutas de configuración de Claude Code antes del primer lanzamiento:117En Linux y WSL2, el tiempo de ejecución aplica permisos de escritura solo a rutas que ya existen. En un entorno nuevo, cree las rutas de configuración de Claude Code antes del primer lanzamiento:

118 118 

119```bash theme={null}119```bash theme={null}

120mkdir -p ~/.claude && echo '{}' > ~/.claude.json120mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

121```121```

122 122 

123Una vez que el archivo de configuración esté en su lugar, lance Claude Code con `npx` y pase `claude` como el comando a envolver:123Una vez que el archivo de configuración esté en su lugar, lance Claude Code con `npx` y pase `claude` como el comando a envolver:

sandboxing.md +2 −2

Details

42 </Step>42 </Step>

43 43 

44 <Step title="Ejecutar un comando Bash">44 <Step title="Ejecutar un comando Bash">

45 Pida a Claude que ejecute un comando, como una compilación o un conjunto de pruebas. De forma predeterminada, los comandos dentro del sandbox pueden escribir en el directorio de trabajo, el directorio temporal de la sesión y cualquier [directorio que haya agregado](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) con `--add-dir`, `/add-dir` o `permissions.additionalDirectories`.45 Pida a Claude que ejecute un comando, como una compilación o un conjunto de pruebas. De forma predeterminada, los comandos dentro del sandbox pueden escribir en el directorio de trabajo, un [directorio temporal por usuario](/docs/es/env-vars), y cualquier [directorio que haya agregado](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) con `--add-dir`, `/add-dir` o `permissions.additionalDirectories`.

46 46 

47 La primera vez que un comando necesita un nuevo dominio de red, Claude Code solicita aprobación; en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), Claude en su lugar nombra los hosts que un comando necesita [en el comando mismo](#per-command-allowed-domains-in-auto-mode) para que el clasificador lo revise con él.47 La primera vez que un comando necesita un nuevo dominio de red, Claude Code solicita aprobación; en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), Claude en su lugar nombra los hosts que un comando necesita [en el comando mismo](#per-command-allowed-domains-in-auto-mode) para que el clasificador lo revise con él.

48 48 


179 Directorios temporales179 Directorios temporales

180</h4>180</h4>

181 181 

182El directorio temporal de la sesión es escribible dentro del sandbox de forma predeterminada, junto con el directorio de trabajo. A menos que [deshabilite el aislamiento del sistema de archivos](#disable-filesystem-isolation), Claude Code establece `$TMPDIR` en este directorio para comandos aislados, por lo que las herramientas que escriben archivos temporales funcionan sin configuración adicional.182El directorio temporal por usuario es escribible dentro del sandbox de forma predeterminada, junto con el directorio de trabajo. A menos que [deshabilite el aislamiento del sistema de archivos](#disable-filesystem-isolation), Claude Code establece `$TMPDIR` en este directorio para comandos aislados, por lo que las herramientas que escriben archivos temporales funcionan sin configuración adicional.

183 183 

184Los comandos sin aislar heredan su `$TMPDIR` de shell cuando está establecido, por lo que mientras el aislamiento del sistema de archivos esté activado, los comandos aislados y sin aislar resuelven `$TMPDIR` a directorios diferentes. Si su shell deja `$TMPDIR` sin establecer o vacío, un comando sin aislar que hace referencia a `$TMPDIR` recibe su anulación [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars), o el directorio temporal del sistema operativo cuando no ha establecido uno o la anulación es una ruta larga, por lo que la variable no se expande a una cadena vacía. Para pasar archivos temporales entre los dos, escríbalos en el directorio de trabajo en su lugar.184Los comandos sin aislar heredan su `$TMPDIR` de shell cuando está establecido, por lo que mientras el aislamiento del sistema de archivos esté activado, los comandos aislados y sin aislar resuelven `$TMPDIR` a directorios diferentes. Si su shell deja `$TMPDIR` sin establecer o vacío, un comando sin aislar que hace referencia a `$TMPDIR` recibe su anulación [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars), o el directorio temporal del sistema operativo cuando no ha establecido uno o la anulación es una ruta larga, por lo que la variable no se expande a una cadena vacía. Para pasar archivos temporales entre los dos, escríbalos en el directorio de trabajo en su lugar.

185 185 

security.md +4 −3

Details

124 Seguridad de ejecución en la nube124 Seguridad de ejecución en la nube

125</h2>125</h2>

126 126 

127Cuando utiliza [Claude Code en la web](/docs/es/claude-code-on-the-web), hay controles de seguridad adicionales en su lugar. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en su propia infraestructura, donde el aislamiento, el egreso de red y las credenciales de git son responsabilidad de su implementación. En entornos alojados por Anthropic:127Cuando utiliza [sesiones en la nube](/docs/es/claude-code-on-the-web), hay controles de seguridad adicionales en su lugar. Las sesiones que su organización enruta a un [entorno autohospedado](/docs/es/self-hosted-environments) se ejecutan en su propia infraestructura, donde el aislamiento, el egreso de red y las credenciales de git son responsabilidad de su implementación. En entornos alojados por Anthropic:

128 128 

129* **Máquinas virtuales aisladas**: Cada sesión en la nube se ejecuta en una VM aislada gestionada por Anthropic129* **Máquinas virtuales aisladas**: Cada sesión en la nube se ejecuta en una VM aislada gestionada por Anthropic

130* **Controles de acceso a la red**: El acceso a la red está limitado de forma predeterminada y se puede configurar para deshabilitarse o permitir solo dominios específicos130* **Controles de acceso a la red**: El acceso a la red está limitado de forma predeterminada y se puede configurar para deshabilitarse o permitir solo dominios específicos

131* **Protección de credenciales**: La autenticación se maneja a través de un proxy seguro que utiliza una credencial con alcance dentro del sandbox, que luego se traduce a su token de autenticación de GitHub real131* **Protección de credenciales**: Las credenciales de GitHub se almacenan cifradas en los servidores de Anthropic y nunca entran en la VM de la sesión. La VM contiene una credencial de corta duración limitada a esa sesión, y el tráfico de GitHub pasa a través de un [proxy de Anthropic](/docs/es/cloud-environments#github-proxy) que adjunta la credencial de GitHub en el lado del servidor. Consulte [Opciones de autenticación de GitHub](/docs/es/claude-code-on-the-web#github-authentication-options) para saber cómo otorga acceso

132* **Restricciones de rama**: Las operaciones de inserción de Git están restringidas a la rama de trabajo actual132* **Restricciones de rama**: Las operaciones de inserción de Git están restringidas a la rama de trabajo actual

133* **Registro de auditoría**: Todas las operaciones en sesiones en la nube se registran para fines de cumplimiento y auditoría133* **Registro de auditoría**: Todas las operaciones en sesiones en la nube se registran para fines de cumplimiento y auditoría

134* **Limpieza automática**: Los VMs de sesión se recuperan después de un período de inactividad134* **Limpieza automática**: Los VMs de sesión se recuperan después de un período de inactividad

135* **Eliminación**: Puede [eliminar una sesión](/docs/es/claude-code-on-the-web#delete-sessions) en cualquier momento. Consulte [Flujo de datos de ejecución en la nube](/docs/es/data-usage#cloud-execution-data-flow-and-dependencies) para saber qué almacena Anthropic para una sesión en la nube

135 136 

136Para obtener más detalles sobre la ejecución en la nube, consulte [Claude Code en la web](/docs/es/claude-code-on-the-web); para configurar el acceso a la red para sesiones en la nube, consulte [Configurar entornos en la nube](/docs/es/cloud-environments#network-access).137Para obtener más detalles sobre la ejecución en la nube, consulte [Usar Claude Code en la nube](/docs/es/claude-code-on-the-web); para configurar el acceso a la red para sesiones en la nube, consulte [Configurar entornos en la nube](/docs/es/cloud-environments#network-access).

137 138 

138Las sesiones de [Remote Control](/docs/es/remote-control) funcionan de manera diferente: la interfaz web se conecta a un proceso de Claude Code que se ejecuta en su máquina local. Toda la ejecución de código y el acceso a archivos permanecen locales, y el tráfico de sesión viaja a través de la API de Anthropic sobre TLS; mientras está conectado, la transcripción de la sesión se almacena en los servidores de Anthropic para sincronizar la conversación entre dispositivos, como se describe en [Conexión y seguridad](/docs/es/remote-control#connection-and-security). No hay VMs en la nube ni sandboxing involucrados. La conexión utiliza múltiples credenciales de corta duración y alcance estrecho, cada una limitada a un propósito específico y expirando independientemente, para limitar el radio de explosión de cualquier credencial comprometida.139Las sesiones de [Remote Control](/docs/es/remote-control) funcionan de manera diferente: la interfaz web se conecta a un proceso de Claude Code que se ejecuta en su máquina local. Toda la ejecución de código y el acceso a archivos permanecen locales, y el tráfico de sesión viaja a través de la API de Anthropic sobre TLS; mientras está conectado, la transcripción de la sesión se almacena en los servidores de Anthropic para sincronizar la conversación entre dispositivos, como se describe en [Conexión y seguridad](/docs/es/remote-control#connection-and-security). No hay VMs en la nube ni sandboxing involucrados. La conexión utiliza múltiples credenciales de corta duración y alcance estrecho, cada una limitada a un propósito específico y expirando independientemente, para limitar el radio de explosión de cualquier credencial comprometida.

139 140 

Details

220ENTRYPOINT ["claude"]220ENTRYPOINT ["claude"]

221```221```

222 222 

223Intercambie `linux-x64` por `linux-arm64` si sus nodos son ARM, o por `linux-x64-musl` o `linux-arm64-musl` en una imagen basada en musl como Alpine; consulte [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions) para los paquetes adicionales que las imágenes musl necesitan. La URL es la ubicación de lanzamiento estándar de Claude Code, por lo que puede verificar el binario descargado contra el manifiesto firmado del lanzamiento como se describe en [Integridad binaria y firma de código](/docs/es/setup#binary-integrity-and-code-signing). Construya la imagen con la versión 2.1.224 de Claude Code o posterior, luego empújela a su registro y hágale referencia en las recetas a continuación:223Intercambie `linux-x64` por `linux-arm64` si sus nodos son ARM, o por `linux-x64-musl` o `linux-arm64-musl` en una imagen basada en musl como Alpine; consulte [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions) para los paquetes adicionales que las imágenes musl necesitan. La URL es la ubicación de lanzamiento estándar de Claude Code, por lo que puede verificar el binario descargado contra el manifiesto firmado del lanzamiento como se describe en [Integridad binaria y firma de código](/docs/es/setup#binary-integrity-and-code-signing). El runner requiere la versión 2.1.224 de Claude Code o posterior. Construya la imagen, luego empújela a su registro y hágale referencia en las recetas a continuación:

224 224 

225```bash theme={null}225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.267 -t <your-registry>/claude-runner:latest .226docker build \

227 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

228 -t <your-registry>/claude-runner:latest .

227```229```

228 230 

231La sustitución de comandos busca el número de lanzamiento `stable` actual y lo pasa como argumento de compilación, por lo que ejecutar el mismo comando después de un nuevo lanzamiento estable reconstruye la capa de descarga con el binario más nuevo. Para fijar un lanzamiento específico para compilaciones reproducibles, pase el número de versión directamente como `CLAUDE_CODE_VERSION`. Reemplace `stable` con `latest` en la URL de búsqueda cuando necesite un lanzamiento más nuevo que el canal estable, como uno que [un modelo recién lanzado requiere](/docs/es/model-config).

232 

229<h2 id="size-cpu-and-memory-for-sessions">233<h2 id="size-cpu-and-memory-for-sessions">

230 Dimensione CPU y memoria para sesiones234 Dimensione CPU y memoria para sesiones

231</h2>235</h2>

Details

220 220 

221La entrega administrada por servidor agrega estos comportamientos:221La entrega administrada por servidor agrega estos comportamientos:

222 222 

223* El caché en `~/.claude/remote-settings.json` almacena la carga útil salvada con entradas inválidas eliminadas, aparte de valores `cleanupPeriodDays` y `desktopSessionCleanupPeriodDays` inválidos, que permanecen en la copia en caché y nunca se aplican.223* Un inicio que se ejecuta en el caché en `~/.claude/remote-settings.json` trata las entradas inválidas de la forma en que lo hizo la búsqueda que escribió el caché:

224* Cuando ningún campo en la carga útil puede salvarse y la carga útil no es solo esas claves de retención, Claude Code rechaza la carga útil, mantiene la última configuración en caché aceptada y escribe `Remote settings: Settings validation failed - no fields could be salvaged` en el registro de depuración. Con `forceRemoteSettingsRefresh` establecido, la CLI sale en su lugar.224 * Las entradas que fallaron la validación permanecen descartadas.

225 * [Las claves que fallan cerradas](/docs/es/managed-settings#keys-that-fail-closed) mantienen sus valores más estrictos.

226 * Un valor `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` inválido permanece en la copia en caché y nunca se aplica.

227* Claude Code no aplica nada de una carga útil y deja el caché sin cambios cuando los tres siguientes son verdaderos:

228 

229 * Cada configuración en la carga útil falla la validación.

230 * Ninguna de ellas se replantea a un valor más estricto.

231 * La carga útil contiene una clave que no sea esas dos claves de retención.

232 

233 El aviso de inicio, `/status` y `claude doctor` entonces reportan la [carga fallida](/docs/es/errors#remote-managed-settings-failed-to-load) con la causa `no setting in the server response could be applied as written`, y esa entrada dice qué política ejecuta la sesión. Los clientes que [aplican inicio cerrado por error](#enforce-fail-closed-startup) salen al inicio en su lugar.

225* El [diálogo de aprobación de seguridad](#security-approval-dialogs) evalúa la carga útil salvada, por lo que una entrada inválida eliminada nunca se presenta para aprobación y nunca se ejecuta.234* El [diálogo de aprobación de seguridad](#security-approval-dialogs) evalúa la carga útil salvada, por lo que una entrada inválida eliminada nunca se presenta para aprobación y nunca se ejecuta.

226 235 

227Para depurar problemas de entrega, ejecute `claude --debug-file <path>` y busque `Remote settings` en el registro. Valide un cambio de carga útil con `claude doctor` en una máquina de prueba antes de implementarlo en la organización.236Para depurar problemas de entrega, ejecute `claude --debug-file <path>` y busque `Remote settings` en el registro. Valide un cambio de carga útil con `claude doctor` en una máquina de prueba antes de implementarlo en la organización.

sessions.md +3 −2

Details

43* Modo de permisos: si reanuda desde una terminal con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`, Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos en [modo de permisos al reanudar](#permission-mode-on-resume), que también cubre el selector de sesiones, `/resume` y reanudar con `claude -p`. Pase `--permission-mode` o `--dangerously-skip-permissions` para anular el modo restaurado.43* Modo de permisos: si reanuda desde una terminal con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` cuando el nombre coincide con una sesión, sin `-p`, Claude Code restaura el modo de permisos en el que estaba la sesión, excepto en los casos en [modo de permisos al reanudar](#permission-mode-on-resume), que también cubre el selector de sesiones, `/resume` y reanudar con `claude -p`. Pase `--permission-mode` o `--dangerously-skip-permissions` para anular el modo restaurado.

44* Objetivo activo: un [objetivo](/docs/es/goal#resume-with-an-active-goal) que aún estaba activo cuando terminó la sesión se transfiere; su recuento de turnos, temporizador y línea base de gasto de tokens se reinician.44* Objetivo activo: un [objetivo](/docs/es/goal#resume-with-an-active-goal) que aún estaba activo cuando terminó la sesión se transfiere; su recuento de turnos, temporizador y línea base de gasto de tokens se reinician.

45* Tareas programadas: [tareas que no han expirado](/docs/es/scheduled-tasks#limitations) se restauran. Las tareas de Bash en segundo plano y de monitoreo no.45* Tareas programadas: [tareas que no han expirado](/docs/es/scheduled-tasks#limitations) se restauran. Las tareas de Bash en segundo plano y de monitoreo no.

46* Trabajo en segundo plano: un [subagente en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background), comando Bash en segundo plano, o [flujo de trabajo](/docs/es/workflows) que terminó con el proceso anterior aparece en la transcripción reanudada como una nota de que no terminó. Claude Code no inicia un turno a partir de esas notas; Claude las lee con su siguiente solicitud.

46 47 

47No se restaura cada bandera de configuración del lanzamiento original. Si la sesión dependía de `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` o directorios agregados con `--add-dir`, páselos de nuevo cuando reanude; los directorios agregados a mitad de sesión con `/add-dir` tampoco se restauran, aunque el selector de sesiones aún los usa para localizar la sesión. Los archivos de configuración estándar, como `settings.json` y `settings.local.json`, se leen nuevamente en el lanzamiento, por lo que la configuración que vive en ellos no necesita pasarse de nuevo. Para `--system-prompt` y `--append-system-prompt`, consulte [Banderas de solicitud del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations).48No se restaura cada bandera de configuración del lanzamiento original. Si la sesión dependía de `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model` o directorios agregados con `--add-dir`, páselos de nuevo cuando reanude; los directorios agregados a mitad de sesión con `/add-dir` tampoco se restauran, aunque el selector de sesiones aún los usa para localizar la sesión. Los archivos de configuración estándar, como `settings.json` y `settings.local.json`, se leen nuevamente en el lanzamiento, por lo que la configuración que vive en ellos no necesita pasarse de nuevo. Para `--system-prompt` y `--append-system-prompt`, consulte [Banderas de solicitud del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations).

48 49 


74 Reanude en modo de plan con `-p`75 Reanude en modo de plan con `-p`

75</h5>76</h5>

76 77 

77Una ejecución de `claude -p --resume` o `claude -p --continue` se reanuda en modo de plan solo cuando se cumplen las cuatro condiciones:78Una ejecución de `claude -p --resume` o `claude -p --continue` se reanuda en modo de plan solo cuando se cumplen todas estas condiciones:

78 79 

79* Pasa [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), para que Claude Code pueda presentar el plan para aprobación80* Pasa [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) y no pasa [`--permission-prompts none`](/docs/es/headless#turn-off-permission-prompts-in-unattended-runs), para que Claude Code pueda presentar el plan para aprobación

80* No pasa `--permission-mode` o `--dangerously-skip-permissions`81* No pasa `--permission-mode` o `--dangerously-skip-permissions`

81* No pasa `--fork-session`82* No pasa `--fork-session`

82* La ejecución no se inicia a través de [canales](/docs/es/channels)83* La ejecución no se inicia a través de [canales](/docs/es/channels)

settings-reference.md +478 −300

Details

591 591 

592| Clave | Descripción | Tema | Alcance |592| Clave | Descripción | Tema | Alcance |

593| :- | :- | :- | :- |593| :- | :- | :- | :- |

594| [`advisorModel`](#advisormodel) | Elija qué modelo responde cuando Claude pregunta la [herramienta asesor](/docs/es/advisor) | Modelo y respuestas | Cualquier archivo |594| [`advisorModel`](#advisormodel) | Elija qué modelo responde cuando Claude pregunta la [herramienta asesor](/docs/es/advisor) | Modelo y respuestas | Any file |

595| [`agent`](#agent) | Inicie cada sesión como un [subagente](/docs/es/sub-agents) nombrado con su indicación, herramientas y modelo | Agentes, sesiones y worktrees | Cualquier archivo |595| [`agent`](#agent) | Inicie cada sesión como un [subagente](/docs/es/sub-agents) nombrado con su prompt, herramientas y modelo | Agentes, sesiones y worktrees | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permita que Claude envíe una [notificación push a su teléfono](/docs/es/remote-control#mobile-push-notifications) cuando lo decida | Remoto, escritorio y notificaciones | Cualquier archivo |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Permita que Claude envíe una [notificación push a su teléfono](/docs/es/remote-control#mobile-push-notifications) cuando decida hacerlo | Remoto, escritorio y notificaciones | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Cargue los [conectores de claude.ai](/docs/es/mcp) que Claude Code obtiene por sí mismo junto con un [`managed-mcp.json`](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) implementado | MCP | Administrado |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Cargue los [conectores de claude.ai](/docs/es/mcp) que Claude Code obtiene por sí mismo junto con un [`managed-mcp.json`](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) implementado | MCP | Managed |

598| [`allowedChannelPlugins`](#allowedchannelplugins) | Reemplace la lista de permitidos predeterminada de [plugins de canal](/docs/es/channels#restrict-which-channel-plugins-can-run) que pueden enviar mensajes | Plugins y skills | Administrado |598| [`allowedChannelPlugins`](#allowedchannelplugins) | Reemplace la lista de permitidos predeterminada de [plugins de canal](/docs/es/channels#restrict-which-channel-plugins-can-run) que pueden enviar mensajes | Plugins y skills | Managed |

599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite qué URLs pueden dirigirse a los [hooks HTTP](/docs/es/hooks) | Hooks y automatización | Cualquier archivo |599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Limite qué URLs pueden dirigirse a los [hooks HTTP](/docs/es/hooks) | Hooks y automatización | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | Lista de permitidos de qué [servidores MCP](/docs/es/mcp) pueden agregar los usuarios | MCP | Cualquier archivo |600| [`allowedMcpServers`](#allowedmcpservers) | Lista de permitidos de qué [servidores MCP](/docs/es/mcp) pueden agregar los usuarios | MCP | Any file |

601| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Ejecute solo los [hooks](/docs/es/hooks) que su organización implementa | Hooks y automatización | Administrado |601| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | Ejecute solo los [hooks](/docs/es/hooks) que su organización implementa | Hooks y automatización | Managed |

602| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Haga que la lista de permitidos de [MCP](/docs/es/mcp) administrada sea la única que se aplique | MCP | Administrado |602| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | Haga que la lista de permitidos de [MCP](/docs/es/mcp) administrada sea la única que se aplique | MCP | Managed |

603| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Haga que [configuración administrada](/docs/es/managed-settings) sea la única fuente de configuración de [reglas de permisos](/docs/es/permissions#managed-settings) | Configuración de permisos | Administrado |603| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | Haga que la [configuración administrada](/docs/es/managed-settings) sea la única fuente de configuración de [reglas de permisos](/docs/es/permissions#managed-settings) | Configuración de permisos | Managed |

604| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión | Modelo y respuestas | Cualquier archivo |604| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión | Modelo y respuestas | Any file |

605| [`apiKeyHelper`](#apikeyhelper) | Genere la [credencial API](/docs/es/authentication#credential-management) con su propio comando | Autenticación y proveedores | Cualquier archivo |605| [`apiKeyHelper`](#apikeyhelper) | Genere la [credencial de API](/docs/es/authentication#credential-management) con su propio comando | Autenticación y proveedores | Any file |

606| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permita que una pregunta sin respuesta [continúe automáticamente](/docs/es/tools-reference#question-auto-continue-timeout) después del tiempo de inactividad | Interfaz y terminal | Usuario o administrado |606| [`askUserQuestionTimeout`](#askuserquestiontimeout) | Permita que una pregunta sin respuesta [continúe automáticamente](/docs/es/tools-reference#question-auto-continue-timeout) después del tiempo de inactividad | Interfaz y terminal | User or managed |

607| [`attribution`](#attribution) | Personalice la atribución que Claude Code agrega a commits y solicitudes de extracción | Git y atribución | Cualquier archivo |607| [`attribution`](#attribution) | Personalice la atribución que Claude Code agrega a commits y pull requests | Git y atribución | Any file |

608| [`attribution.commit`](#attribution-commit) | Cambie u oculte el tráiler que Claude Code agrega a los commits | Git y atribución | Cualquier archivo |608| [`attribution.commit`](#attribution-commit) | Cambie u oculte el tráiler que Claude Code agrega a los commits | Git y atribución | Any file |

609| [`attribution.pr`](#attribution-pr) | Cambie u oculte la línea de atribución en las descripciones de solicitudes de extracción | Git y atribución | Cualquier archivo |609| [`attribution.pr`](#attribution-pr) | Cambie u oculte la línea de atribución en las descripciones de pull requests | Git y atribución | Any file |

610| [`attribution.sessionUrl`](#attribution-sessionurl) | Omita el enlace de sesión de claude.ai de los commits de [nube](/docs/es/claude-code-on-the-web) y [Control Remoto](/docs/es/remote-control) | Git y atribución | Cualquier archivo |610| [`attribution.sessionUrl`](#attribution-sessionurl) | Omita el enlace de sesión de claude.ai de los commits de [nube](/docs/es/claude-code-on-the-web) y [Control Remoto](/docs/es/remote-control) | Git y atribución | Any file |

611| [`autoCompactEnabled`](#autocompactenabled) | Desactive o active la [compactación automática](/docs/es/context-window) | Memoria y contexto | Cualquier archivo |611| [`autoCompactEnabled`](#autocompactenabled) | Desactive o active la [compactación automática](/docs/es/context-window) | Memoria y contexto | Any file |

612| [`autoCompactWindow`](#autocompactwindow) | Establezca qué tan lleno se llena el contexto antes de que Claude Code [compacte](/docs/es/context-window) | Memoria y contexto | Cualquier archivo |612| [`autoCompactWindow`](#autocompactwindow) | Establezca qué tan lleno se llena el contexto antes de que Claude Code [compacte](/docs/es/context-window) | Memoria y contexto | Any file |

613| [`autoConnectIde`](#autoconnectide) | Conéctese automáticamente a un IDE [VS Code](/docs/es/vs-code) o [JetBrains](/docs/es/jetbrains#from-external-terminals) en ejecución desde una terminal externa | Configuración global | Configuración global |613| [`autoConnectIde`](#autoconnectide) | Conéctese automáticamente a un [VS Code](/docs/es/vs-code) o [JetBrains](/docs/es/jetbrains#from-external-terminals) IDE en ejecución desde una terminal externa | Configuración de configuración global | Global config |

614| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | Espere en la sesión abierta y [continúe la tarea automáticamente](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) después de que se restablezca un límite de uso de claude.ai | Interfaz y terminal | Usuario o administrado |614| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | Espere en la sesión abierta y [continúe la tarea automáticamente](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) después de que se restablezca un límite de uso de claude.ai | Interfaz y terminal | User or managed |

615| [`autoInstallIdeExtension`](#autoinstallideextension) | Desactive la instalación automática de la [extensión IDE](/docs/es/vs-code#install-the-extension) desde una terminal de VS Code | Configuración global | Configuración global |615| [`autoInstallIdeExtension`](#autoinstallideextension) | Desactive la instalación automática de la [extensión IDE](/docs/es/vs-code#install-the-extension) desde una terminal de VS Code | Configuración de configuración global | Global config |

616| [`autoMemoryDirectory`](#automemorydirectory) | Almacene [memoria automática](/docs/es/memory#auto-memory) en un directorio que elija | Memoria y contexto | Cualquier archivo |616| [`autoMemoryDirectory`](#automemorydirectory) | Almacene la [memoria automática](/docs/es/memory#auto-memory) en un directorio que elija | Memoria y contexto | Any file |

617| [`autoMemoryEnabled`](#automemoryenabled) | Desactive o active la [memoria automática](/docs/es/memory#auto-memory) | Memoria y contexto | Cualquier archivo |617| [`autoMemoryEnabled`](#automemoryenabled) | Desactive o active la [memoria automática](/docs/es/memory#auto-memory) | Memoria y contexto | Any file |

618| [`autoMode`](#automode) | Agregue sus propias reglas de permitir y denegar al clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) | Configuración de permisos | Usuario o administrado |618| [`autoMode`](#automode) | Agregue sus propias reglas de permitir y denegar al clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) | Configuración de permisos | User or managed |

619| [`autoMode.classifyAllShell`](#automode-classifyallshell) | Envíe cada comando shell a través del [clasificador de modo automático](/docs/es/permission-modes#what-the-classifier-blocks-by-default), incluso los que coinciden con una regla de permitir estrecha | Configuración de permisos | Usuario o administrado |619| [`autoMode.classifyAllShell`](#automode-classifyallshell) | Envíe cada comando shell a través del [clasificador de modo automático](/docs/es/permission-modes#what-the-classifier-blocks-by-default), incluso los que coinciden con una regla de permitir estrecha | Configuración de permisos | User or managed |

620| [`autoScrollEnabled`](#autoscrollenabled) | [Siga la nueva salida](/docs/es/fullscreen#auto-follow) hasta el final en la representación de pantalla completa | Interfaz y terminal | Cualquier archivo |620| [`autoScrollEnabled`](#autoscrollenabled) | [Siga la nueva salida](/docs/es/fullscreen#auto-follow) hasta el final en la representación de pantalla completa | Interfaz y terminal | Any file |

621| [`autoUpdatesChannel`](#autoupdateschannel) | Siga el [canal de lanzamiento](/docs/es/setup#configure-release-channel) estable en lugar del más reciente | Actualizaciones y versiones | Cualquier archivo |621| [`autoUpdatesChannel`](#autoupdateschannel) | Siga el [canal de lanzamiento](/docs/es/setup#configure-release-channel) estable en lugar del más reciente | Actualizaciones y versiones | Any file |

622| [`availableModels`](#availablemodels) | [Restrinja qué modelos](/docs/es/model-config#restrict-model-selection) pueden elegir las personas | Modelo y respuestas | Cualquier archivo |622| [`availableModels`](#availablemodels) | [Restrinja qué modelos](/docs/es/model-config#restrict-model-selection) pueden elegir las personas | Modelo y respuestas | Any file |

623| [`awaySummaryEnabled`](#awaysummaryenabled) | Desactive el [resumen de sesión](/docs/es/interactive-mode#session-recap) que se muestra cuando regresa a la terminal | Remoto, escritorio y notificaciones | Cualquier archivo |623| [`availableModelsMatch`](#availablemodelsmatch) | Haga que cada entrada de ID de modelo `availableModels` [permita solo la versión que nombra](/docs/es/model-config#block-specific-models-or-versions) | Modelo y respuestas | Managed |

624| [`awsAuthRefresh`](#awsauthrefresh) | Actualice las [credenciales de Bedrock](/docs/es/amazon-bedrock#advanced-credential-configuration) expiradas en `.aws` con su propio comando | Autenticación y proveedores | Cualquier archivo |624| [`awaySummaryEnabled`](#awaysummaryenabled) | Desactive el [resumen de sesión](/docs/es/interactive-mode#session-recap) que se muestra cuando regresa a la terminal | Remoto, escritorio y notificaciones | Any file |

625| [`awsCredentialExport`](#awscredentialexport) | Suministre [credenciales de Bedrock](/docs/es/amazon-bedrock#advanced-credential-configuration) como JSON desde su propio comando | Autenticación y proveedores | Cualquier archivo |625| [`awsAuthRefresh`](#awsauthrefresh) | Actualice las [credenciales de Bedrock](/docs/es/amazon-bedrock#advanced-credential-configuration) expiradas en `.aws` con su propio comando | Autenticación y proveedores | Any file |

626| [`axScreenReader`](#axscreenreader) | Represente [salida amigable con lectores de pantalla](/docs/es/accessibility) | Interfaz y terminal | Cualquier archivo |626| [`awsCredentialExport`](#awscredentialexport) | Suministre [credenciales de Bedrock](/docs/es/amazon-bedrock#advanced-credential-configuration) como JSON desde su propio comando | Autenticación y proveedores | Any file |

627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registre los [archivos que cambió un comando Bash](/docs/es/hooks#bash) en cada modo de permisos | Interfaz y terminal | Usuario o administrado |627| [`axScreenReader`](#axscreenreader) | Represente la [salida amigable con lectores de pantalla](/docs/es/accessibility) | Interfaz y terminal | Any file |

628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Establezca cuánta [salida](/docs/es/tools-reference#output-limits) de un comando exitoso recibe Claude en línea | Memoria y contexto | Cualquier archivo |628| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registre los [archivos que cambiaron mientras se ejecutaba un comando Bash](/docs/es/hooks#bash) en cada modo de permisos | Interfaz y terminal | User or managed |

629| [`blockedMarketplaces`](#blockedmarketplaces) | Bloquee [fuentes de marketplace de plugins](/docs/es/plugins/overview) para su organización | Plugins y skills | Administrado |629| [`bashOutputMaxChars`](#bashoutputmaxchars) | Establezca cuánta [salida](/docs/es/tools-reference#output-limits) de un comando exitoso recibe Claude en línea | Memoria y contexto | Any file |

630| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenga las herramientas de Claude fuera de las páginas externas en el panel del navegador [escritorio](/docs/es/desktop) | Herramientas | Administrado |630| [`blockedMarketplaces`](#blockedmarketplaces) | Bloquee las fuentes del [marketplace de plugins](/docs/es/plugins/overview) para su organización | Plugins y skills | Managed |

631| [`channelsEnabled`](#channelsenabled) | Permita [canales](/docs/es/channels#enable-channels-for-your-organization) para su organización | Plugins y skills | Administrado |631| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenga las herramientas de Claude fuera de las páginas externas en el panel [escritorio](/docs/es/desktop) Browser | Herramientas | Managed |

632| [`claudeMd`](#claudemd) | Inyecte instrucciones de [CLAUDE.md](/docs/es/memory#deploy-organization-wide-claude-md) en toda la organización desde configuración administrada | Memoria y contexto | Administrado |632| [`channelsEnabled`](#channelsenabled) | Permita [canales](/docs/es/channels#enable-channels-for-your-organization) para su organización | Plugins y skills | Managed |

633| [`claudeMdExcludes`](#claudemdexcludes) | Omita archivos específicos de [CLAUDE.md](/docs/es/memory#exclude-specific-claude-md-files) cuando se carga la memoria | Memoria y contexto | Cualquier archivo |633| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | Active la [integración de Chrome](/docs/es/chrome) en cada sesión CLI interactiva sin pasar `--chrome` | Configuración de configuración global | Global config |

634| [`cleanupPeriodDays`](#cleanupperioddays) | Elija cuántos días Claude Code mantiene [transcripciones](/docs/es/data-usage#data-retention) antes de eliminarlas | Privacidad y telemetría | Cualquier archivo |634| [`claudeMd`](#claudemd) | Inyecte instrucciones de [CLAUDE.md](/docs/es/memory#deploy-organization-wide-claude-md) en toda la organización desde la configuración administrada | Memoria y contexto | Managed |

635| [`companyAnnouncements`](#companyannouncements) | Muestre los anuncios de su organización al inicio | Interfaz y terminal | Cualquier archivo |635| [`claudeMdExcludes`](#claudemdexcludes) | Omita archivos específicos de [CLAUDE.md](/docs/es/memory#exclude-specific-claude-md-files) cuando se carga la memoria | Memoria y contexto | Any file |

636| [`copyOnSelect`](#copyonselect) | Desactive la copia automática del texto que selecciona con el ratón en la [representación de pantalla completa](/docs/es/fullscreen#use-the-mouse) y vista de agente | Configuración global | Configuración global |636| [`cleanupPeriodDays`](#cleanupperioddays) | Elija cuántos días Claude Code mantiene las [transcripciones](/docs/es/data-usage#data-retention) antes de eliminarlas | Privacidad y telemetría | Any file |

637| [`crossSessionInbound`](#crosssessioninbound) | Elija si Claude Code entrega [mensajes de sus otras sesiones](/docs/es/cross-session-messaging#control-inbound-messages), muestra un aviso sin entregarlos, o los rechaza | Agentes, sesiones y worktrees | Cualquier archivo |637| [`companyAnnouncements`](#companyannouncements) | Muestre los anuncios de su organización al iniciar | Interfaz y terminal | Any file |

638| [`defaultShell`](#defaultshell) | Elija si Bash o PowerShell ejecuta los comandos shell que escribe con el prefijo [`!`](/docs/es/interactive-mode#shell-mode-with-prefix) | Interfaz y terminal | Cualquier archivo |638| [`copyFullResponse`](#copyfullresponse) | Haga que [`/copy`](/docs/es/commands) copie la respuesta completa sin mostrar el selector de bloques de código | Configuración de configuración global | Global config |

639| [`deniedMcpServers`](#deniedmcpservers) | Bloquee [servidores MCP](/docs/es/mcp) específicos por URL, comando o nombre | MCP | Cualquier archivo |639| [`copyOnSelect`](#copyonselect) | Desactive la copia automática del texto que selecciona con el ratón en la [representación de pantalla completa](/docs/es/fullscreen#use-the-mouse) y la vista de agente | Configuración de configuración global | Global config |

640| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Establezca un límite de antigüedad en días para [transcripciones de Claude Desktop y Cowork](/docs/es/claude-directory#cleaned-up-automatically) | Privacidad y telemetría | Usuario o administrado |640| [`crossSessionInbound`](#crosssessioninbound) | Elija si Claude Code entrega [mensajes de sus otras sesiones](/docs/es/cross-session-messaging#control-inbound-messages), muestra un aviso sin entregarlos, o los rechaza | Agentes, sesiones y worktrees | Any file |

641| [`dialogExpiry`](#dialogexpiry) | Establezca cuánto tiempo Claude Code espera a que [Control Remoto](/docs/es/remote-control) o un host SDK responda a un diálogo reenviado antes de cancelarlo | Interfaz y terminal | Usuario o administrado |641| [`defaultShell`](#defaultshell) | Elija si Bash o PowerShell ejecuta los comandos shell que escribe con el prefijo [`!`](/docs/es/interactive-mode#shell-mode-with-prefix) | Interfaz y terminal | Any file |

642| [`diffTool`](#difftool) | Elija si los cambios de archivo propuestos por Claude se abren en el visor de diferencias de [VS Code](/docs/es/vs-code) o [JetBrains](/docs/es/jetbrains#features) o permanecen en la terminal | Configuración global | Configuración global |642| [`defaultToAgentsView`](#defaulttoagentsview) | Abra la [vista de agente](/docs/es/agent-view) en lugar de una nueva conversación cuando ejecute `claude` sin argumentos | Configuración de configuración global | Global config |

643| [`disableAgentView`](#disableagentview) | Desactive los agentes de fondo y la [vista de agente](/docs/es/agent-view) | Agentes, sesiones y worktrees | Cualquier archivo |643| [`deniedMcpServers`](#deniedmcpservers) | Bloquee [servidores MCP](/docs/es/mcp) específicos por URL, comando o nombre | MCP | Any file |

644| [`disableAllHooks`](#disableallhooks) | Desactive [hooks](/docs/es/hooks), una [línea de estado](/docs/es/statusline) personalizada, y un comando de [sugerencia de archivo `@`](/docs/es/interactive-mode#quick-commands) personalizado de una vez | Hooks y automatización | Cualquier archivo |644| [`deniedModels`](#deniedmodels) | [Bloquee modelos específicos](/docs/es/model-config#block-specific-models-or-versions), incluso los que `availableModels` permite | Modelo y respuestas | Managed |

645| [`disableArtifact`](#disableartifact) | Obsoleto; use `enableArtifact` para desactivar la [herramienta Artifact](/docs/es/artifacts) | Remoto, escritorio y notificaciones | Cualquier archivo |645| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Establezca un límite de antigüedad en días para las [transcripciones de Claude Desktop y Cowork](/docs/es/claude-directory#cleaned-up-automatically) | Privacidad y telemetría | User or managed |

646| [`disableAutoMode`](#disableautomode) | Elimine el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) del ciclo de modo de permisos | Configuración de permisos | Cualquier archivo |646| [`dialogExpiry`](#dialogexpiry) | Establezca cuánto tiempo Claude Code espera a que [Control Remoto](/docs/es/remote-control) o un host SDK responda a un diálogo reenviado antes de cancelar el diálogo | Interfaz y terminal | User or managed |

647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limite el panel del navegador [escritorio](/docs/es/desktop) a localhost para personas y Claude | Herramientas | Administrado |647| [`diffTool`](#difftool) | Elija si los cambios de archivo propuestos por Claude se abren en el visor de diferencias de [VS Code](/docs/es/vs-code) o [JetBrains](/docs/es/jetbrains#features) o permanecen en la terminal | Configuración de configuración global | Global config |

648| [`disableBundledSkills`](#disablebundledskills) | Desactive los [skills](/docs/es/skills#bundled-skills) y [flujos de trabajo](/docs/es/workflows) incluidos con Claude Code | Plugins y skills | Cualquier archivo |648| [`disableAgentView`](#disableagentview) | Desactive los agentes de fondo y la [vista de agente](/docs/es/agent-view) | Agentes, sesiones y worktrees | Any file |

649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desactive los [conectores de claude.ai](/docs/es/mcp#disable-claude-ai-connectors) para que Claude Code no los obtenga | MCP | Cualquier archivo |649| [`disableAllHooks`](#disableallhooks) | Desactive los [hooks](/docs/es/hooks), una [línea de estado](/docs/es/statusline) personalizada, y un comando de [sugerencia de archivo `@`](/docs/es/interactive-mode#quick-commands) personalizado de una vez | Hooks y automatización | Any file |

650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloquee [plugins](/docs/es/plugins/overview) que se instalan ejecutando un comando declarado por marketplace | Plugins y skills | Administrado |650| [`disableArtifact`](#disableartifact) | Obsoleto; use `enableArtifact` para desactivar la [herramienta Artifact](/docs/es/artifacts) | Remoto, escritorio y notificaciones | Any file |

651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impida que Claude Code registre el controlador [`claude-cli://`](/docs/es/deep-links) | Remoto, escritorio y notificaciones | Cualquier archivo |651| [`disableAutoMode`](#disableautomode) | Elimine el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) del ciclo de modo de permisos | Configuración de permisos | Any file |

652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desactive las [sesiones de Desktop Code](/docs/es/desktop#local-sessions-on-managed-devices) que se ejecutan en el dispositivo, dejando SSH para otros hosts y nube | Remoto, escritorio y notificaciones | Administrado |652| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limite el panel [escritorio](/docs/es/desktop) Browser a localhost para personas y Claude | Herramientas | Managed |

653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rechace servidores específicos del [`.mcp.json`](/docs/es/mcp#project-scope) de un proyecto | MCP | Cualquier archivo |653| [`disableBundledSkills`](#disablebundledskills) | Desactive los [skills](/docs/es/skills#bundled-skills) y [workflows](/docs/es/workflows) incluidos con Claude Code | Plugins y skills | Any file |

654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloquee las herramientas de Claude en el panel del simulador de iOS [escritorio](/docs/es/desktop) | Herramientas | Administrado |654| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Desactive los [conectores de claude.ai](/docs/es/mcp#disable-claude-ai-connectors) para que Claude Code no los obtenga | MCP | Any file |

655| [`disableRemoteControl`](#disableremotecontrol) | Desactive [Control Remoto](/docs/es/remote-control) en todas partes donde pueda iniciarse | Remoto, escritorio y notificaciones | Cualquier archivo |655| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloquee los [plugins](/docs/es/plugins/overview) que se instalan ejecutando un comando declarado por el marketplace | Plugins y skills | Managed |

656| [`disableSideloadFlags`](#disablesideloadflags) | Rechace las banderas CLI que cargan [plugins](/docs/es/plugins/overview), [subagentes](/docs/es/sub-agents), y [servidores MCP](/docs/es/mcp) | Configuración empresarial y administrada | Administrado |656| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impida que Claude Code registre el [controlador `claude-cli://`](/docs/es/deep-links) | Remoto, escritorio y notificaciones | Any file |

657| [`disableSkillShellExecution`](#disableskillshellexecution) | Impida que [skills](/docs/es/skills) y comandos personalizados ejecuten shell en línea | Plugins y skills | Cualquier archivo |657| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Desactive las [sesiones de Desktop Code](/docs/es/desktop#local-sessions-on-managed-devices) que se ejecutan en el dispositivo, dejando SSH para otros hosts y nube | Remoto, escritorio y notificaciones | Managed |

658| [`disableWorkflows`](#disableworkflows) | Desactive los [flujos de trabajo dinámicos](/docs/es/workflows) para todos; use `enableWorkflows` para usted mismo | Hooks y automatización | Cualquier archivo |658| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rechace servidores específicos del [`.mcp.json`](/docs/es/mcp#project-scope) de un proyecto | MCP | Any file |

659| [`editorMode`](#editormode) | Use [atajos de teclado vim](/docs/es/interactive-mode#vim-editor-mode) en el indicador de entrada | Interfaz y terminal | Cualquier archivo |659| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloquee las herramientas de Claude en el panel [escritorio](/docs/es/desktop) iOS Simulator | Herramientas | Managed |

660| [`effortLevel`](#effortlevel) | Establezca un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) predeterminado para modelos sin un nivel guardado propio | Modelo y respuestas | Cualquier archivo |660| [`disableRemoteControl`](#disableremotecontrol) | Desactive el [Control Remoto](/docs/es/remote-control) en todas partes donde pueda iniciarse | Remoto, escritorio y notificaciones | Any file |

661| [`emojiCompletionEnabled`](#emojicompletionenabled) | Desactive las [sugerencias y reemplazo de emoji `:shortcode:`](/docs/es/interactive-mode#emoji-shortcodes) en la entrada del indicador | Interfaz y terminal | Cualquier archivo |661| [`disableSideloadFlags`](#disablesideloadflags) | Rechace los indicadores CLI que cargan lateralmente [plugins](/docs/es/plugins/overview), [subagentes](/docs/es/sub-agents), y [servidores MCP](/docs/es/mcp) | Configuración empresarial y administrada | Managed |

662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Apruebe cada servidor en archivos [`.mcp.json`](/docs/es/mcp#project-server-approvals-and-workspace-trust) de proyecto sin un indicador | MCP | Cualquier archivo |662| [`disableSkillShellExecution`](#disableskillshellexecution) | Impida que los [skills](/docs/es/skills) y comandos personalizados ejecuten shell en línea | Plugins y skills | Any file |

663| [`enableArtifact`](#enableartifact) | Desactive la [herramienta Artifact](/docs/es/artifacts) con un `false` en cualquier archivo; ningún archivo puede activarla de nuevo | Remoto, escritorio y notificaciones | Cualquier archivo |663| [`disableWorkflows`](#disableworkflows) | Desactive los [workflows dinámicos](/docs/es/workflows) para todos; use `enableWorkflows` para usted mismo | Hooks y automatización | Any file |

664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Apruebe servidores específicos del [`.mcp.json`](/docs/es/mcp#project-server-approvals-and-workspace-trust) de un proyecto | MCP | Cualquier archivo |664| [`editorMode`](#editormode) | Use los [atajos de teclado vim](/docs/es/interactive-mode#vim-editor-mode) en el prompt de entrada | Interfaz y terminal | Any file |

665| [`enabledPlugins`](#enabledplugins) | Active o desactive [plugins](/docs/es/plugins/overview) individuales por alcance | Plugins y skills | Cualquier archivo |665| [`effortLevel`](#effortlevel) | Establezca un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) predeterminado para modelos sin un nivel guardado propio | Modelo y respuestas | Any file |

666| [`enableWorkflows`](#enableworkflows) | Active o desactive los [flujos de trabajo dinámicos](/docs/es/workflows) contra el predeterminado de su plan | Hooks y automatización | Cualquier archivo |666| [`emojiCompletionEnabled`](#emojicompletionenabled) | Desactive las [sugerencias y reemplazo de emoji `:shortcode:`](/docs/es/interactive-mode#emoji-shortcodes) en la entrada del prompt | Interfaz y terminal | Any file |

667| [`enforceAvailableModels`](#enforceavailablemodels) | Mantenga la [opción Predeterminada de `/model`](/docs/es/model-config#enforce-the-allowlist-for-the-default-model) dentro de su lista de permitidos `availableModels` | Modelo y respuestas | Cualquier archivo |667| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Apruebe cada servidor en los archivos [`.mcp.json`](/docs/es/mcp#project-server-approvals-and-workspace-trust) del proyecto sin un prompt | MCP | Any file |

668| [`env`](#env) | Establezca [variables de entorno](/docs/es/env-vars#in-settings-files) para cada sesión y sus subprocesos | Memoria y contexto | Cualquier archivo |668| [`enableArtifact`](#enableartifact) | Desactive la [herramienta Artifact](/docs/es/artifacts) con un `false` en cualquier archivo; ningún archivo puede volver a activarla | Remoto, escritorio y notificaciones | Any file |

669| [`externalEditorContext`](#externaleditorcontext) | Muestre la última respuesta de Claude como comentarios cuando presione [Ctrl+G](/docs/es/interactive-mode#general-controls) para editar | Configuración global | Configuración global |669| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Apruebe servidores específicos del [`.mcp.json`](/docs/es/mcp#project-server-approvals-and-workspace-trust) de un proyecto | MCP | Any file |

670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registre [marketplaces](/docs/es/plugins/overview) para un repositorio u organización | Plugins y skills | Cualquier archivo |670| [`enabledPlugins`](#enabledplugins) | Active o desactive [plugins](/docs/es/plugins/overview) individuales por alcance | Plugins y skills | Any file |

671| [`fallbackModel`](#fallbackmodel) | Nombre [modelos de respaldo](/docs/es/model-config#fallback-model-chains) para cuando el primario está sobrecargado | Modelo y respuestas | Cualquier archivo |671| [`enableWorkflows`](#enableworkflows) | Active o desactive los [workflows dinámicos](/docs/es/workflows) contra el predeterminado de su plan | Hooks y automatización | Any file |

672| [`fastMode`](#fastmode) | Active el [modo rápido](/docs/es/fast-mode) para sesiones donde está disponible | Modelo y respuestas | Cualquier archivo |672| [`enforceAvailableModels`](#enforceavailablemodels) | Mantenga la [opción Predeterminada de `/model`](/docs/es/model-config#enforce-the-allowlist-for-the-default-model) dentro de su lista de permitidos `availableModels` | Modelo y respuestas | Any file |

673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Requiera que las personas activen el [modo rápido](/docs/es/fast-mode) en cada sesión | Modelo y respuestas | Cualquier archivo |673| [`env`](#env) | Establezca [variables de entorno](/docs/es/env-vars#in-settings-files) para cada sesión y sus subprocesos | Memoria y contexto | Any file |

674| [`feedbackDrafts`](#feedbackdrafts) | Controle si Claude pone en cola [borradores de comentarios](/docs/es/tools-reference#sendfeedback-tool-behavior) para que revise | Privacidad y telemetría | Usuario o administrado |674| [`externalEditorContext`](#externaleditorcontext) | Muestre la última respuesta de Claude como comentarios cuando presione [Ctrl+G](/docs/es/interactive-mode#general-controls) para editar | Configuración de configuración global | Global config |

675| [`feedbackSurveyRate`](#feedbacksurveyrate) | Cambie la frecuencia con la que aparece la [encuesta de calidad de sesión](/docs/es/data-usage#session-quality-surveys) | Privacidad y telemetría | Cualquier archivo |675| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registre [marketplaces](/docs/es/plugins/overview) para un repositorio u organización | Plugins y skills | Any file |

676| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Desactive o active las instantáneas de archivo que [`/rewind`](/docs/es/checkpointing) restaura | Memoria y contexto | Cualquier archivo |676| [`fallbackModel`](#fallbackmodel) | Nombre [modelos de respaldo](/docs/es/model-config#fallback-model-chains) para cuando el principal está sobrecargado | Modelo y respuestas | Any file |

677| [`fileSuggestion`](#filesuggestion) | Suministre [autocompletado de archivo `@`](/docs/es/interactive-mode#quick-commands) desde su propio comando | Interfaz y terminal | Cualquier archivo |677| [`fastMode`](#fastmode) | Active el [modo rápido](/docs/es/fast-mode) para sesiones donde está disponible | Modelo y respuestas | Any file |

678| [`footerLinksRegexes`](#footerlinksregexes) | Haga que los ID de problema o revisión en la salida sean [enlaces clickeables](/docs/es/statusline#clickable-links) debajo del cuadro de entrada | Interfaz y terminal | Usuario o administrado |678| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Requiera que las personas activen el [modo rápido](/docs/es/fast-mode) en cada sesión | Modelo y respuestas | Any file |

679| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Establezca la [URL de puerta de enlace](/docs/es/claude-apps-gateway#set-the-gateway-url) a la que se conecta la pantalla de inicio de sesión | Autenticación y proveedores | Administrado |679| [`feedbackDrafts`](#feedbackdrafts) | Controle si Claude pone en cola [borradores de comentarios](/docs/es/tools-reference#sendfeedback-tool-behavior) para que usted revise | Privacidad y telemetría | User or managed |

680| [`forceLoginMethod`](#forceloginmethod) | [Restrinja el inicio de sesión](/docs/es/authentication#restrict-login-to-your-organization) a claude.ai, Claude Console, o una [puerta de enlace en la nube](/docs/es/claude-apps-gateway) | Autenticación y proveedores | Cualquier archivo |680| [`feedbackSurveyRate`](#feedbacksurveyrate) | Cambie la frecuencia con la que aparece la [encuesta de calidad de sesión](/docs/es/data-usage#session-quality-surveys) | Privacidad y telemetría | Any file |

681| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fije los inicios de sesión de claude.ai a su organización](/docs/es/authentication#restrict-login-to-your-organization); solo una fuente administrada lo aplica | Autenticación y proveedores | Cualquier archivo |681| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | Desactive o active las instantáneas de archivo que [`/rewind`](/docs/es/checkpointing) restaura | Memoria y contexto | Any file |

682| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloquee el inicio hasta que la [configuración administrada por servidor](/docs/es/server-managed-settings) se obtenga recientemente | Configuración empresarial y administrada | Administrado |682| [`fileSuggestion`](#filesuggestion) | Suministre el [autocompletado de archivo `@`](/docs/es/interactive-mode#quick-commands) desde su propio comando | Interfaz y terminal | Any file |

683| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Permita que `/login` alcance una [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en espacio IPv4 público que su organización usa internamente | Autenticación y proveedores | Administrado |683| [`footerLinksRegexes`](#footerlinksregexes) | Haga que los ID de problemas o revisiones en la salida se conviertan en [enlaces clickeables](/docs/es/statusline#clickable-links) debajo del cuadro de entrada | Interfaz y terminal | User or managed |

684| [`gcpAuthRefresh`](#gcpauthrefresh) | Actualice las [credenciales de Google Cloud](/docs/es/google-vertex-ai#advanced-credential-configuration) con su propio comando | Autenticación y proveedores | Cualquier archivo |684| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Establezca la [URL de puerta de enlace](/docs/es/claude-apps-gateway#set-the-gateway-url) a la que se conecta la pantalla de inicio de sesión | Autenticación y proveedores | Managed |

685| [`hooks`](#hooks) | Ejecute sus propios comandos como [hooks](/docs/es/hooks) en puntos del ciclo de vida de Claude Code | Hooks y automatización | Cualquier archivo |685| [`forceLoginMethod`](#forceloginmethod) | [Restrinja el inicio de sesión](/docs/es/authentication#restrict-login-to-your-organization) a claude.ai, Claude Console, o una [puerta de enlace en la nube](/docs/es/claude-apps-gateway) | Autenticación y proveedores | Any file |

686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite qué variables de entorno pueden poner los [hooks HTTP](/docs/es/hooks) en encabezados | Hooks y automatización | Cualquier archivo |686| [`forceLoginOrgUUID`](#forceloginorguuid) | [Fije los inicios de sesión de claude.ai a su organización](/docs/es/authentication#restrict-login-to-your-organization); solo una fuente administrada lo aplica | Autenticación y proveedores | Any file |

687| [`includeCoAuthoredBy`](#includecoauthoredby) | Obsoleto; use `attribution` para ocultar o cambiar la atribución de commit y PR | Git y atribución | Cualquier archivo |687| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Bloquee el inicio hasta que la [configuración administrada por servidor](/docs/es/server-managed-settings) se obtenga recientemente | Configuración empresarial y administrada | Managed |

688| [`includeGitInstructions`](#includegitinstructions) | Elimine las instrucciones de commit y PR integradas del contexto de Claude | Git y atribución | Cualquier archivo |688| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Permita que `/login` alcance una [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en el espacio IPv4 público que su organización usa internamente | Autenticación y proveedores | Managed |

689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Obtenga una [notificación push](/docs/es/remote-control#mobile-push-notifications) cuando Claude esté esperando por usted | Remoto, escritorio y notificaciones | Cualquier archivo |689| [`gcpAuthRefresh`](#gcpauthrefresh) | Actualice las [credenciales de Google Cloud](/docs/es/google-vertex-ai#advanced-credential-configuration) con su propio comando | Autenticación y proveedores | Any file |

690| [`isolatePeerMachines`](#isolatepeermachines) | Pregúntele antes de que Claude [envíe un mensaje a una de sus sesiones en otra máquina](/docs/es/cross-session-messaging#require-approval-for-cross-machine-messages) | Agentes, sesiones y worktrees | Cualquier archivo |690| [`hooks`](#hooks) | Ejecute sus propios comandos como [hooks](/docs/es/hooks) en puntos del ciclo de vida de Claude Code | Hooks y automatización | Any file |

691| [`keybindingFlavor`](#keybindingflavor) | Obsoleto y sin efecto; los atajos de edición de palabras siempre [siguen convenciones readline](/docs/es/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interfaz y terminal | Cualquier archivo |691| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite qué variables de entorno pueden poner los [hooks HTTP](/docs/es/hooks) en los encabezados | Hooks y automatización | Any file |

692| [`language`](#language) | Haga que Claude responda en un idioma distinto al inglés | Modelo y respuestas | Cualquier archivo |692| [`includeCoAuthoredBy`](#includecoauthoredby) | Obsoleto; use `attribution` para ocultar o cambiar la atribución de commits y PR | Git y atribución | Any file |

693| [`managedMcpServers`](#managedmcpservers) | Proporcione [servidores MCP](/docs/es/managed-mcp#provide-servers-through-managed-settings) remotos a cada usuario junto con los que agregan | MCP | Administrado |693| [`includeGitInstructions`](#includegitinstructions) | Elimine las instrucciones de commit y PR integradas del contexto de Claude | Git y atribución | Any file |

694| [`managedSourcesBehavior`](#managedsourcesbehavior) | Componga cada [fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources) que implemente en lugar de usar solo la de mayor prioridad | Configuración empresarial y administrada | Administrado |694| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Obtenga una [notificación push](/docs/es/remote-control#mobile-push-notifications) cuando Claude esté esperando por usted | Remoto, escritorio y notificaciones | Any file |

695| [`maxEffortLevel`](#maxeffortlevel) | Limite el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para cada modelo o por modelo, en cada proveedor | Modelo y respuestas | Cualquier archivo |695| [`isolatePeerMachines`](#isolatepeermachines) | Pregúntele antes de que Claude [envíe un mensaje a una de sus sesiones en otra máquina](/docs/es/cross-session-messaging#require-approval-for-cross-machine-messages) | Agentes, sesiones y worktrees | Any file |

696| [`minimumVersion`](#minimumversion) | Mantenga las [actualizaciones automáticas](/docs/es/setup#pin-a-minimum-version) de instalar nada por debajo de una versión | Actualizaciones y versiones | Cualquier archivo |696| [`keybindingFlavor`](#keybindingflavor) | Obsoleto y sin efecto; los atajos de edición de palabras siempre [siguen las convenciones de readline](/docs/es/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interfaz y terminal | Any file |

697| [`model`](#model) | Cambie el [modelo](/docs/es/model-config#set-a-default-model-for-new-sessions) con el que Claude Code comienza | Modelo y respuestas | Cualquier archivo |697| [`language`](#language) | Haga que Claude responda en un idioma distinto al inglés | Modelo y respuestas | Any file |

698| [`modelOverrides`](#modeloverrides) | [Asigne ID de modelo](/docs/es/model-config#override-model-ids-per-version) a los ID de su proveedor, como ARN de Bedrock | Modelo y respuestas | Cualquier archivo |698| [`leftArrowOpensAgents`](#leftarrowopensagents) | Desactive el atajo `←` que [coloca la sesión en segundo plano y abre la vista de agente](/docs/es/agent-view#switch-sessions-without-leaving-the-terminal) | Configuración de configuración global | Global config |

699| [`modelPicker`](#modelpicker) | Elija qué modelos enumera el selector [`/model`](/docs/es/model-config#available-models), en su propio orden y con sus propias etiquetas | Modelo y respuestas | Usuario o administrado |699| [`managedMcpServers`](#managedmcpservers) | Proporcione [servidores MCP](/docs/es/managed-mcp#provide-servers-through-managed-settings) remotos a cada usuario junto con los que agregan | MCP | Managed |

700| [`modelPricing`](#modelpricing) | Informe el gasto a las tasas contratadas de su organización en lugar del precio de lista | Modelo y respuestas | Administrado |700| [`managedSourcesBehavior`](#managedsourcesbehavior) | Componga cada [fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources) que implemente en lugar de usar solo la de mayor prioridad | Configuración empresarial y administrada | Managed |

701| [`modelSettings`](#modelsettings) | Mantenga un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) guardado por modelo, o limite el esfuerzo de un modelo | Modelo y respuestas | Cualquier archivo |701| [`maxEffortLevel`](#maxeffortlevel) | Limite el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para cada modelo o por modelo, en cada proveedor | Modelo y respuestas | Any file |

702| [`otelHeadersHelper`](#otelheadershelper) | Genere encabezados [OpenTelemetry](/docs/es/monitoring-usage#dynamic-headers) rotativos con su propio comando | Autenticación y proveedores | Cualquier archivo |702| [`maxProseWidth`](#maxprosewidth) | Limite el ancho de la prosa en las respuestas de Claude en una terminal ancha | Interfaz y terminal | Any file |

703| [`outputStyle`](#outputstyle) | Cambie el rol, tono y formato de salida de Claude con un [estilo de salida](/docs/es/output-styles) | Modelo y respuestas | Cualquier archivo |703| [`minimumVersion`](#minimumversion) | Impida que las [actualizaciones automáticas](/docs/es/setup#pin-a-minimum-version) instalen nada por debajo de una versión | Actualizaciones y versiones | Any file |

704| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique o suelte restricciones que un [host SDK o IDE](/docs/es/managed-settings#let-an-embedding-host-add-policy) pasa cuando implementa [configuración administrada](/docs/es/managed-settings) | Configuración empresarial y administrada | Administrado |704| [`model`](#model) | Cambie el [modelo](/docs/es/model-config#set-a-default-model-for-new-sessions) con el que Claude Code comienza | Modelo y respuestas | Any file |

705| [`permissionExplainerEnabled`](#permissionexplainerenabled) | Eliminado en v2.1.257, junto con la explicación del comando `Ctrl+E` en indicadores de permisos de shell | Configuración global | Configuración global |705| [`modelOverrides`](#modeloverrides) | [Asigne ID de modelos](/docs/es/model-config#override-model-ids-per-version) a los ID de su proveedor, como ARN de Bedrock | Modelo y respuestas | Any file |

706| [`permissions`](#permissions) | Establezca reglas de permitir, preguntar y denegar y el [modo de permisos](/docs/es/permission-modes) inicial | Configuración de permisos | Cualquier archivo |706| [`modelPicker`](#modelpicker) | Elija qué modelos lista el [selector `/model`](/docs/es/model-config#available-models), en su propio orden y con sus propias etiquetas | Modelo y respuestas | User or managed |

707| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Dé a Claude acceso a archivos en [directorios fuera del actual](/docs/es/permissions#working-directories) | Configuración de permisos | Cualquier archivo |707| [`modelPricing`](#modelpricing) | Reporte el gasto a las tasas contratadas de su organización en lugar del precio de lista | Modelo y respuestas | Managed |

708| [`permissions.allow`](#permissions-allow) | Apruebe [usos de herramientas](/docs/es/permissions#permission-rule-syntax) enumerados sin un indicador | Configuración de permisos | Cualquier archivo |708| [`modelSettings`](#modelsettings) | Mantenga un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) guardado por modelo, o limite el esfuerzo de un modelo | Modelo y respuestas | Any file |

709| [`permissions.ask`](#permissions-ask) | Siempre pregunte antes de [usos de herramientas](/docs/es/permissions#permission-rule-syntax) enumerados | Configuración de permisos | Cualquier archivo |709| [`otelHeadersHelper`](#otelheadershelper) | Genere encabezados [OpenTelemetry](/docs/es/monitoring-usage#dynamic-headers) rotativos con su propio comando | Autenticación y proveedores | Any file |

710| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Haga que las herramientas de archivo rechacen lecturas fuera de los [directorios de trabajo](/docs/es/permissions#working-directories) en cada modo de permisos | Configuración de permisos | Cualquier archivo |710| [`outputStyle`](#outputstyle) | Cambie el rol, tono y formato de salida de Claude con un [estilo de salida](/docs/es/output-styles) | Modelo y respuestas | Any file |

711| [`permissions.defaultMode`](#permissions-defaultmode) | Establezca el [modo de permisos](/docs/es/permission-modes#which-mode-a-session-starts-in) en el que comienzan las nuevas sesiones | Configuración de permisos | Cualquier archivo |711| [`parentSettingsBehavior`](#parentsettingsbehavior) | Aplique o elimine restricciones que un [host SDK o IDE](/docs/es/managed-settings#let-an-embedding-host-add-policy) pasa cuando implementa la [configuración administrada](/docs/es/managed-settings) | Configuración empresarial y administrada | Managed |

712| [`permissions.deny`](#permissions-deny) | Bloquee [usos de herramientas](/docs/es/permissions#permission-rule-syntax) enumerados, incluidas lecturas de archivos que contienen secretos | Configuración de permisos | Cualquier archivo |712| [`permissionExplainerEnabled`](#permissionexplainerenabled) | Eliminado en v2.1.257, junto con la explicación del comando `Ctrl+E` en los prompts de permisos de shell | Configuración de configuración global | Global config |

713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impida que alguien entre en el [modo bypassPermissions](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | Cualquier archivo |713| [`permissions`](#permissions) | Establezca las reglas de permitir, preguntar y denegar y el [modo de permisos](/docs/es/permission-modes) inicial | Configuración de permisos | Any file |

714| [`plansDirectory`](#plansdirectory) | Elija dónde [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) escribe archivos de plan | Memoria y contexto | Cualquier archivo |714| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | Dé a Claude acceso a archivos en [directorios fuera del actual](/docs/es/permissions#working-directories) | Configuración de permisos | Any file |

715| [`pluginConfigs`](#pluginconfigs) | Almacene las respuestas que dio al diálogo de configuración de un [plugin](/docs/es/plugins/overview) | Plugins y skills | Usuario o administrado |715| [`permissions.allow`](#permissions-allow) | Apruebe los [usos de herramientas](/docs/es/permissions#permission-rule-syntax) enumerados sin un prompt | Configuración de permisos | Any file |

716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Elija qué [marketplaces](/docs/es/plugins/overview) pueden mostrar sugerencias de instalación de plugins en `/plugin` | Plugins y skills | Administrado |716| [`permissions.ask`](#permissions-ask) | Siempre pregunte antes de los [usos de herramientas](/docs/es/permissions#permission-rule-syntax) enumerados | Configuración de permisos | Any file |

717| [`pluginTrustMessage`](#plugintrustmessage) | Agregue su propio texto a la [advertencia de confianza](/docs/es/plugins/overview) del plugin | Plugins y skills | Administrado |717| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | Haga que las herramientas de archivo rechacen lecturas fuera de los [directorios de trabajo](/docs/es/permissions#working-directories) en cada modo de permisos | Configuración de permisos | Any file |

718| [`policyHelper`](#policyhelper) | Ejecute un ejecutable que calcule [configuración administrada](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) al inicio | Configuración empresarial y administrada | Administrado |718| [`permissions.defaultMode`](#permissions-defaultmode) | Establezca el [modo de permisos](/docs/es/permission-modes#which-mode-a-session-starts-in) en el que comienzan las nuevas sesiones | Configuración de permisos | Any file |

719| [`policyHelper.path`](#policyhelper-path) | Nombre el [ejecutable auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) que ejecuta Claude Code | Configuración empresarial y administrada | Administrado |719| [`permissions.deny`](#permissions-deny) | Bloquee los [usos de herramientas](/docs/es/permissions#permission-rule-syntax) enumerados, incluidas las lecturas de archivos que contienen secretos | Configuración de permisos | Any file |

720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Vuelva a ejecutar el [auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) en segundo plano en un intervalo | Configuración empresarial y administrada | Administrado |720| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impida que alguien entre en el [modo bypassPermissions](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | Any file |

721| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Establezca cuánto tiempo Claude Code espera al [auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) | Configuración empresarial y administrada | Administrado |721| [`plansDirectory`](#plansdirectory) | Elija dónde [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) escribe archivos de plan | Memoria y contexto | Any file |

722| [`preferredNotifChannel`](#preferrednotifchannel) | Elija un [timbre de terminal o notificación de escritorio](/docs/es/terminal-config#get-a-terminal-bell-or-notification) para la finalización de tareas | Remoto, escritorio y notificaciones | Cualquier archivo |722| [`pluginConfigs`](#pluginconfigs) | Almacene las respuestas que dio al diálogo de configuración de un [plugin](/docs/es/plugins/overview) | Plugins y skills | User or managed |

723| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduzca o desactive](/docs/es/accessibility#accessibility-settings) animaciones de spinner, shimmer y flash | Interfaz y terminal | Cualquier archivo |723| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Elija qué [marketplaces](/docs/es/plugins/org#restrict-what-users-can-install) pueden mostrar sugerencias de instalación de plugins en `/plugin` | Plugins y skills | Managed |

724| [`processWrapper`](#processwrapper) | Ejecute los procesos de fondo de Claude Code a través de un [iniciador corporativo](/docs/es/corporate-launcher) en macOS y Linux | Agentes, sesiones y worktrees | Usuario o administrado |724| [`pluginTrustMessage`](#plugintrustmessage) | Agregue su propio texto a la [advertencia de confianza](/docs/es/plugins/overview) del plugin | Plugins y skills | Managed |

725| [`promptCacheTtl`](#promptcachettl) | Elija la [duración del caché de indicación](/docs/es/prompt-caching#cache-lifetime) para la conversación principal | Modelo y respuestas | Cualquier archivo |725| [`policyHelper`](#policyhelper) | Ejecute un ejecutable que calcule la [configuración administrada](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) al iniciar | Configuración empresarial y administrada | Managed |

726| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculte las [sugerencias de indicador](/docs/es/interactive-mode#prompt-suggestions) atenuadas en el cuadro de entrada | Interfaz y terminal | Cualquier archivo |726| [`policyHelper.path`](#policyhelper-path) | Nombre el [ejecutable auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) que Claude Code ejecuta | Configuración empresarial y administrada | Managed |

727| [`prUrlTemplate`](#prurltemplate) | Apunte los enlaces de PR a una herramienta de revisión de código interna en lugar de github.com | Git y atribución | Cualquier archivo |727| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Vuelva a ejecutar el [auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) en segundo plano en un intervalo | Configuración empresarial y administrada | Managed |

728| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Elija el [entorno en la nube](/docs/es/cloud-environments) predeterminado para `claude --cloud`; un ID `ccpool_` autohospedado es de solo lectura desde configuración de usuario y administrada y `--settings` | Remoto, escritorio y notificaciones | Cualquier archivo |728| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | Establezca cuánto tiempo Claude Code espera al [auxiliar](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) | Configuración empresarial y administrada | Managed |

729| [`remoteControlAtStartup`](#remotecontrolatstartup) | Conecte [Control Remoto](/docs/es/remote-control#enable-remote-control-for-all-sessions) automáticamente cuando comienza una sesión | Remoto, escritorio y notificaciones | Cualquier archivo |729| [`preferredNotifChannel`](#preferrednotifchannel) | Elija un [timbre de terminal o notificación de escritorio](/docs/es/terminal-config#get-a-terminal-bell-or-notification) para la finalización de tareas | Remoto, escritorio y notificaciones | Any file |

730| [`requiredMaximumVersion`](#requiredmaximumversion) | [Rechace iniciar](/docs/es/setup#pin-a-minimum-version) en una versión más nueva de la que su organización permite | Actualizaciones y versiones | Administrado |730| [`prefersReducedMotion`](#prefersreducedmotion) | [Reduzca o desactive](/docs/es/accessibility#accessibility-settings) las animaciones de spinner, shimmer y flash | Interfaz y terminal | Any file |

731| [`requiredMinimumVersion`](#requiredminimumversion) | [Rechace iniciar](/docs/es/setup#pin-a-minimum-version) en una versión más antigua de la que su organización requiere | Actualizaciones y versiones | Administrado |731| [`processWrapper`](#processwrapper) | Ejecute los procesos de fondo de Claude Code a través de un [iniciador corporativo](/docs/es/corporate-launcher) en macOS y Linux | Agentes, sesiones y worktrees | User or managed |

732| [`respectGitignore`](#respectgitignore) | Mantenga los archivos ignorados por git fuera del [selector de archivo `@`](/docs/es/interactive-mode#quick-commands) | Interfaz y terminal | Cualquier archivo |732| [`promptCacheTtl`](#promptcachettl) | Elija la [duración del caché de prompt](/docs/es/prompt-caching#cache-lifetime) para la conversación principal | Modelo y respuestas | Any file |

733| [`respondToBashCommands`](#respondtobashcommands) | Impida que Claude responda después de que se ejecute un [comando shell `!`](/docs/es/interactive-mode#shell-mode-with-prefix) | Interfaz y terminal | Cualquier archivo |733| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Oculte las [sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) atenuadas en el cuadro de entrada | Interfaz y terminal | Any file |

734| [`sandbox`](#sandbox) | [Aisle comandos Bash](/docs/es/sandboxing) de su sistema de archivos y red en macOS, Linux y WSL2 | Configuración de sandbox | Cualquier archivo |734| [`prStatusFooterEnabled`](#prstatusfooterenabled) | Desactive la [insignia de estado de revisión de PR](/docs/es/interactive-mode#pr-review-status) del pie de página del prompt y la verificación de pull request detrás de ella | Configuración de configuración global | Global config |

735| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | Permita que [comandos en sandbox](/docs/es/sandboxing) envíen Apple Events en macOS | Configuración de sandbox | Usuario o administrado |735| [`prUrlTemplate`](#prurltemplate) | Apunte los enlaces de PR a una herramienta de revisión de código interna en lugar de github.com | Git y atribución | Any file |

736| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Permita que Claude reintente un comando bloqueado fuera del [sandbox](/docs/es/sandboxing#the-unsandboxed-retry-escape-hatch), o prohíbalo | Configuración de sandbox | Cualquier archivo |736| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Elija el [entorno en la nube](/docs/es/cloud-environments) predeterminado para `claude --cloud`; un ID `ccpool_` autohospedado es de solo lectura desde la configuración de usuario y administrada y `--settings` | Remoto, escritorio y notificaciones | Any file |

737| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | Ejecute [comandos en sandbox](/docs/es/sandboxing#auto-allow-mode) sin un indicador de permisos | Configuración de sandbox | Cualquier archivo |737| [`remoteControlAtStartup`](#remotecontrolatstartup) | Conecte el [Control Remoto](/docs/es/remote-control#enable-remote-control-for-all-sessions) automáticamente cuando comience una sesión | Remoto, escritorio y notificaciones | Any file |

738| [`sandbox.bwrapPath`](#sandbox-bwrappath) | Apunte el [sandbox](/docs/es/sandboxing) a un binario bubblewrap fuera de `PATH` | Configuración de sandbox | Administrado |738| [`requiredMaximumVersion`](#requiredmaximumversion) | [Rechace iniciar](/docs/es/setup#pin-a-minimum-version) en una versión más nueva de la que su organización permite | Actualizaciones y versiones | Managed |

739| [`sandbox.credentials`](#sandbox-credentials) | Oculte o enmascare archivos y variables de credenciales dentro del [sandbox](/docs/es/sandboxing#protect-credentials) | Configuración de sandbox | Cualquier archivo |739| [`requiredMinimumVersion`](#requiredminimumversion) | [Rechace iniciar](/docs/es/setup#pin-a-minimum-version) en una versión más antigua de la que su organización requiere | Actualizaciones y versiones | Managed |

740| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | Permita que [credenciales enmascaradas](/docs/es/sandboxing#mask-credentials) lleguen a servicios HTTP simples en redes de prueba confiables | Configuración de sandbox | Usuario o administrado |740| [`respectGitignore`](#respectgitignore) | Mantenga los archivos ignorados por git fuera del [selector de archivo `@`](/docs/es/interactive-mode#quick-commands) | Interfaz y terminal | Any file |

741| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | Vincule variables de clave AWS con nombre personalizado en una credencial para [re-firmar](/docs/es/sandboxing#re-sign-aws-requests) | Configuración de sandbox | Usuario o administrado |741| [`respondToBashCommands`](#respondtobashcommands) | Impida que Claude responda después de que se ejecute un [comando shell `!`](/docs/es/interactive-mode#shell-mode-with-prefix) | Interfaz y terminal | Any file |

742| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | Desactive o enmascare una variable de entorno dentro del [sandbox](/docs/es/sandboxing#mask-environment-variables) | Configuración de sandbox | Cualquier archivo |742| [`sandbox`](#sandbox) | [Aisle los comandos Bash](/docs/es/sandboxing) de su sistema de archivos y red en macOS, Linux y WSL2 | Configuración de sandbox | Any file |

743| [`sandbox.credentials.files`](#sandbox-credentials-files) | Bloquee o enmascare lecturas de un archivo de credenciales dentro del [sandbox](/docs/es/sandboxing#mask-credential-files) | Configuración de sandbox | Cualquier archivo |743| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | Permita que los [comandos en sandbox](/docs/es/sandboxing) envíen Apple Events en macOS | Configuración de sandbox | User or managed |

744| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | Elija si las solicitudes [SigV4A de AWS](/docs/es/sandboxing#re-sign-aws-requests) de streaming, presignadas o fallan o pasan | Configuración de sandbox | Usuario o administrado |744| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | Permita que Claude reintente un comando bloqueado fuera del [sandbox](/docs/es/sandboxing#the-unsandboxed-retry-escape-hatch), o prohíbalo | Configuración de sandbox | Any file |

745| [`sandbox.enabled`](#sandbox-enabled) | Active el [sandbox de Bash](/docs/es/sandboxing#get-started) en macOS, Linux y WSL2 | Configuración de sandbox | Cualquier archivo |745| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | Ejecute los [comandos en sandbox](/docs/es/sandboxing#auto-allow-mode) sin un prompt de permisos | Configuración de sandbox | Any file |

746| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Ejecute el [sandbox](/docs/es/sandboxing) de Linux dentro de un contenedor sin privilegios | Configuración de sandbox | Cualquier archivo |746| [`sandbox.bwrapPath`](#sandbox-bwrappath) | Apunte el [sandbox](/docs/es/sandboxing) a un binario bubblewrap fuera de `PATH` | Configuración de sandbox | Managed |

747| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permita que `gh`, `gcloud` y `terraform` verifiquen TLS detrás de un proxy MITM dentro del [sandbox](/docs/es/sandboxing#troubleshooting) en macOS | Configuración de sandbox | Cualquier archivo |747| [`sandbox.credentials`](#sandbox-credentials) | Oculte o enmascare archivos y variables de credenciales dentro del [sandbox](/docs/es/sandboxing#protect-credentials) | Configuración de sandbox | Any file |

748| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nombre comandos que siempre se ejecutan fuera del [sandbox](/docs/es/sandboxing) | Configuración de sandbox | Cualquier archivo |748| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | Permita que las [credenciales enmascaradas](/docs/es/sandboxing#mask-credentials) lleguen a servicios HTTP simples en redes de prueba de confianza | Configuración de sandbox | User or managed |

749| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Rechace iniciar cuando el [sandbox](/docs/es/sandboxing) no pueda, en lugar de ejecutarse sin sandbox | Configuración de sandbox | Cualquier archivo |749| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | Vincule variables de clave AWS con nombre personalizado en una credencial para [re-firmar](/docs/es/sandboxing#re-sign-aws-requests) | Configuración de sandbox | User or managed |

750| [`sandbox.filesystem`](#sandbox-filesystem) | Controle qué rutas pueden leer y escribir [comandos en sandbox](/docs/es/sandboxing#filesystem-isolation) | Configuración de sandbox | Cualquier archivo |750| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | Desactive o enmascare una variable de entorno dentro del [sandbox](/docs/es/sandboxing#mask-environment-variables) | Configuración de sandbox | Any file |

751| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impida que los desarrolladores vuelvan a abrir [rutas de lectura que su organización bloqueó](/docs/es/sandboxing#keep-developers-from-widening-the-policy) | Configuración de sandbox | Administrado |751| [`sandbox.credentials.files`](#sandbox-credentials-files) | Bloquee o enmascare lecturas de un archivo de credenciales dentro del [sandbox](/docs/es/sandboxing#mask-credential-files) | Configuración de sandbox | Any file |

752| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | Vuelva a abrir la lectura dentro de una región que [`denyRead`](#sandbox-filesystem-denyread) bloquea | Configuración de sandbox | Cualquier archivo |752| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | Elija si las solicitudes [SigV4A de AWS](/docs/es/sandboxing#re-sign-aws-requests) de streaming, presignadas o fallan o pasan | Configuración de sandbox | User or managed |

753| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | Agregue rutas a las que [comandos en sandbox](/docs/es/sandboxing) pueden escribir | Configuración de sandbox | Cualquier archivo |753| [`sandbox.enabled`](#sandbox-enabled) | Active el [sandbox de Bash](/docs/es/sandboxing#get-started) en macOS, Linux y WSL2 | Configuración de sandbox | Any file |

754| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | Bloquee [comandos en sandbox](/docs/es/sandboxing) de leer rutas específicas | Configuración de sandbox | Cualquier archivo |754| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Ejecute el [sandbox](/docs/es/sandboxing) de Linux dentro de un contenedor sin privilegios | Configuración de sandbox | Any file |

755| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | Bloquee [comandos en sandbox](/docs/es/sandboxing) de escribir en rutas específicas | Configuración de sandbox | Cualquier archivo |755| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Permita que `gh`, `gcloud` y `terraform` verifiquen TLS detrás de un proxy MITM dentro del [sandbox](/docs/es/sandboxing#troubleshooting) en macOS | Configuración de sandbox | Any file |

756| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | [Desactive el aislamiento del sistema de archivos](/docs/es/sandboxing#disable-filesystem-isolation) mientras mantiene el aislamiento de red | Configuración de sandbox | Usuario o administrado |756| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nombre los comandos que Claude Code puede ejecutar fuera del [sandbox](/docs/es/sandboxing) | Configuración de sandbox | Any file |

757| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | Silenciar reportes de violación para rutas que se espera que un comando sondee | Configuración de sandbox | Cualquier archivo |757| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Rechace iniciar cuando el [sandbox](/docs/es/sandboxing) no pueda, en lugar de ejecutarse sin sandbox | Configuración de sandbox | Any file |

758| [`sandbox.network`](#sandbox-network) | Controle qué hosts, puertos y sockets alcanzan [comandos en sandbox](/docs/es/sandboxing#network-isolation) | Configuración de sandbox | Cualquier archivo |758| [`sandbox.filesystem`](#sandbox-filesystem) | Controle qué rutas pueden leer y escribir los [comandos en sandbox](/docs/es/sandboxing#filesystem-isolation) | Configuración de sandbox | Any file |

759| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | Permita que [comandos en sandbox](/docs/es/sandboxing) se conecten a cada socket Unix | Configuración de sandbox | Cualquier archivo |759| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impida que los desarrolladores vuelvan a abrir [rutas de lectura que su organización bloqueó](/docs/es/sandboxing#keep-developers-from-widening-the-policy) | Configuración de sandbox | Managed |

760| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | Pre-permita dominios para que [comandos en sandbox](/docs/es/sandboxing) no soliciten permiso para ellos | Configuración de sandbox | Cualquier archivo |760| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | Vuelva a abrir la lectura dentro de una región que [`denyRead`](#sandbox-filesystem-denyread) bloquea | Configuración de sandbox | Any file |

761| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | Permita que [comandos en sandbox](/docs/es/sandboxing) se vinculen a puertos localhost en macOS | Configuración de sandbox | Cualquier archivo |761| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | Agregue rutas que los [comandos en sandbox](/docs/es/sandboxing) pueden escribir | Configuración de sandbox | Any file |

762| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | Permita que herramientas [en sandbox](/docs/es/sandboxing) de macOS como el Simulador de iOS o Playwright alcancen sus servicios XPC | Configuración de sandbox | Cualquier archivo |762| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | Bloquee los [comandos en sandbox](/docs/es/sandboxing) de leer rutas específicas | Configuración de sandbox | Any file |

763| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | Bloquee la lista de permitidos de red a [configuración administrada](/docs/es/sandboxing#keep-developers-from-widening-the-policy) | Configuración de sandbox | Administrado |763| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | Bloquee los [comandos en sandbox](/docs/es/sandboxing) de escribir en rutas específicas | Configuración de sandbox | Any file |

764| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | Enumere rutas de socket Unix que [comandos en sandbox](/docs/es/sandboxing) pueden usar en macOS | Configuración de sandbox | Cualquier archivo |764| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | [Desactive el aislamiento del sistema de archivos](/docs/es/sandboxing#disable-filesystem-isolation) mientras mantiene el aislamiento de red | Configuración de sandbox | User or managed |

765| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | Bloquee dominios para [comandos en sandbox](/docs/es/sandboxing), incluso dentro de un comodín permitido | Configuración de sandbox | Cualquier archivo |765| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | Silenciar reportes de violaciones para rutas que se espera que un comando sondee | Configuración de sandbox | Any file |

766| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | Enrute el tráfico HTTP del [sandbox](/docs/es/sandboxing#custom-proxy-configuration) a través de su propio proxy | Configuración de sandbox | Cualquier archivo |766| [`sandbox.network`](#sandbox-network) | Controle qué hosts, puertos y sockets pueden alcanzar los [comandos en sandbox](/docs/es/sandboxing#network-isolation) | Configuración de sandbox | Any file |

767| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | Enrute el tráfico SOCKS del [sandbox](/docs/es/sandboxing#custom-proxy-configuration) a través de su propio proxy | Configuración de sandbox | Cualquier archivo |767| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | Permita que los [comandos en sandbox](/docs/es/sandboxing) se conecten a cada socket Unix | Configuración de sandbox | Any file |

768| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | Deniegue hosts fuera de la [lista de permitidos](/docs/es/sandboxing#network-isolation) en lugar de solicitar permiso | Configuración de sandbox | Usuario o administrado |768| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | Pre-permita dominios para que los [comandos en sandbox](/docs/es/sandboxing) no soliciten permiso | Configuración de sandbox | Any file |

769| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | Haga que el [sandbox](/docs/es/sandboxing#network-isolation) proxy termine TLS para que pueda leer solicitudes HTTPS | Configuración de sandbox | Usuario o administrado |769| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | Permita que los [comandos en sandbox](/docs/es/sandboxing) se vinculen a puertos localhost en macOS | Configuración de sandbox | Any file |

770| [`sandbox.ripgrep`](#sandbox-ripgrep) | Use su propio binario ripgrep dentro del [sandbox](/docs/es/sandboxing) | Configuración de sandbox | Usuario o administrado |770| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | Permita que las herramientas [en sandbox](/docs/es/sandboxing) de macOS como el iOS Simulator o Playwright alcancen sus servicios XPC | Configuración de sandbox | Any file |

771| [`sandbox.socatPath`](#sandbox-socatpath) | Apunte el proxy del [sandbox](/docs/es/sandboxing) a un binario `socat` fuera de `PATH` | Configuración de sandbox | Administrado |771| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | Bloquee la lista de permitidos de red a la [configuración administrada](/docs/es/sandboxing#keep-developers-from-widening-the-policy) | Configuración de sandbox | Managed |

772| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | Muestre una opción "borrar contexto" en la [pantalla de aceptación del plan](/docs/es/permission-modes#review-and-approve-a-plan) | Interfaz y terminal | Cualquier archivo |772| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | Liste las rutas de socket Unix que los [comandos en sandbox](/docs/es/sandboxing) pueden usar en macOS | Configuración de sandbox | Any file |

773| [`showThinkingSummaries`](#showthinkingsummaries) | Vea resúmenes del [pensamiento](/docs/es/model-config#extended-thinking) de Claude en lugar de un stub colapsado | Modelo y respuestas | Cualquier archivo |773| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | Bloquee dominios para los [comandos en sandbox](/docs/es/sandboxing), incluso dentro de un comodín permitido | Configuración de sandbox | Any file |

774| [`showTurnDuration`](#showturnduration) | Oculte la duración "Cooked for" después de cada respuesta | Interfaz y terminal | Cualquier archivo |774| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | Enrute el tráfico HTTP del [sandbox](/docs/es/sandboxing#custom-proxy-configuration) a través de su propio proxy | Configuración de sandbox | Any file |

775| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | Reserve más o menos contexto para la [lista de skills](/docs/es/skills#skill-descriptions-are-cut-short) | Memoria y contexto | Cualquier archivo |775| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | Enrute el tráfico SOCKS del [sandbox](/docs/es/sandboxing#custom-proxy-configuration) a través de su propio proxy | Configuración de sandbox | Any file |

776| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | Limite la longitud de la descripción de cada skill en la [lista de skills](/docs/es/skills#skill-descriptions-are-cut-short) | Memoria y contexto | Cualquier archivo |776| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | Deniegue hosts fuera de la [lista de permitidos](/docs/es/sandboxing#network-isolation) en lugar de solicitar permiso | Configuración de sandbox | User or managed |

777| [`skillOverrides`](#skilloverrides) | [Oculte o contraiga un skill](/docs/es/skills#override-skill-visibility-from-settings) sin editar su SKILL.md | Plugins y skills | Cualquier archivo |777| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | Haga que el [sandbox](/docs/es/sandboxing#network-isolation) proxy termine TLS para que pueda leer solicitudes HTTPS | Configuración de sandbox | User or managed |

778| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | Omita el aviso único que Claude Code muestra cuando entra por primera vez en el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) usted mismo en lugar de a través del predeterminado integrado | Configuración de permisos | Usuario o administrado |778| [`sandbox.ripgrep`](#sandbox-ripgrep) | Use su propio binario ripgrep dentro del [sandbox](/docs/es/sandboxing) | Configuración de sandbox | User or managed |

779| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | Omita el diálogo de confirmación antes del [modo bypassPermissions](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | Usuario, local o administrado |779| [`sandbox.socatPath`](#sandbox-socatpath) | Apunte el proxy del [sandbox](/docs/es/sandboxing) a un binario `socat` fuera de `PATH` | Configuración de sandbox | Managed |

780| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Omita la [verificación de nombre de host de WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) cuando Anthropic es inaccesible | Privacidad y telemetría | Cualquier archivo |780| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | Muestre una opción "borrar contexto" en la [pantalla de aceptación del plan](/docs/es/permission-modes#review-and-approve-a-plan) | Interfaz y terminal | Any file |

781| [`spellcheck`](#spellcheck) | Subraye palabras mal escritas en la entrada del indicador con un [corrector ortográfico](/docs/es/interactive-mode#check-spelling-as-you-type) que instale | Interfaz y terminal | Usuario o administrado |781| [`showThinkingSummaries`](#showthinkingsummaries) | Vea resúmenes del [pensamiento](/docs/es/model-config#extended-thinking) de Claude en lugar de un stub colapsado | Modelo y respuestas | Any file |

782| [`spinnerTipsEnabled`](#spinnertipsenabled) | Oculte consejos en el spinner mientras Claude trabaja | Interfaz y terminal | Cualquier archivo |782| [`showTurnDuration`](#showturnduration) | Oculte la duración "Cooked for" después de cada respuesta | Interfaz y terminal | Any file |

783| [`spinnerTipsOverride`](#spinnertipsoverride) | Agregue sus propios consejos a la rotación del spinner, o reemplace los consejos integrados | Interfaz y terminal | Cualquier archivo |783| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | Reserve más o menos contexto para el [listado de skills](/docs/es/skills#skill-descriptions-are-cut-short) | Memoria y contexto | Any file |

784| [`spinnerVerbs`](#spinnerverbs) | Agregue o reemplace los verbos mostrados mientras se ejecuta un turno | Interfaz y terminal | Cualquier archivo |784| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | Limite la longitud de la descripción de cada skill en el [listado de skills](/docs/es/skills#skill-descriptions-are-cut-short) | Memoria y contexto | Any file |

785| [`sshConfigs`](#sshconfigs) | Agregue [conexiones SSH](/docs/es/desktop#pre-configure-ssh-connections-for-your-team) al menú desplegable del entorno de Desktop | Remoto, escritorio y notificaciones | Usuario o administrado |785| [`skillOverrides`](#skilloverrides) | [Oculte o contraiga un skill](/docs/es/skills#override-skill-visibility-from-settings) sin editar su SKILL.md | Plugins y skills | Any file |

786| [`sshHostAllowlist`](#sshhostallowlist) | Limite qué hosts pueden alcanzar las [sesiones SSH de Desktop](/docs/es/desktop#restrict-which-ssh-hosts-users-can-connect-to) | Remoto, escritorio y notificaciones | Administrado |786| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | Omita el aviso único que Claude Code muestra cuando entra por primera vez en el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) usted mismo en lugar de a través del predeterminado integrado | Configuración de permisos | User or managed |

787| [`statusLine`](#statusline) | Ejecute su propio comando para representar una [línea de estado](/docs/es/statusline) debajo del indicador | Interfaz y terminal | Cualquier archivo |787| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | Omita el diálogo de confirmación antes del [modo bypassPermissions](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Configuración de permisos | User, local, or managed |

788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Enumere los [marketplace](/docs/es/plugins/overview) que los usuarios pueden agregar e instalar | Plugins y skills | Administrado |788| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | Omita la [verificación de nombre de host de WebFetch](/docs/es/tools-reference#webfetch-tool-behavior) cuando Anthropic no es accesible | Privacidad y telemetría | Any file |

789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloquee [skills](/docs/es/skills), [agentes](/docs/es/sub-agents), [hooks](/docs/es/hooks), y [servidores MCP](/docs/es/mcp) de fuentes de usuario y proyecto | Plugins y skills | Administrado |789| [`spellcheck`](#spellcheck) | Subraye las palabras mal escritas en la entrada del prompt con un [corrector ortográfico](/docs/es/interactive-mode#check-spelling-as-you-type) que instale | Interfaz y terminal | User or managed |

790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Bloquee [agentes](/docs/es/sub-agents) a fuentes de plugin y administradas | Plugins y skills | Administrado |790| [`spinnerTipsEnabled`](#spinnertipsenabled) | Oculte consejos en el spinner mientras Claude trabaja | Interfaz y terminal | Any file |

791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Bloquee [hooks](/docs/es/hooks) a fuentes de plugin y administradas | Plugins y skills | Administrado |791| [`spinnerTipsOverride`](#spinnertipsoverride) | Agregue sus propios consejos a la rotación del spinner, o reemplace los consejos integrados | Interfaz y terminal | Any file |

792| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Bloquee [servidores MCP](/docs/es/mcp) a fuentes de plugin y administradas | Plugins y skills | Administrado |792| [`spinnerVerbs`](#spinnerverbs) | Agregue o reemplace los verbos mostrados mientras se ejecuta un turno | Interfaz y terminal | Any file |

793| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Bloquee [skills](/docs/es/skills) a fuentes de plugin y administradas | Plugins y skills | Administrado |793| [`sshConfigs`](#sshconfigs) | Agregue [conexiones SSH](/docs/es/desktop#pre-configure-ssh-connections-for-your-team) al menú desplegable del entorno de Desktop | Remoto, escritorio y notificaciones | User or managed |

794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Elija la [duración del caché de indicación](/docs/es/prompt-caching#cache-lifetime) para subagentes y otras solicitudes fuera de la conversación principal | Modelo y respuestas | Cualquier archivo |794| [`sshHostAllowlist`](#sshhostallowlist) | Limite qué hosts pueden alcanzar las [sesiones SSH de Desktop](/docs/es/desktop#restrict-which-ssh-hosts-users-can-connect-to) | Remoto, escritorio y notificaciones | Managed |

795| [`subagentStatusLine`](#subagentstatusline) | Reescriba filas en la [pantalla de tareas del subagente](/docs/es/sub-agents) con su propio comando | Interfaz y terminal | Cualquier archivo |795| [`statusLine`](#statusline) | Ejecute su propio comando para representar una [línea de estado](/docs/es/statusline) debajo del prompt | Interfaz y terminal | Any file |

796| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambie modelos automáticamente o pause cuando un [clasificador de seguridad](/docs/es/model-config#ask-before-switching) marca una solicitud | Modelo y respuestas | Cualquier archivo |796| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Lista de permitidos de las fuentes del [marketplace](/docs/es/plugins/overview) que los usuarios pueden agregar e instalar | Plugins y skills | Managed |

797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Deje de cargar los [plugins habilitados en su cuenta de claude.ai](/docs/es/plugins/overview) y deje de descargar nuevos | Plugins y skills | Usuario, local o administrado |797| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloquee los [skills](/docs/es/skills), [agentes](/docs/es/sub-agents), [hooks](/docs/es/hooks) y [servidores MCP](/docs/es/mcp) de fuentes de usuario y proyecto | Plugins y skills | Managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Deje de cargar los [skills habilitados en su cuenta de claude.ai](/docs/es/skills#how-synced-skills-behave) y deje de descargar nuevos | Plugins y skills | Usuario, local o administrado |798| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Bloquee los [agentes](/docs/es/sub-agents) a fuentes de plugin y administradas | Plugins y skills | Managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desactive el resaltado de sintaxis en diffs y bloques de código | Interfaz y terminal | Cualquier archivo |799| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Bloquee los [hooks](/docs/es/hooks) a fuentes de plugin y administradas | Plugins y skills | Managed |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Removido en v2.1.277, junto con la herramienta `TaskOutput` que dimensionaba | Memoria y contexto | Cualquier archivo |800| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | Bloquee los [servidores MCP](/docs/es/mcp) a fuentes de plugin y administradas | Plugins y skills | Managed |

801| [`teammateDefaultModel`](#teammatedefaultmodel) | Eliminado en v2.1.234; vea [Especificar compañeros de equipo y modelos](/docs/es/agent-teams#specify-teammates-and-models) para cómo Claude Code elige el modelo de un compañero de equipo | Configuración global | Configuración global |801| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | Bloquee los [skills](/docs/es/skills) a fuentes de plugin y administradas | Plugins y skills | Managed |

802| [`teammateMode`](#teammatemode) | Elija cómo [se muestran los compañeros de equipo del equipo de agentes](/docs/es/agent-teams#choose-a-display-mode) | Agentes, sesiones y worktrees | Cualquier archivo |802| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Elija la [duración del caché de prompt](/docs/es/prompt-caching#cache-lifetime) para subagentes y otras solicitudes fuera de la conversación principal | Modelo y respuestas | Any file |

803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculte la barra de progreso del terminal en terminales que la admitan | Interfaz y terminal | Cualquier archivo |803| [`subagentStatusLine`](#subagentstatusline) | Reescriba filas en la [pantalla de tareas del subagente](/docs/es/sub-agents) con su propio comando | Interfaz y terminal | Any file |

804| [`terminalTitleFromRename`](#terminaltitlefromrename) | Impida que [`/rename`](/docs/es/sessions#name-your-sessions) y `--name` cambien el título de la pestaña del terminal | Interfaz y terminal | Cualquier archivo |804| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambie modelos automáticamente o pause cuando un [clasificador de seguridad](/docs/es/model-config#ask-before-switching) marque una solicitud | Modelo y respuestas | Any file |

805| [`theme`](#theme) | Elija el [tema de color](/docs/es/terminal-config#match-the-color-theme) de la interfaz, integrado o personalizado | Interfaz y terminal | Cualquier archivo |805| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Deje de cargar los [plugins habilitados en su cuenta de claude.ai](/docs/es/plugins/loading#synced-plugins) y deje de descargar nuevos | Plugins y skills | User, local, or managed |

806| [`timeFormat`](#timeformat) | Muestre las horas en la interfaz en un reloj de 12 horas o 24 horas, en UTC, o con un patrón strftime | Interfaz y terminal | Cualquier archivo |806| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Deje de cargar los [skills habilitados en su cuenta de claude.ai](/docs/es/skills#how-synced-skills-behave) y deje de descargar nuevos | Plugins y skills | User, local, or managed |

807| [`timeZone`](#timezone) | Muestre las horas en la interfaz en una zona horaria distinta a la de su sistema | Interfaz y terminal | Cualquier archivo |807| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desactive el resaltado de sintaxis en diffs y bloques de código | Interfaz y terminal | Any file |

808| [`tui`](#tui) | Elija el representador [pantalla completa](/docs/es/fullscreen) o terminal clásico | Interfaz y terminal | Cualquier archivo |808| [`taskOutputMaxChars`](#taskoutputmaxchars) | Eliminado en v2.1.277, junto con la herramienta `TaskOutput` que dimensionaba | Memoria y contexto | Any file |

809| [`ultracode`](#ultracode) | Haga que Claude planifique un [flujo de trabajo](/docs/es/workflows#let-claude-decide-with-ultracode) para cada tarea sustancial sin ser preguntado | Modelo y respuestas | Cualquier archivo |809| [`teammateDefaultModel`](#teammatedefaultmodel) | Eliminado en v2.1.234; vea [Especificar compañeros de equipo y modelos](/docs/es/agent-teams#specify-teammates-and-models) para cómo Claude Code elige el modelo de un compañero de equipo | Configuración de configuración global | Global config |

810| [`useAutoModeDuringPlan`](#useautomodeduringplan) | Permita que el clasificador de [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) revise comandos shell en [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode); establezca `false` para obtener indicadores en su lugar | Configuración de permisos | Usuario, local o administrado |810| [`teammateMode`](#teammatemode) | Elija cómo se muestran los [compañeros de equipo del equipo de agentes](/docs/es/agent-teams#choose-a-display-mode) | Agentes, sesiones y worktrees | Any file |

811| [`verbose`](#verbose) | Muestre [salida de herramienta completa](/docs/es/cli-reference#cli-flags) en lugar de resúmenes truncados; `viewMode` tiene prioridad cuando ambos se establecen | Interfaz y terminal | Cualquier archivo |811| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculte la barra de progreso del terminal en terminales que la admitan | Interfaz y terminal | Any file |

812| [`viewMode`](#viewmode) | Inicie cada sesión en [vista predeterminada, detallada o enfocada](/docs/es/cli-reference#cli-flags) | Interfaz y terminal | Cualquier archivo |812| [`terminalTitleFromRename`](#terminaltitlefromrename) | Impida que [`/rename`](/docs/es/sessions#name-your-sessions) y `--name` cambien el título de la pestaña del terminal | Interfaz y terminal | Any file |

813| [`vimInsertModeRemaps`](#viminsertmoderemaps) | Asigne una [secuencia de modo INSERT](/docs/es/interactive-mode#remap-insert-mode-key-sequences) de dos teclas como `jj` a Escape | Interfaz y terminal | Usuario o administrado |813| [`theme`](#theme) | Elija el [tema de color](/docs/es/terminal-config#match-the-color-theme) de la interfaz, integrado o personalizado | Interfaz y terminal | Any file |

814| [`voice`](#voice) | Active la [dictación por voz](/docs/es/voice-dictation) y elija modo de mantener o tocar | Interfaz y terminal | Cualquier archivo |814| [`timeFormat`](#timeformat) | Muestre las horas en la interfaz en un reloj de 12 horas o 24 horas, en UTC, o con un patrón strftime | Interfaz y terminal | Any file |

815| [`voiceEnabled`](#voiceenabled) | Active la [dictación por voz](/docs/es/voice-dictation) con la forma de una sola tecla más antigua | Interfaz y terminal | Cualquier archivo |815| [`timeZone`](#timezone) | Muestre las horas en la interfaz en una zona horaria distinta a la de su sistema | Interfaz y terminal | Any file |

816| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | Desactive la [aceleración de rueda del ratón](/docs/es/fullscreen#mouse-wheel-scrolling) en la representación de pantalla completa | Interfaz y terminal | Cualquier archivo |816| [`tui`](#tui) | Elija el [renderizador de pantalla completa](/docs/es/fullscreen) o terminal clásico | Interfaz y terminal | Any file |

817| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | Permita que la palabra `ultracode` en un indicador inicie un [flujo de trabajo](/docs/es/workflows); establezca `false` para escribirla sin iniciar uno | Hooks y automatización | Cualquier archivo |817| [`ultracode`](#ultracode) | Haga que Claude planifique un [workflow](/docs/es/workflows#let-claude-decide-with-ultracode) para cada tarea sustancial sin ser preguntado | Modelo y respuestas | Any file |

818| [`workflowSizeGuideline`](#workflowsizeguideline) | Establezca el número de agentes que Claude apunta en [flujos de trabajo dinámicos](/docs/es/workflows) | Hooks y automatización | Cualquier archivo |818| [`useAutoModeDuringPlan`](#useautomodeduringplan) | Permita que el [clasificador de modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) revise comandos shell en el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode); establezca `false` para obtener prompts en su lugar | Configuración de permisos | User, local, or managed |

819| [`worktree`](#worktree) | Configure cómo Claude Code crea git [worktrees](/docs/es/worktrees) | Agentes, sesiones y worktrees | Cualquier archivo |819| [`verbose`](#verbose) | Muestre la [salida completa de herramientas](/docs/es/cli-reference#cli-flags) en lugar de resúmenes truncados; `viewMode` tiene prioridad cuando ambos se establecen | Interfaz y terminal | Any file |

820| [`worktree.baseRef`](#worktree-baseref) | Rama nuevos [worktrees](/docs/es/worktrees) desde la rama predeterminada remota o su HEAD local | Agentes, sesiones y worktrees | Cualquier archivo |820| [`viewMode`](#viewmode) | Inicie cada sesión en [vista predeterminada, detallada o enfocada](/docs/es/cli-reference#cli-flags) | Interfaz y terminal | Any file |

821| [`worktree.bgIsolation`](#worktree-bgisolation) | Permita que las sesiones de fondo editen la copia de trabajo sin un [worktree](/docs/es/worktrees) | Agentes, sesiones y worktrees | Cualquier archivo |821| [`vimInsertModeRemaps`](#viminsertmoderemaps) | Asigne una [secuencia de modo INSERT](/docs/es/interactive-mode#remap-insert-mode-key-sequences) de dos teclas como `jj` a Escape | Interfaz y terminal | User or managed |

822| [`worktree.sparsePaths`](#worktree-sparsepaths) | Extraiga solo los directorios que necesita en cada [worktree](/docs/es/worktrees) | Agentes, sesiones y worktrees | Cualquier archivo |822| [`voice`](#voice) | Active la [dictación por voz](/docs/es/voice-dictation) y elija el modo de mantener o tocar | Interfaz y terminal | Any file |

823| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Enlace simbólicamente directorios grandes en cada [worktree](/docs/es/worktrees) en lugar de duplicarlos | Agentes, sesiones y worktrees | Cualquier archivo |823| [`voiceEnabled`](#voiceenabled) | Active la [dictación por voz](/docs/es/voice-dictation) con la forma de una sola tecla más antigua | Interfaz y terminal | Any file |

824| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Haga que WSL lea [configuración administrada](/docs/es/managed-settings) de la cadena de política de Windows | Configuración empresarial y administrada | Administrado |824| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | Desactive la [aceleración de rueda del ratón](/docs/es/fullscreen#mouse-wheel-scrolling) en la representación de pantalla completa | Interfaz y terminal | Any file |

825| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | Permita que la palabra `ultracode` en un prompt inicie un [workflow](/docs/es/workflows); establezca `false` para escribirla sin iniciar uno | Hooks y automatización | Any file |

826| [`workflowSizeGuideline`](#workflowsizeguideline) | Establezca el número de agentes que Claude apunta en los [workflows dinámicos](/docs/es/workflows) | Hooks y automatización | Any file |

827| [`worktree`](#worktree) | Configure cómo Claude Code crea [worktrees](/docs/es/worktrees) de git | Agentes, sesiones y worktrees | Any file |

828| [`worktree.baseRef`](#worktree-baseref) | Rama nuevos [worktrees](/docs/es/worktrees) desde la rama predeterminada remota o su HEAD local | Agentes, sesiones y worktrees | Any file |

829| [`worktree.bgIsolation`](#worktree-bgisolation) | Permita que las sesiones de fondo editen la copia de trabajo sin un [worktree](/docs/es/worktrees) | Agentes, sesiones y worktrees | Any file |

830| [`worktree.sparsePaths`](#worktree-sparsepaths) | Verifique solo los directorios que necesita en cada [worktree](/docs/es/worktrees) | Agentes, sesiones y worktrees | Any file |

831| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | Cree enlaces simbólicos de directorios grandes en cada [worktree](/docs/es/worktrees) en lugar de duplicarlos | Agentes, sesiones y worktrees | Any file |

832| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | Haga que WSL lea la [configuración administrada](/docs/es/managed-settings) de la cadena de política de Windows | Configuración empresarial y administrada | Managed |

825 833 

826<h2 id="model-and-responses">834<h2 id="model-and-responses">

827 Modelo y respuestas835 Modelo y respuestas


858 866 

859Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.867Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.

860 868 

861En modelos que siempre piensan, como Opus 5.5 y los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](/docs/es/third-party-integrations) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.869En modelos que siempre piensan, como Opus 5.5, Sonnet 5.5 y los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](/docs/es/third-party-integrations) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

862 870 

863* **Alcance**: [`Cualquier archivo`](#scopes)871* **Alcance**: [`Cualquier archivo`](#scopes)

864* **Tipo**: Booleano872* **Tipo**: Booleano


877 `availableModels`885 `availableModels`

878</h3>886</h3>

879 887 

880Restrinja qué modelos pueden seleccionar las personas para la sesión principal, [subagentes](/docs/es/sub-agents), [skills](/docs/es/skills) y el [advisor](/docs/es/advisor). Una lista administrada limita `/model`, `--model` y la clave `model` en los archivos propios del desarrollador; un modelo fuera de ella no puede seleccionarse. Por sí solo, esto no afecta la opción Predeterminado; emparéjelo con [`enforceAvailableModels`](#enforceavailablemodels) para eso.888Restrinja qué modelos pueden seleccionar las personas para la sesión principal, [subagentes](/docs/es/sub-agents), [skills](/docs/es/skills) y el [advisor](/docs/es/advisor). Una lista administrada limita `/model`, `--model` y la clave `model` en los archivos propios del desarrollador; un modelo fuera de ella no puede seleccionarse. Con la coincidencia de prefijo predeterminada, esto no afecta la opción Predeterminado por sí sola; emparéjelo con [`enforceAvailableModels`](#enforceavailablemodels) para eso.

881 889 

882* **Alcance**: [`Cualquier archivo`](#scopes). Impleméntelo en configuraciones administradas para aplicarlo a una organización.890* **Alcance**: [`Cualquier archivo`](#scopes). Impleméntelo en configuraciones administradas para aplicarlo a una organización.

883* **Tipo**: matriz de alias o IDs de modelos891* **Tipo**: matriz de alias o IDs de modelos


891}899}

892```900```

893 901 

894Consulte [Restringir la selección de modelos](/docs/es/model-config#restrict-model-selection).902Una entrada de ID de modelo como `"claude-opus-5"` también permite versiones posteriores que la extienden, como Opus 5.5. Para bloquear una de esas versiones, use [`deniedModels`](#deniedmodels). Para hacer que cada entrada de ID de modelo permita solo la versión que nombra, use [`availableModelsMatch`](#availablemodelsmatch). Consulte [Restringir la selección de modelos](/docs/es/model-config#restrict-model-selection).

903 

904<h3 id="availablemodelsmatch">

905 `availableModelsMatch`

906</h3>

907 

908Elija cómo las entradas de [`availableModels`](#availablemodels) coinciden con IDs de modelos. De forma predeterminada, una entrada de ID de modelo también permite versiones posteriores que la extienden, por lo que `"claude-opus-5"` permite Opus 5.5. Con `"exact"`, cada entrada de ID de modelo permite solo la versión que nombra, por lo que una versión más nueva de ese modelo permanece bloqueada hasta que la enumere. Requiere Claude Code v2.1.283 o posterior.

909 

910* **Alcance**: [`Administrado`](#scopes). Claude Code ignora la clave en configuraciones de usuario, proyecto y local y en `--settings`, con una advertencia

911* **Tipo**: cadena, uno de:

912 * `"prefix"`: una entrada de ID de modelo permite su versión y cualquier ID de modelo que la extienda con otro segmento

913 * `"exact"`: una entrada de ID de modelo permite solo la versión que nombra, incluidos los IDs fechados de esa versión, por lo que `"claude-opus-5"` permite Opus 5 pero no `claude-opus-5-5`. Un alias de familia como `"opus"` aún permite toda la familia, y las entradas `best`, `opusplan` y `default` se ignoran

914* **Predeterminado**: `"prefix"`

915 

916Este ejemplo permite Opus 5 y Sonnet 5 y ningún lanzamiento posterior de ninguno:

917 

918```json managed-settings.json theme={null}

919{

920 "availableModels": ["claude-opus-5", "claude-sonnet-5"],

921 "availableModelsMatch": "exact"

922}

923```

924 

925Con `"exact"`, la opción Predeterminado también se limita a los modelos enumerados siempre que la lista nombre al menos un modelo o familia. Consulte [Bloquear modelos o versiones específicas](/docs/es/model-config#block-specific-models-or-versions).

926 

927<h3 id="deniedmodels">

928 `deniedModels`

929</h3>

930 

931Bloquee modelos específicos, con o sin una lista de permitidos [`availableModels`](#availablemodels) e incluso cuando esa lista los permite. Claude Code oculta un modelo bloqueado del selector `/model`, y el modelo no puede seleccionarse en ningún lugar donde se aplique `availableModels`. Una sesión en la opción Predeterminado tampoco ejecuta un modelo bloqueado, como describe [Bloquear modelos o versiones específicas](/docs/es/model-config#block-specific-models-or-versions). Requiere Claude Code v2.1.283 o posterior.

932 

933* **Alcance**: [`Administrado`](#scopes). Claude Code ignora la clave en configuraciones de usuario, proyecto y local y en `--settings`, con una advertencia

934* **Tipo**: matriz de alias o IDs de modelos

935 * Un alias de familia como `"opus"` bloquea cada modelo en esa familia

936 * Un ID de modelo como `"claude-opus-5-5"` bloquea esa versión en cada ortografía, incluidos IDs fechados e IDs específicos del proveedor

937 * Un ID de modelo sin versión menor, como `"claude-opus-5"`, también bloquea versiones menores posteriores como Opus 5.5. Escriba `"claude-opus-5-0"` para bloquear solo Opus 5

938 * Las entradas `best`, `opusplan` y `default` se ignoran

939* **Predeterminado**: sin establecer, por lo que ningún modelo está bloqueado

940 

941Este ejemplo permite modelos Opus y Sonnet y bloquea Opus 5.5:

942 

943```json managed-settings.json theme={null}

944{

945 "availableModels": ["opus", "sonnet"],

946 "deniedModels": ["claude-opus-5-5"]

947}

948```

949 

950Consulte [Bloquear modelos o versiones específicas](/docs/es/model-config#block-specific-models-or-versions).

895 951 

896<h3 id="effortlevel">952<h3 id="effortlevel">

897 `effortLevel`953 `effortLevel`


926 `enforceAvailableModels`982 `enforceAvailableModels`

927</h3>983</h3>

928 984 

929El selector `/model` tiene una opción **Predeterminado** que se resuelve a su [modelo predeterminado de la organización](/docs/es/model-config#organization-default-model) cuando se aplica una, y de lo contrario al predeterminado de su tipo de cuenta. Una lista de permitidos [`availableModels`](#availablemodels) limita los modelos que puede nombrar, pero por sí sola deja **Predeterminado** solo, por lo que **Predeterminado** aún puede resolverse a un modelo fuera de la lista. Esta clave cierra esa brecha. Requiere Claude Code v2.1.175 o posterior.985El selector `/model` tiene una opción **Predeterminado**, y [`default` model setting](/docs/es/model-config#default-model-setting) describe el modelo al que se resuelve. Una lista de permitidos [`availableModels`](#availablemodels) limita los modelos que puede nombrar, pero con la [coincidencia de prefijo](#availablemodelsmatch) predeterminada no remapea el predeterminado de su tipo de cuenta, por lo que **Predeterminado** aún puede resolverse a un modelo fuera de la lista. Esta clave cierra esa brecha. Requiere Claude Code v2.1.175 o posterior.

930 986 

931Cuando su organización implementa cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada e la ignora en sus otros archivos.987Cuando su organización implementa cualquier configuración administrada, Claude Code lee esta clave solo de la fuente administrada e la ignora en sus otros archivos.

932 988 

933* **Alcance**: [`Cualquier archivo`](#scopes)989* **Alcance**: [`Cualquier archivo`](#scopes)

934* **Tipo**: Booleano990* **Tipo**: Booleano

935 * `true`: cuando **Predeterminado** se resolvería a un modelo fuera de `availableModels`, Claude Code lo resuelve al primer modelo disponible en la lista991 * `true`: cuando **Predeterminado** se resolvería a un modelo fuera de `availableModels`, Claude Code lo resuelve al primer modelo disponible en la lista

936 * `false`: **Predeterminado** se resuelve como de costumbre, incluso a un modelo fuera de `availableModels`992 * `false`: esta clave no cambia cómo se resuelve **Predeterminado**

937* **Predeterminado**: `false`993* **Predeterminado**: `false`

938 994 

939Este ejemplo restringe las selecciones nombradas a modelos Sonnet y Haiku y hace que **Predeterminado** se resuelva al primero de ellos que esté disponible:995Este ejemplo restringe las selecciones nombradas a modelos Sonnet y Haiku y hace que **Predeterminado** se resuelva al primero de ellos que esté disponible:


1015 `language`1071 `language`

1016</h3>1072</h3>

1017 1073 

1018Haga que Claude responda en un idioma distinto del inglés de forma predeterminada. No hay una lista fija para respuestas: Claude Code agrega el valor textualmente al mensaje del sistema como una instrucción para responder siempre en ese idioma, por lo que cualquier nombre de idioma que Claude pueda leer funciona. Claude Code no valida el valor, por lo que un nombre mal escrito llega a Claude tal como está escrito en lugar de producir un error. El mismo valor establece el idioma para [dictado de voz](/docs/es/voice-dictation#change-the-dictation-language), que tiene una lista fija de [idiomas de dictado admitidos](/docs/es/voice-dictation#change-the-dictation-language), y para títulos de sesión generados automáticamente.1074Haga que Claude responda en un idioma distinto del inglés de forma predeterminada. No hay una lista fija para respuestas: Claude Code agrega el valor textualmente a Claude como una instrucción para responder siempre en ese idioma, por lo que cualquier nombre de idioma que Claude pueda leer funciona. Claude Code no valida el valor, por lo que un nombre mal escrito llega a Claude tal como está escrito en lugar de producir un error. El mismo valor establece el idioma para [dictado de voz](/docs/es/voice-dictation#change-the-dictation-language), que tiene una lista fija de [idiomas de dictado admitidos](/docs/es/voice-dictation#change-the-dictation-language), y para títulos de sesión generados automáticamente.

1019 1075 

1020* **Alcance**: [`Cualquier archivo`](#scopes)1076* **Alcance**: [`Cualquier archivo`](#scopes)

1021* **Tipo**: cadena, cualquier nombre de idioma, como `"japanese"`, `"spanish"` o `"french"`; Claude Code no lo valida1077* **Tipo**: cadena, cualquier nombre de idioma, como `"japanese"`, `"spanish"` o `"french"`; Claude Code no lo valida


1036* **Alcance**: [`Cualquier archivo`](#scopes). Impleméntelo en configuraciones administradas para aplicarlo a una organización. Cuando varios alcances establecen un límite, se aplica el más bajo, por lo que un límite establecido en un alcance no puede elevarse desde otro1092* **Alcance**: [`Cualquier archivo`](#scopes). Impleméntelo en configuraciones administradas para aplicarlo a una organización. Cuando varios alcances establecen un límite, se aplica el más bajo, por lo que un límite establecido en un alcance no puede elevarse desde otro

1037* **Tipo**: cadena, uno de `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Un valor `"max"` no establece límite1093* **Tipo**: cadena, uno de `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Un valor `"max"` no establece límite

1038* **Predeterminado**: sin establecer, por lo que no se aplica límite1094* **Predeterminado**: sin establecer, por lo que no se aplica límite

1039* **Efecto en ultracode**: un límite por debajo de `xhigh` hace que [ultracode](#ultracode) no esté disponible en los modelos a los que se aplica el límite

1040* **Límites por modelo**: agregue `maxEffortLevel` a la entrada [`modelSettings`](#modelsettings) de un modelo. Esa entrada reemplaza esta clave solo para el modelo dentro de la fuente de configuración que establece ambas, como su configuración de usuario o una [fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Establezca `"max"` allí para eximir el modelo del límite de esa fuente; Claude Code aún aplica límites de otras fuentes1095* **Límites por modelo**: agregue `maxEffortLevel` a la entrada [`modelSettings`](#modelsettings) de un modelo. Esa entrada reemplaza esta clave solo para el modelo dentro de la fuente de configuración que establece ambas, como su configuración de usuario o una [fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Establezca `"max"` allí para eximir el modelo del límite de esa fuente; Claude Code aún aplica límites de otras fuentes

1041 1096 

1042Este ejemplo limita cada modelo a `medium` y exime a Sonnet 4.6:1097Este ejemplo limita cada modelo a `medium` y exime a Sonnet 4.6:


1134 1189 

1135| Campo | Tipo | Qué hace |1190| Campo | Tipo | Qué hace |

1136| :- | :- | :- |1191| :- | :- | :- |

1137| `options` | matriz de filas, cada una con un `model` requerido y un `label` y `description` opcionales | Las filas que muestra el selector, en este orden, excepto que una fila atenuada se mueve al final. Sin un `label`, Claude Code titula la fila con el nombre integrado para un modelo que conoce, o el ID del modelo de lo contrario, y sin una `description` escribe una segunda línea genérica |1192| `options` | matriz de filas, cada una con un `model` requerido y un `label`, `description` y `behavesAs` opcionales | Las filas que muestra el selector, en este orden, excepto que una fila atenuada se mueve al final. Sin un `label`, Claude Code titula la fila con el nombre integrado para un modelo que conoce, o el ID del modelo de lo contrario, y sin una `description` escribe una segunda línea genérica |

1138| `replaceBuiltInOptions` | Booleano, predeterminado `false` | Establézcalo en `true` para mostrar solo estas filas, **Predeterminado** y una fila para el modelo que la sesión ya está usando. Déjelo sin establecer para agregar estas filas después de la alineación integrada |1193| `replaceBuiltInOptions` | Booleano, predeterminado `false` | Establézcalo en `true` para mostrar solo estas filas, **Predeterminado** y una fila para el modelo que la sesión ya está usando. Déjelo sin establecer para agregar estas filas después de la alineación integrada |

1139 1194 

1195Una entrada en `options` también puede llevar una cadena `behavesAs` opcional junto a su `model`, que requiere v2.1.257 o posterior. Establézcala al ID de un modelo que su versión de Claude Code ya conoce, como `claude-opus-4-8`, en una entrada cuyo `model` es más nuevo que su versión. Claude Code entonces aplica las capacidades y valores predeterminados de esfuerzo de ese modelo conocido a la entrada en lugar de tratar su modelo como desconocido. La etiqueta de la entrada y el ID del modelo que Claude Code envía en solicitudes no cambian.

1196 

1140Con `replaceBuiltInOptions` activado, Claude Code oculta todas las demás filas: la alineación integrada, las filas que agrega para entradas [`availableModels`](#availablemodels), los modelos que [descubrimiento de puerta de enlace](/docs/es/llm-gateway-protocol#model-discovery) encontró, y [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/es/model-config#add-a-custom-model-option). Con él desactivado, Claude Code omite un modelo listado que la alineación integrada ya cubre. Una etiqueta cambia lo que muestra el selector, no qué modelo ejecuta Claude Code.1197Con `replaceBuiltInOptions` activado, Claude Code oculta todas las demás filas: la alineación integrada, las filas que agrega para entradas [`availableModels`](#availablemodels), los modelos que [descubrimiento de puerta de enlace](/docs/es/llm-gateway-protocol#model-discovery) encontró, y [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/es/model-config#add-a-custom-model-option). Con él desactivado, Claude Code omite un modelo listado que la alineación integrada ya cubre. Una etiqueta cambia lo que muestra el selector, no qué modelo ejecuta Claude Code.

1141 1198 

1142Una lista de permitidos [`availableModels`](#availablemodels) aún se aplica a estas filas. Antes de agregar un modelo listado a la lista de permitidos, lea [Comportamiento de fusión](/docs/es/model-config#merge-behavior): un ID de modelo específico reduce la entrada comodín de su familia. Claude Code también verifica cada fila contra la sesión antes de mostrar el selector:1199Una lista de permitidos [`availableModels`](#availablemodels) aún se aplica a estas filas. Antes de agregar un modelo listado a la lista de permitidos, lea [Comportamiento de fusión](/docs/es/model-config#merge-behavior): un ID de modelo específico reduce la entrada comodín de su familia. Claude Code también verifica cada fila contra la sesión antes de mostrar el selector:


1351 `ultracode`1408 `ultracode`

1352</h3>1409</h3>

1353 1410 

1354Inicie sesiones con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado. Con él activado, Claude planifica un flujo de trabajo para cada tarea sustancial en lugar de esperar a que lo pida. Claude planifica flujos de trabajo solo cuando [flujos de trabajo dinámicos](/docs/es/workflows) están habilitados para usted, su modelo admite esfuerzo `xhigh` y no se aplica [límite de esfuerzo](/docs/es/model-config#organization-effort-limits) por debajo de `xhigh`. De cualquier forma, `ultracode: true` ejecuta la sesión en esfuerzo `xhigh`, o en el límite cuando un límite de esfuerzo es más bajo. Claude Code lee esta clave pero nunca la escribe: `/effort ultracode` activa ultracode solo para la sesión actual.1411Inicie sesiones con [ultracode](/docs/es/workflows#let-claude-decide-with-ultracode) activado. Con él activado, Claude planifica un flujo de trabajo para cada tarea sustancial en lugar de esperar a que lo pida. Claude planifica flujos de trabajo solo cuando [flujos de trabajo dinámicos](/docs/es/workflows) están habilitados para usted y su modelo admite esfuerzo `xhigh`. La clave no cambia el nivel de esfuerzo de la sesión: ultracode se ejecuta en cualquier nivel que la sesión utilice. Claude Code lee esta clave pero nunca la escribe: `/effort ultracode` activa ultracode solo para la sesión actual.

1355 1412 

1356* **Alcance**: [`Cualquier archivo`](#scopes)1413* **Alcance**: [`Cualquier archivo`](#scopes)

1357* **Tipo**: Booleano1414* **Tipo**: Booleano

1358 * `true`: las sesiones comienzan en esfuerzo `xhigh`, con ultracode activado cuando flujos de trabajo dinámicos están habilitados para usted, su modelo admite `xhigh` y no se aplica límite de esfuerzo por debajo de `xhigh`1415 * `true`: las sesiones comienzan con ultracode activado cuando flujos de trabajo dinámicos están habilitados para usted y su modelo admite `xhigh`

1359 * `false`: las sesiones comienzan con ultracode desactivado1416 * `false`: las sesiones comienzan con ultracode desactivado

1360* **Predeterminado**: sin establecer, por lo que ultracode está desactivado1417* **Predeterminado**: sin establecer, por lo que ultracode está desactivado

1361* **Anulaciones por sesión**: `/effort ultracode` activa ultracode para una sesión sin esta clave. También lo hace `--effort ultracode`, que requiere Claude Code v2.1.203 o posterior1418* **Anulaciones por sesión**: `/effort ultracode` activa ultracode para una sesión sin esta clave, y `/effort ultracode off` lo desactiva para una sesión cuando esta clave es `true`. La bandera `--effort ultracode` también lo activa para una sesión, en esfuerzo `xhigh`, y requiere Claude Code v2.1.203 o posterior

1362 1419 

1363```json settings.json theme={null}1420```json settings.json theme={null}

1364{1421{


1366}1423}

1367```1424```

1368 1425 

1369Ultracode ejecuta la sesión en esfuerzo `xhigh` y tiene precedencia sobre `effortLevel` y entradas [`modelSettings`](#modelsettings). Si se aplica un [límite de esfuerzo](/docs/es/model-config#organization-effort-limits) por debajo de `xhigh` al modelo, como una configuración [`maxEffortLevel`](#maxeffortlevel), la sesión se ejecuta en el límite en su lugar y ultracode permanece desactivado. Claude entonces no planifica flujos de trabajo por su cuenta, y `/effort` no ofrece `ultracode`. Una solicitud de control `apply_flag_settings` del Agent SDK también acepta la clave.1426El nivel de esfuerzo de la sesión proviene de [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings) y las otras [fuentes de esfuerzo](/docs/es/model-config#adjust-effort-level), y un [límite de esfuerzo](/docs/es/model-config#organization-effort-limits) como [`maxEffortLevel`](#maxeffortlevel) reduce ese nivel sin desactivar ultracode. Esto y la forma `/effort ultracode off` requieren Claude Code v2.1.284 o posterior. Antes de v2.1.284, `ultracode: true` ejecutaba la sesión en esfuerzo `xhigh`, y un límite de esfuerzo por debajo de `xhigh` mantenía ultracode desactivado. Una solicitud de control `apply_flag_settings` del Agent SDK también acepta la clave.

1370 1427 

1371<h2 id="permission-settings">1428<h2 id="permission-settings">

1372 Configuración de permisos1429 Configuración de permisos


1489 `useAutoModeDuringPlan`1546 `useAutoModeDuringPlan`

1490</h3>1547</h3>

1491 1548 

1492Elija si Claude Code usa el clasificador del modo automático para revisar comandos shell en modo de plan. Con el valor predeterminado `true`, el clasificador revisa cada comando durante la planificación cuando el modo automático está disponible y no ve ningún aviso. Establezca `false` para obtener un aviso de permisos para cada comando fuera del conjunto integrado de solo lectura. Aparece en `/config` como **Use auto mode during plan**.1549Elija si Claude Code usa el clasificador del modo automático para revisar comandos shell en modo de plan. Con el valor predeterminado `true`, el clasificador revisa cada comando durante la planificación cuando el modo automático está disponible y no ve ningún aviso, excepto para [eliminaciones de ruta crítica](/docs/es/permission-modes#critical-paths). Establezca `false` para obtener un aviso de permisos para cada comando fuera del conjunto integrado de solo lectura. Aparece en `/config` como **Use auto mode during plan**.

1493 1550 

1494* **Scope**: [`User, local, or managed`](#scopes). Un repositorio no puede desactivarlo para usted.1551* **Scope**: [`User, local, or managed`](#scopes). Un repositorio no puede desactivarlo para usted.

1495* **Type**: Boolean1552* **Type**: Boolean

1496 * `true`: lo mismo que sin establecer; cuando el modo automático está disponible, el clasificador revisa cada comando shell durante la planificación en lugar de solicitarle confirmación. Un `false` en cualquiera de estos archivos aún lo desactiva1553 * `true`: lo mismo que sin establecer; cuando el modo automático está disponible, el clasificador revisa cada comando shell durante la planificación en lugar de solicitarle confirmación, excepto [eliminaciones de ruta crítica](/docs/es/permission-modes#critical-paths). Un `false` en cualquiera de estos archivos aún lo desactiva

1497 * `false`: obtiene un aviso de permisos para cada comando fuera del conjunto integrado de solo lectura1554 * `false`: obtiene un aviso de permisos para cada comando fuera del conjunto integrado de solo lectura

1498* **Default**: `true`1555* **Default**: `true`

1499 1556 


2314}2371}

2315```2372```

2316 2373 

2317Las rutas usan los mismos [prefijos](#sandbox-path-prefixes) que la configuración `sandbox.filesystem.*`, y Claude Code fusiona las matrices de todos los ámbitos de configuración que carga la sesión. [Protect credentials](/docs/es/sandboxing#protect-credentials) cubre lo que aún se aplica de fuentes que excluye con `--setting-sources`. `mask` entries require Claude Code v2.1.221 or later.2374Las rutas usan los mismos [prefijos](#sandbox-path-prefixes) que la configuración `sandbox.filesystem.*`, y Claude Code fusiona las matrices de todos los ámbitos de configuración que carga la sesión. [Protect credentials](/docs/es/sandboxing#protect-credentials) cubre lo que aún se aplica de fuentes que excluye con `--setting-sources`. Las entradas `mask` requieren Claude Code v2.1.221 o posterior.

2318 2375 

2319La sustitución `mask` se ejecuta solo a través del proxy de sandbox, así que establezca [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de prueba HTTP simple. `mask` se aplica a un único archivo, así que enumere cada archivo de credenciales individualmente. Claude Code acepta pero ignora los campos `mask` en una entrada `deny`. [Mask credential files](/docs/es/sandboxing#mask-credential-files) cubre qué fuentes de configuración se honran y cuándo una entrada vuelve a `deny`.2376La sustitución `mask` se ejecuta solo a través del proxy de sandbox, así que establezca [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de prueba HTTP simple. `mask` se aplica a un único archivo, así que enumere cada archivo de credenciales individualmente. Claude Code acepta pero ignora los campos `mask` en una entrada `deny`. [Mask credential files](/docs/es/sandboxing#mask-credential-files) cubre qué fuentes de configuración se honran y cuándo una entrada vuelve a `deny`.

2320 2377 


2391}2448}

2392```2449```

2393 2450 

2394El `name` debe comenzar con una letra o guion bajo y contener solo letras, dígitos y guiones bajos. Claude Code fusiona las matrices de todos los ámbitos de configuración que carga la sesión, y aplica `deny` cuando la misma variable aparece con ambos modos. [Protect credentials](/docs/es/sandboxing#protect-credentials) cubre lo que aún se aplica de fuentes que excluye con `--setting-sources`. `mask` entries require Claude Code v2.1.199 or later.2451El `name` debe comenzar con una letra o guion bajo y contener solo letras, dígitos y guiones bajos. Claude Code fusiona las matrices de todos los ámbitos de configuración que carga la sesión, y aplica `deny` cuando la misma variable aparece con ambos modos. [Protect credentials](/docs/es/sandboxing#protect-credentials) cubre lo que aún se aplica de fuentes que excluye con `--setting-sources`. Las entradas `mask` requieren Claude Code v2.1.199 o posterior.

2395 2452 

2396La sustitución `mask` se ejecuta solo a través del proxy de sandbox, así que establezca [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de prueba HTTP simple; consulte [Mask environment variables](/docs/es/sandboxing#mask-environment-variables). Claude Code acepta pero ignora los campos `mask` en una entrada `deny`.2453La sustitución `mask` se ejecuta solo a través del proxy de sandbox, así que establezca [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) para redes de prueba HTTP simple; consulte [Mask environment variables](/docs/es/sandboxing#mask-environment-variables). Claude Code acepta pero ignora los campos `mask` en una entrada `deny`.

2397 2454 


3017* [`CLAUDE_CODE_MESSAGING_SOCKET` y `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/es/env-vars#variables), que Claude Code exporta a sí mismo, se ignoran de cada archivo. Ignorar la variable de socket requiere Claude Code v2.1.224 o posterior, e ignorar el token requiere v2.1.228 o posterior.3074* [`CLAUDE_CODE_MESSAGING_SOCKET` y `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/es/env-vars#variables), que Claude Code exporta a sí mismo, se ignoran de cada archivo. Ignorar la variable de socket requiere Claude Code v2.1.224 o posterior, e ignorar el token requiere v2.1.228 o posterior.

3018* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/es/sessions#name-the-project-directory-yourself), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo; requiere v2.1.234 o posterior.3075* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/es/sessions#name-the-project-directory-yourself), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo; requiere v2.1.234 o posterior.

3019* [`CLAUDE_CODE_RESTRICTED`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo.3076* [`CLAUDE_CODE_RESTRICTED`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo.

3077* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignora de cada archivo. La variable requiere Claude Code v2.1.283 o posterior.

3078* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` y `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`](/docs/es/env-vars#variables), que Claude Code lee solo del entorno de lanzamiento, se ignoran de cada archivo.

3020 3079 

3021<h3 id="filecheckpointingenabled">3080<h3 id="filecheckpointingenabled">

3022 `fileCheckpointingEnabled`3081 `fileCheckpointingEnabled`


3416* **Type**: string, `"classic"` o `"readline"`3475* **Type**: string, `"classic"` o `"readline"`

3417* **Default**: unset3476* **Default**: unset

3418 3477 

3478<h3 id="maxprosewidth">

3479 `maxProseWidth`

3480</h3>

3481 

3482Limita el ancho de la prosa en las respuestas de Claude para que las líneas permanezcan legibles en una terminal ancha. Los párrafos, encabezados, listas y citas se ajustan dentro de este número de columnas, mientras que las tablas y bloques de código mantienen el ancho completo de la terminal. Requiere Claude Code v2.1.282 o posterior.

3483 

3484* **Scope**: [`Any file`](#scopes)

3485* **Type**: número de columnas de terminal, un número entero, mínimo `40`. Claude Code ignora cualquier otro valor

3486* **Default**: unset, por lo que la prosa se ajusta al borde de la terminal

3487 

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

3489{

3490 "maxProseWidth": 80

3491}

3492```

3493 

3419<h3 id="prefersreducedmotion">3494<h3 id="prefersreducedmotion">

3420 `prefersReducedMotion`3495 `prefersReducedMotion`

3421</h3>3496</h3>


4090 4165 

4091* **Scope**: [`Any file`](#scopes)4166* **Scope**: [`Any file`](#scopes)

4092* **Type**: string4167* **Type**: string

4093* **Default**: sin establecer, por lo que Claude Code añade `Co-Authored-By: <name> <noreply@anthropic.com>`. El nombre es el modelo activo de la sesión, como `Claude Sonnet 5`.4168* **Default**: sin establecer, por lo que Claude Code añade `Co-Authored-By: <name> <noreply@anthropic.com>`. El nombre es el modelo en uso cuando se realiza el commit, como `Claude Sonnet 5`. Cuando un [subagente](/docs/es/sub-agents) realiza el commit, el tráiler nombra el modelo del subagente.

4094 * Cuando Claude Code reconoce el modelo como un modelo Claude pero no puede confirmar su versión exacta, escribe `Claude` solo.4169 * Cuando Claude Code reconoce el modelo como un modelo Claude pero no puede confirmar su versión exacta, escribe `Claude` solo.

4095 * Cuando no puede hacer coincidir el ID del modelo con ningún modelo Claude, como un modelo de terceros servido a través de un [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) personalizado, escribe `Claude Code`.4170 * Cuando no puede hacer coincidir el ID del modelo con ningún modelo Claude, como un modelo de terceros servido a través de un [`ANTHROPIC_BASE_URL`](/docs/es/env-vars) personalizado, escribe `Claude Code`.

4096 4171 


5689* **Type**: Boolean5764* **Type**: Boolean

5690 * `true`: Claude Code conecta Control remoto automáticamente cuando cada sesión interactiva comienza5765 * `true`: Claude Code conecta Control remoto automáticamente cuando cada sesión interactiva comienza

5691 * `false`: Claude Code espera `/remote-control`5766 * `false`: Claude Code espera `/remote-control`

5692* **Default**: unset, por lo que la conexión automática sigue el valor predeterminado de administrador de su organización cuando uno está establecido, y de lo contrario el valor predeterminado actual de Claude Code5767* **Default**: unset, por lo que se aplica el [valor predeterminado de conexión automática](/docs/es/remote-control#enable-remote-control-for-all-sessions)

5693* **Per-session overrides**: `--remote-control` activa Control remoto para una sesión incluso cuando esta clave es `false`, y ninguna bandera la desactiva para una sesión5768* **Per-session overrides**: `--remote-control` activa Control remoto para una sesión incluso cuando esta clave es `false`, y ninguna bandera la desactiva para una sesión

5694 5769 

5695```json settings.json theme={null}5770```json settings.json theme={null}


5841 5916 

5842Establezca la URL de la puerta de enlace a la que se conecta la pantalla `/login` de puerta de enlace en la nube, para que las personas lleguen a su [puerta de enlace en la nube](/docs/es/claude-apps-gateway) sin escribir su dirección. La pantalla no tiene un campo de URL: con esta clave establecida, muestra la URL de su puerta de enlace y se conecta cuando la persona presiona Intro; sin ella, les dice que se comuniquen con su administrador de TI.5917Establezca la URL de la puerta de enlace a la que se conecta la pantalla `/login` de puerta de enlace en la nube, para que las personas lleguen a su [puerta de enlace en la nube](/docs/es/claude-apps-gateway) sin escribir su dirección. La pantalla no tiene un campo de URL: con esta clave establecida, muestra la URL de su puerta de enlace y se conecta cuando la persona presiona Intro; sin ella, les dice que se comuniquen con su administrador de TI.

5843 5918 

5844Cualquiera de estas dos claves o `forceLoginMethod: "gateway"` hace que la máquina sea solo de puerta de enlace, por lo que `/login` se abre en la pantalla de puerta de enlace en la nube sin un selector de método de inicio de sesión. Consulte [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) para ver qué sucede con un inicio de sesión de primera parte restante o una clave de API. Establezca ambas claves para que la pantalla se conecte en lugar de mostrar un error.5919Cualquiera de estas dos claves o `forceLoginMethod: "gateway"` hace que la máquina sea solo de puerta de enlace, excepto para sesiones que seleccionen un proveedor en la nube con `CLAUDE_CODE_USE_*`. `/login` entonces se abre en la pantalla de puerta de enlace en la nube sin un selector de método de inicio de sesión. Consulte [La política del administrador requiere un inicio de sesión de puerta de enlace en la nube](/docs/es/errors#administrator-policy-requires-a-cloud-gateway-sign-in) para ver qué sucede con un inicio de sesión de primera parte restante o una clave de API. Establezca ambas claves para que la pantalla se conecte en lugar de mostrar un error.

5845 5920 

5846* **Scope**: [`Managed`](#scopes). Lea solo desde una fuente en la máquina: `managed-settings.json`, la lista de propiedades de macOS o el registro HKLM de Windows, o un auxiliar de política. Claude Code lo ignora en la configuración de HKCU y administrada por servidor.5921* **Scope**: [`Managed`](#scopes). Lea solo desde una fuente en la máquina: `managed-settings.json`, la lista de propiedades de macOS o el registro HKLM de Windows, o un auxiliar de política. Claude Code lo ignora en la configuración de HKCU y administrada por servidor.

5847* **Type**: string, una URL completa incluyendo el esquema5922* **Type**: string, una URL completa incluyendo el esquema


6094 `cleanupPeriodDays`6169 `cleanupPeriodDays`

6095</h3>6170</h3>

6096 6171 

6097Establezca cuántos días Claude Code mantiene [transcripciones de sesión y otros datos de aplicación](/docs/es/claude-directory#cleaned-up-automatically) antes de eliminarlos. Claude Code ejecuta la eliminación como un barrido de fondo después de que comienza una sesión, siempre que pueda determinar de forma segura el período de retención.6172Establezca cuántos días Claude Code mantiene [transcripciones de sesión y otros datos de aplicación](/docs/es/claude-directory#cleaned-up-automatically) antes de eliminarlos. Claude Code ejecuta la eliminación como un barrido de fondo después de que comienza una sesión, siempre que pueda determinar de forma segura el período de retención. El barrido elimina transcripciones sin mostrar un mensaje, por lo que una sesión que no ha utilizado durante más tiempo que el período de retención ya no aparece en el selector [`/resume`](/docs/es/sessions#resume-a-session).

6098 6173 

6099* **Scope**: [`Any file`](#scopes)6174* **Scope**: [`Any file`](#scopes)

6100* **Type**: número de días, un número entero, mínimo `1`6175* **Type**: número de días, un número entero, mínimo `1`


6188<span id="managed-policy" />6263<span id="managed-policy" />

6189 6264 

6190<h2 id="enterprise-and-managed-settings">6265<h2 id="enterprise-and-managed-settings">

6191 Configuración empresarial y gestionada6266 Configuración empresarial y administrada

6192</h2>6267</h2>

6193 6268 

6194Claves que una organización utiliza para calcular, actualizar y combinar configuraciones gestionadas. Consulte [Configurar ajustes gestionados](/docs/es/admin-setup).6269Claves que una organización utiliza para calcular, actualizar y combinar configuraciones administradas. Consulte [Configurar configuraciones administradas](/docs/es/admin-setup).

6195 6270 

6196<h3 id="disablesideloadflags">6271<h3 id="disablesideloadflags">

6197 `disableSideloadFlags`6272 `disableSideloadFlags`

6198</h3>6273</h3>

6199 6274 

6200Rechaza los indicadores CLI `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar, que los usuarios podrían pasar de otra manera para eludir [`strictKnownMarketplaces`](#strictknownmarketplaces) en una única ejecución. Claude Code sale con un error que nombra los indicadores rechazados y aplica la misma verificación a las superficies que inician la CLI con estos indicadores internamente, actualmente [sesiones locales de Cowork](/docs/es/desktop) en la aplicación de escritorio. En [sesiones en la nube](/docs/es/claude-code-on-the-web), Claude Code descarta los servidores MCP que el servidor entregó a través de `--mcp-config`, excepto las entradas `type: "sdk"` en proceso, e inicia la sesión. Requiere Claude Code v2.1.193 o posterior.6275Rechaza las banderas CLI `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar, que los usuarios podrían pasar de otra manera para eludir [`strictKnownMarketplaces`](#strictknownmarketplaces) en una única ejecución. Claude Code sale con un error que nombra las banderas rechazadas y aplica la misma verificación a las superficies que inician la CLI con estas banderas internamente, actualmente [sesiones locales de Cowork](/docs/es/desktop) en la aplicación de escritorio. En [sesiones en la nube](/docs/es/claude-code-on-the-web), Claude Code descarta los servidores MCP que el servidor entregó a través de `--mcp-config`, excepto las entradas `type: "sdk"` en proceso, e inicia la sesión. Requiere Claude Code v2.1.193 o posterior.

6201 6276 

6202* **Alcance**: [`Managed`](#scopes)6277* **Alcance**: [`Managed`](#scopes)

6203* **Tipo**: Booleano6278* **Tipo**: Booleano

6204 * `true`: Claude Code rechaza `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar y sale con un error que los nombra, excepto que en sesiones en la nube descarta los servidores MCP que el servidor entregó a través de `--mcp-config`, excepto las entradas `type: "sdk"` en proceso, e inicia la sesión6279 * `true`: Claude Code rechaza `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar y sale con un error que los nombra, excepto que en sesiones en la nube descarta los servidores MCP que el servidor entregó a través de `--mcp-config`, excepto las entradas `type: "sdk"` en proceso, e inicia la sesión

6205 * `false`: Claude Code acepta esos indicadores6280 * `false`: Claude Code acepta esas banderas

6206* **Predeterminado**: `false`6281* **Predeterminado**: `false`

6207 6282 

6208```json managed-settings.json theme={null}6283```json managed-settings.json theme={null}


6211}6286}

6212```6287```

6213 6288 

6214Claude Code aún acepta un `--mcp-config` cuyos servidores son todas entradas `type: "sdk"` en proceso, por lo que el SDK del Agente y la extensión de VS Code siguen funcionando. Los usuarios aún pueden agregar servidores con `claude mcp add` o un archivo `.mcp.json`; para control por servidor, establezca también [`allowedMcpServers`](/docs/es/managed-mcp). Requiere Claude Code v2.1.193 o posterior.6289Claude Code aún acepta un `--mcp-config` cuyos servidores son todas entradas `type: "sdk"` en proceso, por lo que el Agent SDK y la extensión de VS Code siguen funcionando. Los usuarios aún pueden agregar servidores con `claude mcp add` o un archivo `.mcp.json`; para control por servidor, establezca también [`allowedMcpServers`](/docs/es/managed-mcp). Requiere Claude Code v2.1.193 o posterior.

6215 6290 

6216La misma verificación cubre carpetas de plugins nombradas en la variable de entorno [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/es/env-vars#variables), que requiere Claude Code v2.1.280 o posterior. Cuando la variable nombra una carpeta, Claude Code sale con el mismo error, y el error dice que desestablezca la variable.6291La misma verificación cubre carpetas de plugins nombradas en la variable de entorno [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/es/env-vars#variables), que requiere Claude Code v2.1.280 o posterior. Cuando la variable nombra una carpeta, Claude Code sale con el mismo error, y el error dice desactivar la variable.

6217 6292 

6218En sesiones en la nube, Claude Code también ignora las actualizaciones MCP entregadas por el servidor a mitad de sesión, la ruta detrás de la configuración de sesión en la nube y llamadas `setMcpServers()` del SDK que llegan a esas sesiones. Las entradas `type: "sdk"` en proceso permanecen exentas allí también. Antes de v2.1.239, un `--mcp-config` entregado por el servidor bloqueaba el inicio de una sesión en la nube.6293En sesiones en la nube, Claude Code también ignora las actualizaciones MCP entregadas por el servidor a mitad de sesión, la ruta detrás de la configuración de sesión en la nube y las llamadas `setMcpServers()` del SDK que llegan a esas sesiones. Las entradas `type: "sdk"` en proceso permanecen exentas allí también. Antes de v2.1.239, un `--mcp-config` entregado por el servidor bloqueaba el inicio de una sesión en la nube.

6219 6294 

6220<h3 id="forceremotesettingsrefresh">6295<h3 id="forceremotesettingsrefresh">

6221 `forceRemoteSettingsRefresh`6296 `forceRemoteSettingsRefresh`

6222</h3>6297</h3>

6223 6298 

6224Bloquea el inicio de la CLI hasta que Claude Code haya obtenido recientemente [configuraciones gestionadas por el servidor](/docs/es/server-managed-settings). Si la obtención falla, Claude Code sale en lugar de continuar con configuraciones en caché o sin configuraciones. Establézcalo cuando su entorno no pueda aceptar ni siquiera una breve ventana en la que una sesión se ejecute sin su política gestionada.6299Bloquea el inicio de la CLI hasta que Claude Code haya obtenido recientemente [configuraciones administradas por el servidor](/docs/es/server-managed-settings). Si la obtención falla, Claude Code sale en lugar de continuar con configuraciones en caché o sin configuraciones. Establézcalo cuando su entorno no pueda aceptar ni siquiera una breve ventana en la que una sesión se ejecute sin su política administrada.

6225 6300 

6226Cuando la clave no está establecida, Claude Code no bloquea el inicio en la obtención, aunque cuando el desarrollador inicia sesión al iniciar espera hasta cinco segundos para la obtención. Una sesión de puerta de enlace en la nube siempre espera y sale si no se puede alcanzar la puerta de enlace.6301Cuando la clave no está establecida, Claude Code no bloquea el inicio en la obtención, aunque cuando el desarrollador inicia sesión al iniciar espera hasta cinco segundos para la obtención. Una sesión de puerta de enlace en la nube siempre espera y sale si no se puede alcanzar la puerta de enlace.

6227 6302 

6228* **Alcance**: [`Managed`](#scopes). Claude Code honra un `true` de cualquier fuente gestionada controlada por administrador, incluso una que no sea la fuente de mayor prioridad.6303* **Alcance**: [`Managed`](#scopes). Claude Code honra un `true` de cualquier fuente administrada controlada por administrador, incluso una que no sea la fuente de mayor prioridad.

6229* **Tipo**: Booleano6304* **Tipo**: Booleano

6230 * `true`: Claude Code bloquea el inicio hasta que haya obtenido recientemente configuraciones gestionadas por el servidor y sale si la obtención falla6305 * `true`: Claude Code bloquea el inicio hasta que haya obtenido recientemente configuraciones administradas por el servidor y sale si la obtención falla

6231 * `false`: Claude Code no bloquea el inicio en la obtención, aunque en un inicio de inicio de sesión espera hasta cinco segundos para la obtención6306 * `false`: Claude Code no bloquea el inicio en la obtención, aunque en un inicio de inicio de sesión espera hasta cinco segundos para la obtención

6232* **Predeterminado**: `false`6307* **Predeterminado**: `false`

6233 6308 


6237}6312}

6238```6313```

6239 6314 

6240Establézcalo en un perfil MDM o el archivo de configuraciones gestionadas para aplicar el inicio cerrado por error antes de que llegue la primera carga útil del servidor. Claude Code aplica la verificación solo en sesiones que obtienen configuraciones gestionadas por el servidor, por lo que una sesión que [no las obtiene](/docs/es/server-managed-settings#platform-availability) se inicia sin esperar. Los subcomandos `claude auth` están exentos, por lo que los usuarios pueden volver a autenticarse cuando las credenciales caducadas son la razón por la que falla la obtención. Consulte [Aplicar inicio cerrado por error](/docs/es/server-managed-settings#enforce-fail-closed-startup).6315Establézcalo en un perfil MDM o el archivo de configuraciones administradas para aplicar el inicio cerrado por error antes de que llegue la primera carga útil del servidor. Claude Code aplica la verificación solo en sesiones que obtienen configuraciones administradas por el servidor, por lo que una sesión que [no las obtiene](/docs/es/server-managed-settings#platform-availability) se inicia sin esperar. Los subcomandos `claude auth` están exentos, por lo que los usuarios pueden volver a autenticarse cuando las credenciales caducadas son la razón por la que falla la obtención. Consulte [Aplicar inicio cerrado por error](/docs/es/server-managed-settings#enforce-fail-closed-startup).

6241 6316 

6242<h3 id="managedsourcesbehavior">6317<h3 id="managedsourcesbehavior">

6243 `managedSourcesBehavior`6318 `managedSourcesBehavior`

6244</h3>6319</h3>

6245 6320 

6246Elija si Claude Code aplica solo la [fuente gestionada](/docs/es/managed-settings#how-claude-code-combines-managed-sources) de mayor prioridad que su organización entrega, o combina todas las fuentes de administrador que entrega. De forma predeterminada, Claude Code toma la fuente de mayor prioridad que lleva una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources) e ignora el resto. Una clave de política es cualquier clave de configuración que no sea esta y `wslInheritsWindowsSettings`. Entonces, una vez que las configuraciones gestionadas por el servidor o una política MDM entreguen una clave de política, un archivo `managed-settings.json` contribuye solo con las [claves que Claude Code lee de todas las fuentes de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source). Con `"merge"`, todas las fuentes de administrador que entrega contribuyen sus claves a una política combinada. Requiere Claude Code v2.1.242 o posterior.6321Elija si Claude Code aplica solo la [fuente administrada](/docs/es/managed-settings#how-claude-code-combines-managed-sources) de mayor prioridad que su organización entrega, o combina todas las fuentes de administrador que entrega. De forma predeterminada, Claude Code toma la fuente de mayor prioridad que lleva una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources) e ignora el resto. Una clave de política es cualquier clave de configuraciones que no sea esta y `wslInheritsWindowsSettings`. Bajo ese predeterminado, una vez que las configuraciones administradas por el servidor o una política MDM entregan una clave de política, un archivo `managed-settings.json` contribuye solo con las [claves que Claude Code lee de todas las fuentes de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source). Con `"merge"`, todas las fuentes de administrador que entrega contribuyen sus claves a una política combinada. Requiere Claude Code v2.1.242 o posterior.

6247 6322 

6248Establezca `"merge"` solo donde todas las fuentes [clasificadas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) por debajo de la suya están bajo el control de un administrador, porque Claude Code luego agrega entradas de una fuente inferior, como reglas `permissions.allow`, a la política.6323Establezca `"merge"` solo donde todas las fuentes [clasificadas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) por debajo de la más alta estén bajo el control de un administrador, porque Claude Code luego agrega entradas de una fuente inferior, como reglas `permissions.allow`, a la política.

6249 6324 

6250* **Alcance**: [`Managed`](#scopes). Claude Code lee esta clave de la fuente de mayor prioridad que lleva esta clave o una clave de política, e ignora esta clave en todas las fuentes clasificadas más bajas, por lo que una fuente inferior no puede optar por combinarse con la fuente anterior. Ni el registro HKCU de Windows ni [configuraciones principales de un host de incrustación](/docs/es/managed-settings#let-an-embedding-host-add-policy) participan en la combinación.6325* **Alcance**: [`Managed`](#scopes). Claude Code lee esta clave de la fuente de mayor prioridad que lleva esta clave o una clave de política, e ignora esta clave en todas las fuentes clasificadas más bajas, por lo que una fuente inferior no puede optar por combinarse con la fuente anterior. Ni el registro HKCU de Windows ni [configuraciones principales de un host de incrustación](/docs/es/managed-settings#let-an-embedding-host-add-policy) participan en la combinación.

6251* **Tipo**: cadena, una de:6326* **Tipo**: cadena, una de:


6253 * `"merge"`: todas las fuentes de administrador que entrega contribuyen sus claves, combinadas por las reglas a continuación6328 * `"merge"`: todas las fuentes de administrador que entrega contribuyen sus claves, combinadas por las reglas a continuación

6254* **Predeterminado**: `"first-wins"`6329* **Predeterminado**: `"first-wins"`

6255 6330 

6256Entregue la clave en la fuente de mayor prioridad que implemente. Una máquina que nunca recibe configuraciones gestionadas por el servidor necesita la clave en su perfil MDM también, porque Claude Code lee la clave de la fuente de mayor prioridad que la lleva o una clave de política. Un archivo `managed-settings.json` es la fuente de administrador de menor rango, por lo que `"merge"` establecido allí no tiene una fuente inferior con la que combinarse. En configuraciones gestionadas por el servidor, la clave se ve así:6331Entregue la clave en la fuente de mayor prioridad que implemente. Una máquina que nunca recibe configuraciones administradas por el servidor necesita la clave en su perfil MDM también, porque Claude Code lee la clave de la fuente de mayor prioridad que la lleva o una clave de política. Un archivo `managed-settings.json` es la fuente de administrador de menor rango, por lo que `"merge"` establecido allí no tiene una fuente inferior con la que combinar. En configuraciones administradas por el servidor, la clave se ve así:

6257 6332 

6258```json theme={null}6333```json theme={null}

6259{6334{


6261}6336}

6262```6337```

6263 6338 

6264Bajo `"merge"`, Claude Code combina cada clave por su tipo. Esta tabla proporciona la regla para cada tipo. Las filas de lista de restricciones, valores tomados en su totalidad y solo fuente de mayor prioridad nombran todas las claves que cubren, y las otras filas dan ejemplos:6339Bajo `"merge"`, Claude Code combina cada clave por su tipo. Esta tabla proporciona la regla para cada tipo. Las filas de lista de restricciones, valores tomados completos y solo fuente más alta nombran todas las claves que cubren, y las otras filas dan ejemplos:

6265 6340 

6266| Tipo de clave | Cómo Claude Code la combina | Claves |6341| Tipo de clave | Cómo Claude Code la combina | Claves |

6267| :- | :- | :- |6342| :- | :- | :- |

6268| Listas | Combina entradas de todas las fuentes | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) y otras claves de lista |6343| Listas | Combina entradas de todas las fuentes | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) y otras claves de lista |

6269| Bloqueos | Aplica el valor más estricto que establece cualquier fuente. Cuando ninguna fuente establece un valor estricto, aplica un valor más flexible solo de la fuente de mayor prioridad | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) y otros bloqueos booleanos o de enumeración |6344| Bloqueos | Aplica el valor más estricto que establece cualquier fuente. Cuando ninguna fuente establece un valor estricto, aplica un valor más flexible solo de la fuente más alta | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) y otros bloqueos booleanos o de enumeración |

6270| Listas de restricciones | Toma la lista en su totalidad de la fuente de mayor prioridad que la establece, sin agregar entradas de fuentes inferiores. Cuando la fuente de mayor prioridad no establece una, la toma en su totalidad de la siguiente fuente hacia abajo | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) y la cadena [`fallbackModel`](#fallbackmodel) |6345| Listas de restricciones | Toma la lista completa de la fuente más alta que la establece, sin agregar entradas de fuentes inferiores. Cuando la fuente más alta no establece una, la toma completa de la siguiente fuente hacia abajo | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) y la cadena [`fallbackModel`](#fallbackmodel) |

6271| Valores tomados en su totalidad | Toma el valor en su totalidad de la fuente de mayor prioridad que lo establece, sin combinar entradas o campos de fuentes inferiores. Cuando la fuente de mayor prioridad no lo establece, lo toma en su totalidad de la siguiente fuente hacia abajo | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |6346| Valores tomados completos | Toma el valor completo de la fuente más alta que lo establece, sin combinar entradas o campos de fuentes inferiores. Cuando la fuente más alta no lo establece, lo toma completo de la siguiente fuente hacia abajo | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |

6272| Servidores MCP proporcionados | Combina los nombres de servidor de todas las fuentes. Cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente superior | [`managedMcpServers`](#managedmcpservers) |6347| Servidores MCP proporcionados | Combina los nombres de servidor de todas las fuentes. Cuando dos fuentes establecen el mismo nombre, aplica la entrada completa de la fuente más alta | [`managedMcpServers`](#managedmcpservers) |

6273| Leer solo de la fuente de mayor prioridad | Lee la clave solo de la fuente de mayor prioridad que lleva una clave de política, por lo que el valor de una fuente inferior se ignora incluso cuando la fuente de mayor prioridad no establece ninguno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |6348| Leer solo de la fuente de mayor prioridad | Lee la clave solo de la fuente de mayor prioridad que lleva una clave de política, por lo que el valor de una fuente inferior se ignora incluso cuando la fuente más alta no establece ninguno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), los valores `"claudeai"` y `"console"` de [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |

6274| `env` | [Combina por variable en todas las fuentes de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source), bajo tanto `"first-wins"` como `"merge"` | [`env`](#env) |6349| `env` | [Combina por variable en todas las fuentes de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source), bajo `"first-wins"` y `"merge"` | [`env`](#env) |

6275| Todas las otras claves | Toma el valor de la fuente de mayor prioridad que lo establece | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |6350| Todas las otras claves | Toma el valor de la fuente más alta que lo establece | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |

6276 6351 

6277Tomar `sandbox.credentials.awsPairs` y `sandbox.ripgrep` en su totalidad requiere Claude Code v2.1.257 o posterior.6352Tomar `sandbox.credentials.awsPairs` y `sandbox.ripgrep` completos requiere Claude Code v2.1.257 o posterior.

6278 6353 

6279Algunas claves agregan una condición que la tabla no muestra:6354Algunas claves agregan una condición que la tabla no muestra:

6280 6355 

6281* **[`policyHelper`](#policyhelper)**: Claude Code la honra solo cuando la fuente de mayor prioridad que lleva una clave de política es una política MDM o un archivo de configuraciones gestionadas, por lo que bajo configuraciones gestionadas por el servidor no se aplica.6356* **[`policyHelper`](#policyhelper)**: Claude Code la honra solo cuando la fuente más alta que lleva una clave de política es una política MDM o un archivo de configuraciones administradas, por lo que bajo configuraciones administradas por el servidor no se aplica.

6282* **[`modelOverrides`](#modeloverrides)**: se empareja con `availableModels`. Claude Code toma `modelOverrides` de la fuente de mayor prioridad que la establece, a menos que una fuente superior establezca `availableModels` sin `modelOverrides`. En ese caso, ignora `modelOverrides` de todas las fuentes.6357* **[`modelOverrides`](#modeloverrides)**: se empareja con `availableModels`. Claude Code toma `modelOverrides` de la fuente más alta que lo establece, a menos que una fuente más alta establezca `availableModels` sin `modelOverrides`. En ese caso ignora `modelOverrides` de todas las fuentes.

6283* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) y el valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca lee ninguno de ellos de configuraciones gestionadas por el servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuraciones gestionadas. Entre las fuentes de administrador en la máquina, solo la de mayor rango que lleva una clave de política los suministra, independientemente de si las configuraciones gestionadas por el servidor también están presentes.6358* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) y el valor `"gateway"` de [`forceLoginMethod`](#forceloginmethod)**: Claude Code nunca los lee de configuraciones administradas por el servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuraciones administradas. Entre las fuentes de administrador en la máquina, solo la de mayor rango que lleva una clave de política los suministra, independientemente de si las configuraciones administradas por el servidor también están presentes.

6284 6359 

6285Para confirmar qué fuentes se combinaron en una máquina, ejecute `/status` y [lea la línea `Setting sources`](/docs/es/managed-settings#read-the-source-in-/status).6360Para confirmar qué fuentes se combinaron en una máquina, ejecute `/status` y [lea la línea `Setting sources`](/docs/es/managed-settings#read-the-source-in-/status).

6286 6361 


6288 `parentSettingsBehavior`6363 `parentSettingsBehavior`

6289</h3>6364</h3>

6290 6365 

6291Elija si Claude Code aplica configuraciones gestionadas suministradas por un proceso host de incrustación, como el SDK del Agente o una extensión IDE, cuando también está presente una capa gestionada implementada por administrador. Con `"first-wins"`, Claude Code descarta las configuraciones suministradas por el host; con `"merge"`, las aplica bajo la capa de administrador a través de un filtro restrictivo. Establezca `"merge"` cuando un host necesita pasar sus propias restricciones a las sesiones que inicia, por ejemplo Claude Desktop entregando una lista de permisos de salida de una puerta de enlace.6366Elija si Claude Code aplica configuraciones administradas suministradas por un proceso host de incrustación, como el Agent SDK o una extensión IDE, cuando también está presente un nivel administrado implementado por administrador. Con `"first-wins"`, Claude Code descarta las configuraciones suministradas por el host; con `"merge"`, las aplica bajo el nivel de administrador a través de un filtro restrictivo. Establezca `"merge"` cuando un host necesita pasar sus propias restricciones a las sesiones que inicia, por ejemplo Claude Desktop entregando una lista de permisos de salida de una puerta de enlace.

6292 6367 

6293* **Alcance**: [`Managed`](#scopes). Claude Code la lee de la fuente gestionada controlada por administrador de mayor prioridad.6368* **Alcance**: [`Managed`](#scopes). Claude Code la lee de la fuente administrada controlada por administrador de mayor prioridad.

6294* **Tipo**: cadena, una de:6369* **Tipo**: cadena, una de:

6295 * `"first-wins"`: Claude Code descarta las configuraciones suministradas por el host cuando está presente una capa gestionada implementada por administrador6370 * `"first-wins"`: Claude Code descarta las configuraciones suministradas por el host cuando está presente un nivel administrado implementado por administrador

6296 * `"merge"`: Claude Code aplica las configuraciones suministradas por el host bajo la capa de administrador a través de un filtro restrictivo6371 * `"merge"`: Claude Code aplica las configuraciones suministradas por el host bajo el nivel de administrador a través de un filtro restrictivo

6297* **Predeterminado**: `"first-wins"`6372* **Predeterminado**: `"first-wins"`

6298 6373 

6299```json managed-settings.json theme={null}6374```json managed-settings.json theme={null}


6302}6377}

6303```6378```

6304 6379 

6305Esta clave no tiene efecto cuando no existe una capa gestionada implementada por administrador: las configuraciones del host se aplican entonces como la única capa gestionada, aún filtradas a valores restrictivos. Para los límites del filtro y cómo interactúan las fuentes gestionadas, consulte [Configuraciones principales de hosts de incrustación](/docs/es/managed-settings#parent-settings-from-embedding-hosts) y [Restringir configuraciones principales](/docs/es/claude-apps-gateway#restrict-parent-settings).6380Esta clave no tiene efecto cuando no existe un nivel administrado implementado por administrador: las configuraciones del host se aplican entonces como el único nivel administrado, aún filtradas a valores restrictivos. Para los límites del filtro y cómo interactúan las fuentes administradas, consulte [Configuraciones principales de hosts de incrustación](/docs/es/managed-settings#parent-settings-from-embedding-hosts) y [Restringir configuraciones principales](/docs/es/claude-apps-gateway#restrict-parent-settings).

6306 6381 

6307<span id="compute-managed-settings-with-a-policy-helper" />6382<span id="compute-managed-settings-with-a-policy-helper" />

6308 6383 


6310 `policyHelper`6385 `policyHelper`

6311</h3>6386</h3>

6312 6387 

6313Ejecute un ejecutable que implemente que calcula configuraciones gestionadas al iniciar, para que pueda derivar la política de la postura del dispositivo, la identidad o un servicio remoto en lugar de un archivo estático. Claude Code ejecuta el asistente antes de aceptar el primer mensaje y trata las configuraciones que emite como las configuraciones gestionadas para la sesión.6388Ejecute un ejecutable que implemente que calcula configuraciones administradas al iniciar, para que pueda derivar política de postura de dispositivo, identidad o un servicio remoto en lugar de un archivo estático. Claude Code ejecuta el asistente antes de aceptar el primer mensaje y trata las configuraciones que emite como las configuraciones administradas para la sesión.

6314 6389 

6315* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones gestionadas. Claude Code lee la clave de la fuente gestionada de mayor prioridad que lleva una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources) y ejecuta el asistente solo cuando esa fuente es una de esas tres; ignora la clave en configuraciones gestionadas por el servidor, el registro HKCU y configuraciones principales suministradas por el host.6390* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas. Claude Code lee la clave de la fuente administrada de mayor prioridad que lleva una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources) y ejecuta el asistente solo cuando esa fuente es una de esas tres; ignora la clave en configuraciones administradas por el servidor, el registro HKCU y configuraciones principales suministradas por el host.

6316* **Tipo**: objeto con `path`, `timeoutMs` y `refreshIntervalMs`6391* **Tipo**: objeto con `path`, `timeoutMs` y `refreshIntervalMs`

6317* **Predeterminado**: no establecido, por lo que no se ejecuta ningún asistente6392* **Predeterminado**: no establecido, por lo que no se ejecuta ningún asistente

6318 6393 

6319Cuando las configuraciones gestionadas por el servidor entregan la política al iniciar, tienen prioridad sobre la fuente del asistente y el asistente no se ejecuta.6394Cuando las configuraciones administradas por el servidor entregan la política al iniciar, tienen prioridad sobre la fuente del asistente y el asistente no se ejecuta.

6320 6395 

6321Si una obtención de configuraciones posterior informa que las configuraciones gestionadas por el servidor se eliminaron, Claude Code ejecuta el asistente en ese punto en lugar de esperar al siguiente inicio. Su salida rige el resto de la sesión, y una ejecución que falla termina la sesión con el mismo mensaje que una [ejecución de inicio fallida](#helper-failures).6396Si una obtención de configuraciones posterior informa que las configuraciones administradas por el servidor se eliminaron, Claude Code ejecuta el asistente en ese punto en lugar de esperar al siguiente inicio. Su salida rige el resto de la sesión, y una ejecución que falla termina la sesión con el mismo mensaje que una [ejecución de inicio fallida](#helper-failures).

6322 6397 

6323Este ejemplo ejecuta el asistente con un tiempo de espera de 5 segundos y lo vuelve a ejecutar cada cinco minutos:6398Este ejemplo ejecuta el asistente con un tiempo de espera de 5 segundos y lo vuelve a ejecutar cada cinco minutos:

6324 6399 


6338 6413 

6339Claude Code ejecuta el asistente sin argumentos, establece `CLAUDE_CODE_VERSION` en su entorno y lee un envoltorio JSON desde stdout, limitado a 1 MiB.6414Claude Code ejecuta el asistente sin argumentos, establece `CLAUDE_CODE_VERSION` en su entorno y lee un envoltorio JSON desde stdout, limitado a 1 MiB.

6340 6415 

6341Coloque las configuraciones bajo una clave `managedSettings`. Un objeto de configuraciones desnudo sin clave `managedSettings` se analiza con `managedSettings` indefinido y no aplica nada, y Claude Code no informa ningún error:6416Ponga las configuraciones bajo una clave `managedSettings`. Un objeto de configuraciones desnudo sin clave `managedSettings` se analiza con `managedSettings` indefinido y no aplica nada, y Claude Code no informa ningún error:

6342 6417 

6343```json theme={null}6418```json theme={null}

6344{6419{


6348}6423}

6349```6424```

6350 6425 

6351Cuando el asistente emite `managedSettings`, ese objeto se convierte en la única fuente de configuraciones gestionadas para la ejecución: Claude Code ignora las fuentes MDM, archivo y HKCU, lee las [claves entre fuentes](/docs/es/managed-settings#keys-read-from-every-admin-source) solo de la salida del asistente y nunca combina [configuraciones principales](/docs/es/managed-settings#parent-settings-from-embedding-hosts).6426Cuando el asistente emite `managedSettings`, ese objeto se convierte en la única fuente de configuraciones administradas para la ejecución: Claude Code ignora las fuentes MDM, archivo y HKCU, lee las [claves entre fuentes](/docs/es/managed-settings#keys-read-from-every-admin-source) solo de la salida del asistente y nunca combina [configuraciones principales](/docs/es/managed-settings#parent-settings-from-embedding-hosts).

6352 6427 

6353La verificación de inicio `forceRemoteSettingsRefresh` se ejecuta antes del asistente y lee cualquier fuente de administrador. Un asistente que sale con `0` con un envoltorio que omite `managedSettings` no contribuye con configuraciones gestionadas, y las otras fuentes se aplican como de costumbre.6428La verificación de inicio `forceRemoteSettingsRefresh` se ejecuta antes del asistente y lee cualquier fuente de administrador. Un asistente que sale con `0` con un envoltorio que omite `managedSettings` no contribuye configuraciones administradas, y las otras fuentes se aplican como de costumbre.

6354 6429 

6355<h4 id="helper-failures">6430<h4 id="helper-failures">

6356 Fallos del asistente6431 Fallos del asistente


6364* El asistente escribe más de 1 MiB en stdout o stderr.6439* El asistente escribe más de 1 MiB en stdout o stderr.

6365* stdout no es un único objeto JSON, o su `managedSettings` tiene una [violación de esquema que Claude Code no puede reparar](/docs/es/managed-settings#find-entries-claude-code-dropped).6440* stdout no es un único objeto JSON, o su `managedSettings` tiene una [violación de esquema que Claude Code no puede reparar](/docs/es/managed-settings#find-entries-claude-code-dropped).

6366 6441 

6367Cuando la ejecución de inicio falla, Claude Code imprime la razón y se niega a iniciar. Después de una salida distinta de cero, la razón incluye stderr del asistente, o su stdout cuando stderr está vacío. Después de un tiempo de espera, la razón nombra el límite `timeoutMs` e incluye ninguna de la salida del asistente. La negativa cubre sesiones interactivas, `claude -p`, sesiones del SDK del Agente, [sesiones en segundo plano](/docs/es/agent-view) y la mayoría de subcomandos.6442Cuando la ejecución de inicio falla, Claude Code imprime la razón y se niega a iniciar. Después de una salida distinta de cero, la razón incluye stderr del asistente, o su stdout cuando stderr está vacío. Después de un tiempo de espera, la razón nombra el límite `timeoutMs` e incluye ninguna de la salida del asistente. La negativa cubre sesiones interactivas, `claude -p`, sesiones de Agent SDK, [sesiones en segundo plano](/docs/es/agent-view) y la mayoría de subcomandos.

6368 6443 

6369La negativa es deliberada, por lo que un asistente que necesita resiliencia de interrupción debe servir desde su propio caché y salir con `0`.6444La negativa es deliberada, por lo que un asistente que necesita resiliencia de interrupción debe servir desde su propio caché y salir con `0`.

6370 6445 

6371Cuando una actualización en segundo plano falla, Claude Code mantiene la última política exitosa en vigor, y `/status` muestra la actualización fallida con su razón hasta que una actualización tenga éxito. Cada actualización se ejecuta bajo las mismas reglas de `timeoutMs` y fallo que la ejecución de inicio.6446Cuando una actualización en segundo plano falla, Claude Code mantiene la última política exitosa en vigor, y `/status` muestra la actualización fallida con su razón hasta que una actualización tenga éxito. Cada actualización se ejecuta bajo el mismo `timeoutMs` y reglas de fallo que la ejecución de inicio.

6372 6447 

6373Con `--debug`, Claude Code escribe stderr del asistente de cada ejecución en el [registro de depuración](/docs/es/debug-your-config).6448Con `--debug`, Claude Code escribe stderr del asistente de cada ejecución en el [registro de depuración](/docs/es/debug-your-config).

6374 6449 

6375Claude Code informa un valor `policyHelper` inválido como una [entrada descartada](/docs/es/managed-settings#find-entries-claude-code-dropped) e inicia la sesión en las configuraciones gestionadas restantes sin ejecutar un asistente. Los valores inválidos incluyen una cadena de ruta desnuda y un `timeoutMs` por debajo de [su mínimo](#policyhelper-timeoutms).6450Claude Code informa un valor `policyHelper` inválido como una [entrada descartada](/docs/es/managed-settings#find-entries-claude-code-dropped) e inicia la sesión en las configuraciones administradas restantes sin ejecutar un asistente. Los valores inválidos incluyen una cadena de ruta desnuda y un `timeoutMs` por debajo de [su mínimo](#policyhelper-timeoutms).

6376 6451 

6377Para desactivar un asistente, elimine la clave de la fuente que la establece.6452Para desactivar un asistente, elimine la clave de la fuente que la establece.

6378 6453 


6382 6457 

6383Nombre el ejecutable del asistente que Claude Code ejecuta. Para lo que sucede cuando la ruta rompe las reglas a continuación, consulte [Fallos del asistente](#helper-failures).6458Nombre el ejecutable del asistente que Claude Code ejecuta. Para lo que sucede cuando la ruta rompe las reglas a continuación, consulte [Fallos del asistente](#helper-failures).

6384 6459 

6385* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones gestionadas, donde se lee [`policyHelper`](#policyhelper).6460* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee [`policyHelper`](#policyhelper).

6386* **Tipo**: cadena, una ruta absoluta en forma normalizada, sin segmentos `.` o `..`; en Windows, una ruta de letra de unidad o UNC que termina en `.exe`6461* **Tipo**: cadena, una ruta absoluta en forma normalizada, sin segmentos `.` o `..`; en Windows, una ruta de letra de unidad o UNC que termina en `.exe`

6387* **Predeterminado**: ninguno; requerido cuando `policyHelper` está establecido6462* **Predeterminado**: ninguno; requerido cuando `policyHelper` está establecido

6388 6463 


6398 `policyHelper.timeoutMs`6473 `policyHelper.timeoutMs`

6399</h3>6474</h3>

6400 6475 

6401Establezca cuánto tiempo Claude Code espera al asistente antes de tratar la ejecución como fallida. Una ejecución agotada por tiempo falla de la misma manera que una salida distinta de cero, por lo que al iniciar Claude Code se niega a iniciar.6476Establezca cuánto tiempo Claude Code espera al asistente antes de tratar la ejecución como fallida. Una ejecución con tiempo de espera agotado falla de la misma manera que una salida distinta de cero, por lo que al iniciar Claude Code se niega a iniciar.

6402 6477 

6403* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones gestionadas, donde se lee [`policyHelper`](#policyhelper).6478* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee [`policyHelper`](#policyhelper).

6404* **Tipo**: entero, milisegundos, mínimo `1000`6479* **Tipo**: entero, milisegundos, mínimo `1000`

6405* **Predeterminado**: `10000`6480* **Predeterminado**: `10000`

6406 6481 


6417 `policyHelper.refreshIntervalMs`6492 `policyHelper.refreshIntervalMs`

6418</h3>6493</h3>

6419 6494 

6420Haga que Claude Code vuelva a ejecutar el asistente en segundo plano en un intervalo para que los cambios de política lleguen a una sesión en ejecución. Cuando una actualización tiene éxito, su salida reemplaza las configuraciones gestionadas anteriores sin un reinicio; cuando una actualización falla, Claude Code mantiene la política que ya tiene.6495Haga que Claude Code vuelva a ejecutar el asistente en segundo plano en un intervalo para que los cambios de política lleguen a una sesión en ejecución. Cuando una actualización tiene éxito, su salida reemplaza las configuraciones administradas anteriores sin un reinicio; cuando una actualización falla, Claude Code mantiene la política que ya tiene.

6421 6496 

6422* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones gestionadas, donde se lee [`policyHelper`](#policyhelper).6497* **Alcance**: [`Managed`](#scopes). Leer desde la plist de macOS, el registro HKLM de Windows o el archivo de configuraciones administradas, donde se lee [`policyHelper`](#policyhelper).

6423* **Tipo**: entero, milisegundos: `0` para desactivar la actualización, de lo contrario al menos `60000`6498* **Tipo**: entero, milisegundos: `0` para desactivar la actualización, de lo contrario al menos `60000`

6424* **Predeterminado**: no establecido, por lo que Claude Code ejecuta el asistente una vez al iniciar6499* **Predeterminado**: no establecido, por lo que Claude Code ejecuta el asistente una vez al iniciar

6425 6500 


6438 `wslInheritsWindowsSettings`6513 `wslInheritsWindowsSettings`

6439</h3>6514</h3>

6440 6515 

6441Haga que Claude Code en WSL lea configuraciones gestionadas de la cadena de política de Windows, con HKLM y el archivo de configuraciones gestionadas de Windows teniendo prioridad sobre `/etc/claude-code` y HKCU debajo. Mientras la cadena está activada, Claude Code lee `/etc/claude-code` solo cuando ningún archivo de configuraciones gestionadas o descarga bajo `C:\Program Files\ClaudeCode\` entrega una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Establézcalo para extender la política que ya implementa en Windows a sesiones WSL en la misma máquina, para que sigan las mismas reglas que las sesiones del host. Claude Code la honra solo cuando está establecida en la clave del registro HKLM o en un archivo de configuraciones gestionadas o descarga bajo `C:\Program Files\ClaudeCode\`, ambos de los cuales requieren administrador de Windows para escribir.6516Haga que Claude Code en WSL lea configuraciones administradas de la cadena de política de Windows, con HKLM y el archivo de configuraciones administradas de Windows teniendo prioridad sobre `/etc/claude-code` y HKCU debajo. Mientras la cadena está activada, Claude Code lee `/etc/claude-code` solo cuando [ningún documento de administrador de Windows está presente](/docs/es/managed-settings#present-admin-documents) en el valor del registro HKLM o la carpeta `C:\Program Files\ClaudeCode\`. Establézcalo para extender la política que ya implementa en Windows a sesiones de WSL en la misma máquina, para que sigan las mismas reglas que las sesiones del host. Claude Code la honra solo cuando está establecida en la clave del registro HKLM o en un archivo de configuraciones administradas o descarga bajo `C:\Program Files\ClaudeCode\`, ambos requieren administrador de Windows para escribir.

6442 6517 

6443* **Alcance**: [`Managed`](#scopes). En una fuente de Windows controlada por administrador.6518* **Alcance**: [`Managed`](#scopes). En una fuente de Windows controlada por administrador.

6444* **Tipo**: Booleano6519* **Tipo**: Booleano

6445 * `true`: Claude Code en WSL lee configuraciones gestionadas de la cadena de política de Windows y lee `/etc/claude-code` solo cuando ningún archivo de configuraciones gestionadas o descarga bajo `C:\Program Files\ClaudeCode\` entrega una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources)6520 * `true`: Claude Code en WSL lee configuraciones administradas de la cadena de política de Windows y lee `/etc/claude-code` solo cuando ningún documento de administrador de Windows está presente

6446 * `false`: WSL lee solo `/etc/claude-code`6521 * `false`: WSL lee solo `/etc/claude-code`

6447* **Predeterminado**: `false`, por lo que WSL lee solo `/etc/claude-code`6522* **Predeterminado**: `false`, por lo que WSL lee solo `/etc/claude-code`

6448 6523 


6452}6527}

6453```6528```

6454 6529 

6455Una vez que una fuente de administrador activa la cadena, la política HKCU se une a ella en WSL solo cuando HKCU también establece la clave en `true`. Esa copia no activa la cadena por sí sola. Una fuente de Windows que contiene solo esta clave no cuenta como una fuente de política, por lo que una fuente de menor prioridad aún suministra la política. Esta clave no tiene efecto en Windows nativo.6530Una vez que una fuente de administrador activa la cadena, la política HKCU se une a ella en WSL solo cuando HKCU también establece la clave en `true`. Esa copia no activa la cadena por sí sola. Una fuente de Windows que contiene solo esta clave, establecida en `true` o `false`, no cuenta como una fuente de política, por lo que una fuente de menor prioridad aún suministra la política. Esta clave no tiene efecto en Windows nativo.

6531 

6532Claude Code lee `true` y `false` con o sin comillas y lee `null` como eliminación de la clave. Una fuente de Windows controlada por administrador que contiene cualquier otro valor cuenta como un [documento de administrador presente](/docs/es/managed-settings#present-admin-documents) con la cadena activada: ni `/etc/claude-code` ni HKCU se aplican, y una advertencia de inicio nombra la clave. Un valor HKLM o archivo de carpeta de Windows que existe pero no se puede leer también evita que `/etc/claude-code` se aplique independientemente de si la cadena está activada. Requiere Claude Code v2.1.282 o posterior.

6456 6533 

6457<h2 id="global-config-settings">6534<h2 id="global-config-settings">

6458 Configuración global6535 Configuración global


6502 6579 

6503Claude Code ignora esta clave en `settings.json`.6580Claude Code ignora esta clave en `settings.json`.

6504 6581 

6582<h3 id="claudeinchromedefaultenabled">

6583 `claudeInChromeDefaultEnabled`

6584</h3>

6585 

6586Inicie cada sesión interactiva de CLI con [integración de Chrome](/docs/es/chrome) activada, sin pasar `--chrome` cada vez. Si ejecuta [`claude remote-control`](/docs/es/remote-control), una sesión que inicia para uno de sus hilos de [proyecto](/docs/es/claude-projects) sigue esta clave también, excepto en modo `bypassPermissions`. Ejecutar `/chrome` y seleccionar **Habilitado por defecto** establece esta clave automáticamente, como se describe en [Habilitar Chrome por defecto](/docs/es/chrome#enable-chrome-by-default). Aparece en `/config` como **Claude en Chrome habilitado por defecto**.

6587 

6588* **Alcance**: [`Configuración global`](#scopes)

6589* **Tipo**: Booleano

6590 * `true`: Claude Code activa la integración de Chrome cuando comienza una sesión interactiva de CLI, como lo hace cuando pasa `--chrome`

6591 * `false`: las sesiones interactivas de CLI comienzan con la integración de Chrome desactivada, y Claude Code deja de [ofrecer configurarla](/docs/es/chrome#install-the-extension-when-claude-asks). Pase `--chrome` para activarla para una sesión interactiva

6592* **Predeterminado**: sin establecer, por lo que la integración de Chrome está desactivada y Claude Code aún puede ofrecer configurarla

6593* **Anulaciones por sesión**: `--chrome` y [`--no-chrome`](/docs/es/cli-reference) tienen prioridad sobre esta clave para una sesión interactiva

6594 

6595```json ~/.claude.json theme={null}

6596{

6597 "claudeInChromeDefaultEnabled": true

6598}

6599```

6600 

6601Claude Code ignora esta clave en `settings.json`.

6602 

6603<h3 id="copyfullresponse">

6604 `copyFullResponse`

6605</h3>

6606 

6607Haga que [`/copy`](/docs/es/commands) copie la respuesta completa cada vez, sin el selector que de otro modo muestra cuando la respuesta contiene bloques de código. Seleccionar **Siempre copiar respuesta completa** en ese selector establece esta clave en `true`. Aparece en `/config` como **Omitir el selector /copy**.

6608 

6609* **Alcance**: [`Configuración global`](#scopes)

6610* **Tipo**: Booleano

6611 * `true`: `/copy` copia la respuesta completa sin mostrar el selector

6612 * `false`: cuando la respuesta contiene bloques de código, `/copy` muestra un selector donde elige un bloque de código o la respuesta completa

6613* **Predeterminado**: `false`

6614 

6615```json ~/.claude.json theme={null}

6616{

6617 "copyFullResponse": true

6618}

6619```

6620 

6621Claude Code ignora esta clave en `settings.json`.

6622 

6505<h3 id="copyonselect">6623<h3 id="copyonselect">

6506 `copyOnSelect`6624 `copyOnSelect`

6507</h3>6625</h3>


6522 6640 

6523Claude Code ignora esta clave en `settings.json`.6641Claude Code ignora esta clave en `settings.json`.

6524 6642 

6643<h3 id="defaulttoagentsview">

6644 `defaultToAgentsView`

6645</h3>

6646 

6647Abra [vista de agente](/docs/es/agent-view) en lugar de una nueva conversación cuando ejecute `claude` sin argumentos. Aparece en `/config` como **Abrir vista de agentes por defecto** a menos que la vista de agente esté [desactivada](#disableagentview).

6648 

6649* **Alcance**: [`Configuración global`](#scopes)

6650* **Tipo**: Booleano

6651 * `true`: `claude` sin argumentos abre la vista de agente, a menos que la vista de agente esté [desactivada](#disableagentview)

6652 * `false`: `claude` sin argumentos inicia una nueva conversación

6653* **Predeterminado**: `false`

6654 

6655```json ~/.claude.json theme={null}

6656{

6657 "defaultToAgentsView": true

6658}

6659```

6660 

6661Claude Code ignora esta clave en `settings.json`.

6662 

6525<h3 id="difftool">6663<h3 id="difftool">

6526 `diffTool`6664 `diffTool`

6527</h3>6665</h3>


6576 6714 

6577Claude Code ignora esta clave en `settings.json`.6715Claude Code ignora esta clave en `settings.json`.

6578 6716 

6717<h3 id="leftarrowopensagents">

6718 `leftArrowOpensAgents`

6719</h3>

6720 

6721Presione `←` en un mensaje vacío para [poner la sesión en segundo plano y abrir la vista de agente](/docs/es/agent-view#switch-sessions-without-leaving-the-terminal). Establezca esta clave en `false` para desactivar el atajo. Aparece en `/config` como **← abre agentes** cuando la vista de agente está disponible.

6722 

6723* **Alcance**: [`Configuración global`](#scopes)

6724* **Tipo**: Booleano

6725 * `true`: presionar `←` en un mensaje vacío en una sesión que inició en la terminal la pone en segundo plano y abre la vista de agente

6726 * `false`: Claude Code desactiva el atajo; en una sesión que [adjuntó desde la vista de agente](/docs/es/agent-view#attach-to-a-session), `←` en un mensaje vacío aún se desconecta

6727* **Predeterminado**: `true`

6728 

6729```json ~/.claude.json theme={null}

6730{

6731 "leftArrowOpensAgents": false

6732}

6733```

6734 

6735Claude Code ignora esta clave en `settings.json`.

6736 

6579<h3 id="permissionexplainerenabled">6737<h3 id="permissionexplainerenabled">

6580 `permissionExplainerEnabled`6738 `permissionExplainerEnabled`

6581</h3>6739</h3>


6590* **Tipo**: Booleano6748* **Tipo**: Booleano

6591* **Predeterminado**: `true`6749* **Predeterminado**: `true`

6592 6750 

6751<h3 id="prstatusfooterenabled">

6752 `prStatusFooterEnabled`

6753</h3>

6754 

6755Muestre un distintivo en el pie de página del mensaje para la solicitud de extracción o solicitud de fusión abierta de la rama actual, con un subrayado de color que muestra su [estado](/docs/es/interactive-mode#pr-review-status). Aparece en `/config` como **Mostrar pie de página de estado de PR**.

6756 

6757* **Alcance**: [`Configuración global`](#scopes)

6758* **Tipo**: Booleano

6759 * `true`: el pie de página muestra el distintivo bajo las condiciones en [Estado de revisión de PR](/docs/es/interactive-mode#pr-review-status)

6760 * `false`: Claude Code omite la verificación de solicitud de extracción y solicitud de fusión del pie de página y no muestra ese distintivo. Una sesión que [adjuntó desde la vista de agente](/docs/es/agent-view#attach-to-a-session) aún puede mostrar un enlace simple a una solicitud de extracción [vinculada a ella](/docs/es/agent-view#pull-request-status)

6761* **Predeterminado**: `true`

6762 

6763```json ~/.claude.json theme={null}

6764{

6765 "prStatusFooterEnabled": false

6766}

6767```

6768 

6769Claude Code ignora esta clave en `settings.json`.

6770 

6593<h3 id="teammatedefaultmodel">6771<h3 id="teammatedefaultmodel">

6594 `teammateDefaultModel`6772 `teammateDefaultModel`

6595</h3>6773</h3>

setup.md +3 −3

Details

37 37 

38<Tip>38<Tip>

39 ¿Prefiere una interfaz gráfica? La [aplicación de escritorio](/docs/es/desktop-quickstart) le permite usar Claude Code sin la terminal. Descárguela para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) o [Linux](/docs/es/desktop-linux).39 ¿Prefiere una interfaz gráfica? La [aplicación de escritorio](/docs/es/desktop-quickstart) le permite usar Claude Code sin la terminal. Descárguela para [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) o [Linux](/docs/es/desktop-linux).

40 

41 ¿Nuevo en la terminal? Consulte la [guía de terminal](/docs/es/terminal-guide) para obtener instrucciones paso a paso.

42</Tip>40</Tip>

43 41 

44Para instalar Claude Code, utilice uno de los siguientes métodos:42Para instalar Claude Code, abra una terminal y ejecute el comando para su sistema. Si nunca ha utilizado una terminal antes, la [guía de terminal](/docs/es/terminal-guide) muestra cómo abrir una y pegar el comando.

45 43 

46<Tabs>44<Tabs>

47 <Tab title="Instalación nativa (recomendado)">45 <Tab title="Instalación nativa (recomendado)">


63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

64 ```62 ```

65 63 

64 Cuando el instalador termine, abra una nueva ventana de terminal y ejecute `claude --version`. Una instalación que funciona correctamente imprime un número de versión. Si su shell dice que `claude` no se encuentra o no se reconoce, el directorio de instalación aún no está en su PATH: consulte [Corrija su PATH](/docs/es/troubleshoot-install#command-not-found-claude-after-installation).

65 

66 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.66 Si ve `The token '&&' is not a valid statement separator`, está en PowerShell, no en CMD. Si ve `'irm' is not recognized as an internal or external command`, está en CMD, no en PowerShell. Su símbolo del sistema muestra `PS C:\` cuando está en PowerShell y `C:\` sin el `PS` cuando está en CMD.

67 67 

68 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.68 Si el comando de instalación falla con `syntax error near unexpected token '<'`, un `403`, u otro error de curl, consulte [Solucionar problemas de instalación](/docs/es/troubleshoot-install#find-your-error) para hacer coincidir el error con una solución y para conocer métodos de instalación alternativos.

skills.md +77 −58

Details

76 </Step>76 </Step>

77 77 

78 <Step title="Write SKILL.md">78 <Step title="Write SKILL.md">

79 Cada skill necesita un archivo `SKILL.md` con dos partes: frontmatter YAML entre marcadores `---` que le dice a Claude cuándo usar la skill, y contenido markdown con las instrucciones que Claude sigue cuando se ejecuta la skill. El nombre del directorio se convierte en el comando que escribe, y la `description` ayuda a Claude a decidir cuándo cargar la skill automáticamente.79 Cada skill necesita un archivo `SKILL.md` con dos partes: frontmatter YAML entre marcadores `---` que le dice a Claude cuándo usar la skill, y contenido markdown con las instrucciones que Claude sigue cuando se ejecuta la skill. El nombre del directorio, o el `name` del frontmatter cuando lo establece, se convierte en el comando que escribe, y la `description` ayuda a Claude a decidir cuándo cargar la skill automáticamente.

80 80 

81 Guarde esto en `~/.claude/skills/summarize-changes/SKILL.md`:81 Guarde esto en `~/.claude/skills/summarize-changes/SKILL.md`:

82 82 


122 122 

123Dónde guardes una skill decide qué sesiones la cargan. Guárdala en tu directorio de inicio para obtenerla en cada proyecto, confirma su cambio en un repositorio para compartirla con todos los que trabajan allí, o distribúyela a través de un plugin o configuración administrada para llegar a todo un equipo.123Dónde guardes una skill decide qué sesiones la cargan. Guárdala en tu directorio de inicio para obtenerla en cada proyecto, confirma su cambio en un repositorio para compartirla con todos los que trabajan allí, o distribúyela a través de un plugin o configuración administrada para llegar a todo un equipo.

124 124 

125| Ubicación | Ruta | Se carga en |125| Ubicación | Ruta | Carga en |

126| :- | :- | :- |126| :- | :- | :- |

127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` en el [directorio de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) | Todos los usuarios en máquinas donde tu organización la implementa |127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` en el [directorio de configuración administrada](/docs/es/managed-settings#delivery-mechanisms) | Todos los usuarios en máquinas donde tu organización la implementa |

128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | Todos tus proyectos en esta máquina, pero no en [sesiones de Cowork o en la nube](#skills-in-cowork-and-cloud-sessions) |128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | Todos tus proyectos en esta máquina, pero no en [sesiones de Cowork o en la nube](#skills-in-cowork-and-cloud-sessions) |


130| Anidada | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesiones iniciadas en o debajo de `<subdir>`. Una sesión iniciada por encima de ella carga la skill una vez que Claude trabaja en archivos allí. Consulta [monorepos y subdirectorios](#discovery-from-parent-and-nested-directories) |130| Anidada | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesiones iniciadas en o debajo de `<subdir>`. Una sesión iniciada por encima de ella carga la skill una vez que Claude trabaja en archivos allí. Consulta [monorepos y subdirectorios](#discovery-from-parent-and-nested-directories) |

131| Directorio adicional | `.claude/skills/<skill-name>/SKILL.md` en un directorio que pasas con `--add-dir` | Esa sesión. Consulta [directorios fuera del proyecto](#skills-from-additional-directories) |131| Directorio adicional | `.claude/skills/<skill-name>/SKILL.md` en un directorio que pasas con `--add-dir` | Esa sesión. Consulta [directorios fuera del proyecto](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Dondequiera que el [plugin](/docs/es/plugins/overview) esté habilitado, como `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Dondequiera que el [plugin](/docs/es/plugins/overview) esté habilitado, como `/plugin-name:skill-name` |

133| Cuenta de claude.ai | Skills habilitadas para tu cuenta de claude.ai | Sesiones de Cowork, sesiones en la nube y sesiones de terminal donde inicias sesión con esa cuenta. Consulta [Skills sincronizadas desde claude.ai](#how-synced-skills-behave) |133| Cuenta claude.ai | Skills habilitadas para tu cuenta claude.ai | Sesiones de Cowork, sesiones en la nube y sesiones de terminal donde inicias sesión con esa cuenta. Consulta [Skills sincronizadas desde claude.ai](#how-synced-skills-behave) |

134 134 

135Las carpetas de skills también siguen estas reglas:135Las carpetas de skills también siguen estas reglas:

136 136 

137* **Carpetas con enlaces simbólicos**: una entrada `<skill-name>` en la ubicación enterprise, personal o de proyecto puede ser un enlace simbólico a un directorio en otro lugar del disco. Claude Code lee `SKILL.md` del destino y carga la skill una sola vez incluso si varias ubicaciones apuntan al mismo destino. Las skills de plugins [manejan los enlaces simbólicos de manera diferente](/docs/es/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).137* **Carpetas con enlaces simbólicos**: una entrada `<skill-name>` en la ubicación enterprise, personal o de proyecto puede ser un enlace simbólico a un directorio en otro lugar del disco. Claude Code lee `SKILL.md` del destino y carga la skill una sola vez incluso si varias ubicaciones apuntan al mismo destino. Las skills de plugin [manejan los enlaces simbólicos de manera diferente](/docs/es/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).

138* **Nombre reservado**: no nombres una carpeta de skill `synced`, en ninguna capitalización. Claude Code usa `~/.claude/skills/synced/` para [skills descargadas desde claude.ai](#where-synced-skills-load) y omite una skill que crees con ese nombre en las ubicaciones enterprise, personal y de proyecto.138* **Nombre reservado `synced`**: no nombres una carpeta de skill `synced`, en ninguna capitalización. Claude Code usa `~/.claude/skills/synced/` para [skills descargadas desde claude.ai](#where-synced-skills-load) y omite una skill que crees con ese nombre en las ubicaciones enterprise, personal y de proyecto.

139* **Nombre reservado `anthropic-skills`**: fuera de un plugin, una carpeta de skill o archivo de comando cuyo nombre es `anthropic-skills` o comienza con `anthropic-skills:` no carga. Consulta [Nombres reservados para skills sincronizadas](#names-reserved-for-synced-skills).

139* **Archivos de comando**: un archivo Markdown en `.claude/commands/` es el formato más antiguo y aún funciona. Admite el mismo [frontmatter](#frontmatter-reference) excepto `name` y `paths`. Para encontrar el nombre que escribes para invocarlo, consulta [Cómo una skill obtiene su nombre de comando](#how-a-skill-gets-its-command-name). Prefiere una skill para trabajo nuevo, ya que las skills también admiten [archivos de apoyo](#add-supporting-files).140* **Archivos de comando**: un archivo Markdown en `.claude/commands/` es el formato más antiguo y aún funciona. Admite el mismo [frontmatter](#frontmatter-reference) excepto `name` y `paths`. Para encontrar el nombre que escribes para invocarlo, consulta [Cómo una skill obtiene su nombre de comando](#how-a-skill-gets-its-command-name). Prefiere una skill para trabajo nuevo, ya que las skills también admiten [archivos de apoyo](#add-supporting-files).

140* **Carpeta de skill como plugin**: agrega un `.claude-plugin/plugin.json` a una carpeta de skill y se carga como un [plugin](/docs/es/plugins/loading#plugins-shared-through-a-repository) llamado `<name>@skills-dir`, para que pueda agrupar agentes, hooks y servidores MCP. En un `.claude/skills/` de un proyecto, esto requiere aceptar primero el diálogo de confianza del espacio de trabajo.141* **Carpeta de skill como plugin**: añade un `.claude-plugin/plugin.json` a una carpeta de skill y carga como un [plugin](/docs/es/plugins/loading#plugins-shared-through-a-repository) nombrado `<name>@skills-dir`, para que pueda agrupar agentes, hooks y servidores MCP. En un `.claude/skills/` de proyecto, esto requiere aceptar primero el diálogo de confianza del espacio de trabajo.

141 142 

142<h3 id="discovery-from-parent-and-nested-directories">143<h3 id="discovery-from-parent-and-nested-directories">

143 Carga skills en monorepos y subdirectorios144 Carga skills en monorepos y subdirectorios

144</h3>145</h3>

145 146 

146Claude Code carga skills de proyecto desde `.claude/skills/` en el directorio donde lo inicias y en cada directorio padre hasta la raíz del repositorio, por lo que iniciar en `packages/frontend/` aún recoge skills definidas en la raíz. Cuando [mueves la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code agrega las skills de proyecto del nuevo directorio.147Claude Code carga skills de proyecto desde `.claude/skills/` en el directorio donde lo inicias y en cada directorio padre hasta la raíz del repositorio, por lo que iniciar en `packages/frontend/` aún recoge skills definidas en la raíz. Cuando [mueves la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code añade las skills de proyecto del nuevo directorio.

147 148 

148En una sesión que se ejecuta en un [git worktree](/docs/es/worktrees) vinculado, Claude Code busca directorios padre solo hasta la raíz del worktree. En Claude Code v2.1.277 o posterior, cuando el checkout del worktree no tiene un directorio `.claude/skills` en su raíz, Claude Code carga las skills de proyecto del checkout principal en su lugar. Consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout).149En una sesión que se ejecuta en un [git worktree](/docs/es/worktrees) vinculado, Claude Code busca directorios padre solo hasta la raíz del worktree. En Claude Code v2.1.277 o posterior, cuando el checkout del worktree no tiene directorio `.claude/skills` en su raíz, Claude Code carga las skills de proyecto del checkout principal en su lugar. Consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout).

149 150 

150Las skills en un directorio `.claude/skills/` debajo de donde iniciaste no se cargan al inicio. Se cargan la primera vez que Claude lee o edita un archivo en ese subdirectorio y permanecen disponibles para el resto de la sesión. Hasta entonces no aparecen en el menú `/` y no puedes invocarlas por nombre. Para cargarlas antes, ejecuta `/add-dir` con la ruta del subdirectorio, lo que requiere Claude Code v2.1.257 o posterior.151Las skills en un directorio `.claude/skills/` debajo de donde iniciaste no cargan al inicio. Cargan la primera vez que Claude lee o edita un archivo en ese subdirectorio y permanecen disponibles para el resto de la sesión. Hasta entonces no aparecen en el menú `/` y no puedes invocarlas por nombre. Para cargarlas antes, ejecuta `/add-dir` con la ruta del subdirectorio, lo que requiere Claude Code v2.1.257 o posterior.

151 152 

152Cuando una skill anidada comparte un nombre con otra skill, ambas permanecen disponibles. Con una skill `deploy` en la raíz del repositorio y otra en `apps/web/.claude/skills/`:153Cuando el nombre del directorio de una skill anidada coincide con el nombre de otra skill, ambas permanecen disponibles. Con una skill `deploy` en la raíz del repositorio y otra en `apps/web/.claude/skills/`:

153 154 

154* `/deploy` ejecuta la skill raíz. Claude Code también enumera las variantes calificadas por directorio para Claude, con una instrucción para invocar la cuya carpeta contiene los archivos en los que está trabajando, por lo que la skill anidada aún se aplica al trabajo en `apps/web/`.155* `/deploy` ejecuta la skill raíz. Claude Code también lista las variantes calificadas por directorio para Claude, con una instrucción para invocar la que cuyo directorio contiene los archivos en los que está trabajando, por lo que la skill anidada aún se aplica al trabajo en `apps/web/`.

155* `/apps/web:deploy` ejecuta la skill anidada por sí sola. Su descripción nombra el directorio al que se aplica.156* `/apps/web:deploy` ejecuta la skill anidada por sí sola. Su descripción nombra el directorio al que se aplica.

156 157 

157<h3 id="skills-from-additional-directories">158<h3 id="skills-from-additional-directories">

158 Carga skills desde un directorio fuera del proyecto159 Carga skills desde un directorio fuera del proyecto

159</h3>160</h3>

160 161 

161Cuando agregas un directorio con `--add-dir` o `/add-dir`, Claude Code carga las skills en el `.claude/skills/` de ese directorio, junto con su `.claude/commands/` y `.claude/agents/`. Los directorios que el Agent SDK agrega a través de [`additionalDirectories`](/docs/es/agent-sdk/typescript#options) en TypeScript o [`add_dirs`](/docs/es/agent-sdk/python#claudeagentoptions) en Python se cargan de la misma manera, porque el SDK los pasa como `--add-dir`. La configuración `permissions.additionalDirectories` en `settings.json` otorga solo acceso a archivos y no carga ninguno de estos.162Cuando añades un directorio con `--add-dir` o `/add-dir`, Claude Code carga las skills en el `.claude/skills/` de ese directorio, junto con su `.claude/commands/` y `.claude/agents/`. Los directorios que el Agent SDK añade a través de [`additionalDirectories`](/docs/es/agent-sdk/typescript#options) en TypeScript o [`add_dirs`](/docs/es/agent-sdk/python#claudeagentoptions) en Python cargan de la misma manera, porque el SDK los pasa como `--add-dir`. La configuración `permissions.additionalDirectories` en `settings.json` otorga solo acceso a archivos y no carga ninguno de estos.

162 163 

163Claude Code observa `.claude/skills/` en un directorio que pasas con `--add-dir` al iniciar, como describe [Edita una skill durante una sesión](#live-change-detection). No observa el `.claude/commands/` o `.claude/agents/` del directorio agregado, por lo que reinicia la sesión después de cambiar un archivo allí.164Claude Code observa `.claude/skills/` en un directorio que pasas con `--add-dir` al iniciar, como describe [Edita una skill durante una sesión](#live-change-detection). No observa el `.claude/commands/` o `.claude/agents/` del directorio añadido, por lo que reinicia la sesión después de cambiar un archivo allí.

164 165 

165Estas cargas dependen de la [fuente de configuración](/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) `project`, que está activada de forma predeterminada. Una política [`strictPluginOnlyCustomization`](/docs/es/settings-reference#strictpluginonlycustomization), [modo bare](/docs/es/headless#start-faster-with-bare-mode) y [`--safe-mode`](/docs/es/cli-reference#cli-flags) cada una las restringe aún más, como describen esas páginas. Consulta [Los directorios adicionales otorgan acceso a archivos, no configuración](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) para la tabla completa de lo que carga un directorio agregado, incluyendo `CLAUDE.md` y configuración de plugins.166Estas cargas dependen de la [fuente de configuración](/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) `project`, que está activada por defecto. Una política [`strictPluginOnlyCustomization`](/docs/es/settings-reference#strictpluginonlycustomization), [modo bare](/docs/es/headless#start-faster-with-bare-mode) y [`--safe-mode`](/docs/es/cli-reference#cli-flags) cada una las restringe aún más, como describen esas páginas. Consulta [Los directorios adicionales otorgan acceso a archivos, no configuración](/docs/es/permissions#additional-directories-grant-file-access-not-configuration) para la tabla completa de lo que carga un directorio añadido, incluyendo `CLAUDE.md` y configuración de plugins.

166 167 

167<h3 id="resolve-skills-that-share-a-name">168<h3 id="resolve-skills-that-share-a-name">

168 Resuelve skills que comparten un nombre169 Resuelve skills que comparten un nombre

169</h3>170</h3>

170 171 

171Cuando dos skills comparten un nombre, de dónde vino cada una decide cuál ejecuta `/name`. La tabla cubre las ubicaciones enterprise, personal, proyecto, anidada, plugin y claude.ai, skills agrupadas y archivos de comando:172Cuando dos skills comparten un nombre de directorio o archivo, de dónde vino cada una decide cuál ejecuta `/name`. Para un nombre establecido por el campo frontmatter `name`, consulta [Cómo una skill obtiene su nombre de comando](#how-a-skill-gets-its-command-name). La tabla cubre las ubicaciones enterprise, personal, proyecto, anidada, plugin y claude.ai, skills agrupadas y archivos de comando:

172 173 

173| Mismo nombre en | Cuál se ejecuta |174| Mismo nombre en | Cuál ejecuta |

174| :- | :- |175| :- | :- |

175| Dos de enterprise, personal y proyecto | Enterprise sobre personal, y personal sobre proyecto. Con `deploy` en ambos `~/.claude/skills/` y el `.claude/skills/` del proyecto, `/deploy` ejecuta la personal |176| Dos de enterprise, personal y proyecto | Enterprise sobre personal, y personal sobre proyecto. Con `deploy` en ambos `~/.claude/skills/` y el `.claude/skills/` del proyecto, `/deploy` ejecuta el personal |

176| Cualquiera de esas ubicaciones y una [skill agrupada](#bundled-skills) | Tu skill reemplaza el comando agrupado, pero no sus alias. Una skill `code-review` de proyecto reemplaza `/code-review`, y el alias agrupado `/review` nunca ejecuta tu skill |177| Cualquiera de esas ubicaciones y una [skill agrupada](#bundled-skills) | Tu skill reemplaza el comando agrupado, pero no sus alias. Una skill `code-review` de proyecto reemplaza `/code-review`, y el alias agrupado `/review` nunca ejecuta tu skill |

177| Una skill y un archivo en `.claude/commands/` | La skill |178| Una skill y un archivo en `.claude/commands/` | La skill |

178| Una skill raíz de proyecto y una skill anidada | Ambas se cargan. Consulta [monorepos y subdirectorios](#discovery-from-parent-and-nested-directories) |179| Una skill raíz de proyecto y una skill anidada | Ambas cargan. Consulta [monorepos y subdirectorios](#discovery-from-parent-and-nested-directories) |

179| Una skill de plugin y una skill en cualquiera de las ubicaciones anteriores | Ambas se cargan, porque las skills de plugin tienen espacios de nombres como `/plugin-name:skill-name` |180| Una skill de plugin y una skill en cualquiera de las ubicaciones anteriores | Ambas cargan, porque las skills de plugin están en el espacio de nombres como `/plugin-name:skill-name` |

180| Cualquiera de las anteriores y una skill [sincronizada desde tu cuenta de claude.ai](#how-synced-skills-behave) | La otra skill o comando. La skill sincronizada aún se ejecuta como `/anthropic-skills:<name>`. Consulta [Cuando un nombre de skill sincronizada coincide con otro comando](#when-a-synced-skill-name-matches-another-command) |181| Cualquiera de las anteriores y el nombre corto de una skill [sincronizada desde tu cuenta claude.ai](#how-synced-skills-behave) | La otra skill o comando. La skill sincronizada se lista entonces y ejecuta solo bajo su nombre completo. Consulta [Cuando un nombre de skill sincronizada coincide con otro comando](#when-a-synced-skill-name-matches-another-command) |

181 182 

182<h3 id="skills-in-cowork-and-cloud-sessions">183<h3 id="skills-in-cowork-and-cloud-sessions">

183 Usa skills en sesiones de Cowork y en la nube184 Usa skills en sesiones de Cowork y en la nube

184</h3>185</h3>

185 186 

186Las sesiones de [Cowork](https://claude.com/product/cowork) y [sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup), incluyendo [rutinas](/docs/es/routines), no leen `~/.claude/skills/` en tu máquina. Tanto las sesiones de Cowork interactivas como las programadas cargan las skills habilitadas para tu cuenta de claude.ai, sincronizadas al inicio de la sesión; adminístralas desde **Customize** en la barra lateral de la aplicación de escritorio o desde la configuración de skills en claude.ai. Las sesiones en la nube cargan adicionalmente las skills de proyecto confirmadas en el `.claude/skills/` del repositorio clonado.187Las sesiones [Cowork](https://claude.com/product/cowork) y [sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup), incluyendo [rutinas](/docs/es/routines), no leen `~/.claude/skills/` en tu máquina. Tanto las sesiones de Cowork interactivas como las programadas cargan las skills habilitadas para tu cuenta claude.ai, sincronizadas al inicio de la sesión; adminístralas desde **Customize** en la barra lateral de la aplicación de escritorio o desde la configuración de skills en claude.ai. Las sesiones en la nube cargan además skills de proyecto confirmadas en el `.claude/skills/` del repositorio clonado.

187 188 

188Si una skill existe solo en `~/.claude/skills/` en tu máquina, Claude Code reporta que la skill no fue encontrada cuando una [rutina](/docs/es/routines) la invoca, porque cada ejecución de rutina comienza como una sesión en la nube nueva. Para hacer que una skill personal esté disponible en estas sesiones:189Si una skill existe solo en `~/.claude/skills/` en tu máquina, Claude Code reporta que la skill no fue encontrada cuando una [rutina](/docs/es/routines) la invoca, porque cada ejecución de rutina comienza como una sesión en la nube nueva. Para hacer una skill personal disponible en estas sesiones:

189 190 

190* Para sesiones de Cowork y en la nube, habilita la skill para tu cuenta de claude.ai.191* Para sesiones de Cowork y en la nube, habilita la skill para tu cuenta claude.ai.

191* Para sesiones en la nube, puedes en su lugar confirmar la skill en el `.claude/skills/` del repositorio. Los plugins declarados en el `.claude/settings.json` del repositorio [se instalan al inicio de la sesión](/docs/es/cloud-environments#what-carries-over-from-your-setup); los plugins habilitados solo en tu configuración de usuario no se transfieren.192* Para sesiones en la nube, puedes en su lugar confirmar la skill en el `.claude/skills/` del repositorio. Los plugins declarados en el `.claude/settings.json` del repositorio y los plugins habilitados solo en tu configuración de usuario [no cargan en sesiones en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).

192 193 

193Las [tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) se ejecutan localmente en tu máquina, por lo que cargan `~/.claude/skills/`.194Las [tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) se ejecutan localmente en tu máquina, por lo que sí cargan `~/.claude/skills/`.

194 195 

195<h3 id="how-synced-skills-behave">196<h3 id="how-synced-skills-behave">

196 Skills sincronizadas desde claude.ai197 Skills sincronizadas desde claude.ai

197</h3>198</h3>

198 199 

199Esta sección se aplica a ti si usas sesiones de Cowork o en la nube, o inicias sesión en Claude Code en tu terminal con una cuenta de claude.ai. En esas sesiones, Claude Code carga las skills habilitadas para tu cuenta de claude.ai, sin ninguna configuración de tu parte, como describe [Dónde se cargan las skills sincronizadas](#where-synced-skills-load). Esas skills incluyen las que creas o actives en tu configuración de claude.ai, skills que tu organización proporciona allí, y las skills integradas de Anthropic como `pdf` y `xlsx`.200Esta sección se aplica a ti si usas sesiones de Cowork o en la nube, o inicias sesión en Claude Code en tu terminal con una cuenta claude.ai. En esas sesiones, Claude Code carga las skills habilitadas para tu cuenta claude.ai, sin configuración de tu parte, como describe [Dónde cargan las skills sincronizadas](#where-synced-skills-load). Esas skills incluyen las que creas o actives en tu configuración de claude.ai, skills que tu organización proporciona allí, y skills integradas de Anthropic como `pdf` y `xlsx`.

200 201 

201Claude Code descarga una skill sincronizada desde tu cuenta en lugar de leer un archivo que escribiste en la máquina donde se ejecuta la sesión, por lo que aplica reglas a las skills sincronizadas que no se aplican a las skills que almacenas en las [ubicaciones de skills](#where-skills-live).202Claude Code descarga una skill sincronizada desde tu cuenta en lugar de leer un archivo que escribiste en la máquina donde se ejecuta la sesión, por lo que aplica reglas a las skills sincronizadas que no se aplican a las skills que almacenas en las [ubicaciones de skills](#where-skills-live).

202 203 

203<h4 id="where-synced-skills-load">204<h4 id="where-synced-skills-load">

204 Dónde se cargan las skills sincronizadas205 Dónde cargan las skills sincronizadas

205</h4>206</h4>

206 207 

207En una sesión de Cowork o en la nube, Claude Code carga las skills habilitadas para tu cuenta de claude.ai, y [Skills en sesiones de Cowork y en la nube](#skills-in-cowork-and-cloud-sessions) dice cómo elegir qué skills obtienen esas sesiones.208En una sesión de Cowork o en la nube, Claude Code carga las skills habilitadas para tu cuenta claude.ai, y [Skills en sesiones de Cowork y en la nube](#skills-in-cowork-and-cloud-sessions) dice cómo elegir qué skills obtienen esas sesiones.

208 209 

209En tu terminal, Claude Code sincroniza esas skills en sesiones donde inicias sesión con tu cuenta de claude.ai. Cuando la sesión comienza, Claude Code descarga las skills de tu cuenta en `~/.claude/skills/synced/` en segundo plano, luego verifica claude.ai para cambios aproximadamente cada 10 minutos mientras se ejecuta la sesión. Cuando una verificación encuentra que una skill fue agregada, editada o desactivada en claude.ai, Claude Code la agrega, actualiza o elimina en la sesión en ejecución sin un reinicio. La sincronización en sesiones de terminal requiere Claude Code v2.1.273 o posterior.210En tu terminal, Claude Code sincroniza esas skills en sesiones donde inicias sesión con tu cuenta claude.ai. Cuando la sesión comienza, Claude Code descarga las skills de tu cuenta en `~/.claude/skills/synced/` en segundo plano, luego verifica claude.ai en busca de cambios aproximadamente cada 10 minutos mientras se ejecuta la sesión. Cuando una verificación encuentra que una skill fue añadida, editada o desactivada en claude.ai, Claude Code la añade, actualiza o elimina en la sesión en ejecución sin un reinicio. La sincronización en sesiones de terminal requiere Claude Code v2.1.273 o posterior.

210 211 

211La sincronización nunca retrasa el inicio, porque Claude espera la descarga de una skill solo cuando la invoca. Una ejecución corta [no interactiva](/docs/es/headless) puede por lo tanto terminar antes de que una skill recién agregada se descargue, en cuyo caso una sesión posterior la descarga. Para hacer que una ejecución no interactiva descargue tus skills y espere la lista antes de responder el prompt, establece [`CLAUDE_CODE_SYNC_SKILLS`](/docs/es/env-vars#variables) en `1`.212La sincronización nunca retrasa el inicio, porque Claude espera la descarga de una skill solo cuando la invoca. Una ejecución corta [no interactiva](/docs/es/headless) puede por lo tanto terminar antes de que una skill recién añadida se descargue, en cuyo caso una sesión posterior la descarga. Para hacer que una ejecución no interactiva descargue tus skills y espere la lista antes de responder al prompt, establece [`CLAUDE_CODE_SYNC_SKILLS`](/docs/es/env-vars#variables) en `1`.

212 213 

213Claude Code sincroniza solo en una sesión que inicia sesión con tu cuenta de claude.ai y [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching). No sincroniza en estas sesiones:214Claude Code sincroniza solo en una sesión que inicia sesión con tu cuenta claude.ai y [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching). No sincroniza en estas sesiones:

214 215 

215* Una sesión que no usa un inicio de sesión almacenado por `/login`, como una que se autentica con una clave API, o una donde `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, o un script `apiKeyHelper` proporciona la credencial216* Una sesión que no usa un inicio de sesión almacenado por `/login`, como una que se autentica con una clave API, o una donde `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN` o un script `apiKeyHelper` suministra la credencial

216* Una sesión que no obtiene banderas de características, como una en Amazon Bedrock o una donde estableces `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`217* Una sesión que no obtiene banderas de características, como una en Amazon Bedrock o una donde estableces `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

217* Una sesión en [modo bare](/docs/es/headless#start-faster-with-bare-mode) o una que inicias con `--safe-mode`218* Una sesión en [modo bare](/docs/es/headless#start-faster-with-bare-mode) o una que inicias con `--safe-mode`

218* Una sesión donde la configuración administrada de tu organización [bloquea skills a fuentes de plugins](/docs/es/settings-reference#strictpluginonlycustomization-skills), o una que inicias con una lista [`--setting-sources`](/docs/es/cli-reference#cli-flags) que deja fuera `user`219* Una sesión donde la configuración administrada de tu organización [bloquea las skills a fuentes de plugins](/docs/es/settings-reference#strictpluginonlycustomization-skills), o una que inicias con una lista [`--setting-sources`](/docs/es/cli-reference#cli-flags) que deja fuera `user`

219 220 

220Si inicias sesión con `/login` durante una sesión, reinicia Claude Code para comenzar a sincronizar.221Si inicias sesión con `/login` durante una sesión, reinicia Claude Code para comenzar a sincronizar.

221 222 

222Las skills que una sesión anterior sincronizó permanecen en el disco. Claude Code las carga en sesiones posteriores iniciadas en la misma cuenta, incluso cuando no puede alcanzar claude.ai.223Las skills que una sesión anterior sincronizó permanecen en el disco. Claude Code las carga en sesiones posteriores iniciadas en la misma cuenta, incluso cuando no puede alcanzar claude.ai.

223 224 

224Claude Code descarga skills sincronizadas y nunca las carga. Si tú o Claude editan un archivo bajo `~/.claude/skills/synced/`, el cambio no se guarda en tu cuenta de claude.ai, y una sincronización posterior puede sobrescribirlo o eliminarlo. Para cambiar una skill sincronizada, actualízala en claude.ai; la próxima sincronización descarga la nueva versión.225Claude Code descarga skills sincronizadas y nunca las carga de vuelta. Si tú o Claude editan un archivo bajo `~/.claude/skills/synced/`, el cambio no se guarda en tu cuenta claude.ai, y una sincronización posterior puede sobrescribirlo o eliminarlo. Para cambiar una skill sincronizada, actualízala en claude.ai; la siguiente sincronización descarga la nueva versión.

225 226 

226Para ver qué skills sincronizaron, ejecuta `/skills`. El menú las enumera bajo `claude.ai sync`.227Para ver qué skills se sincronizaron, ejecuta `/skills`. El menú las lista bajo `claude.ai sync`.

227 228 

228Algunas de las skills de Anthropic, como `pdf` y `xlsx`, siempre se sincronizan. Para el resto, activa o desactiva una skill en tu configuración de skills en claude.ai para cambiar si se sincroniza.229Algunas skills de Anthropic, como `pdf` y `xlsx`, siempre se sincronizan. Para el resto, activa o desactiva una skill en tu configuración de skills en claude.ai para cambiar si se sincroniza.

229 230 

230Para dejar de sincronizar en una máquina, establece [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) en `false` en tu configuración de usuario. Claude Code deja de descargar, y la próxima vez que inicie mueve las skills que ya sincronizó a `~/.claude/skills/.trash/` y ya no las carga. Tu organización puede desactivar la sincronización para todos desactivando Skills en claude.ai. Para dejar de sincronizar mientras mantienes Skills activado, puede establecer la misma clave en [configuración administrada](/docs/es/managed-settings).231Para dejar de sincronizar en una máquina, establece [`syncClaudeAiSkills`](/docs/es/settings-reference#syncclaudeaiskills) en `false` en tu configuración de usuario. Claude Code deja de descargar, y la próxima vez que inicie mueve las skills que ya sincronizó a `~/.claude/skills/.trash/` y ya no las carga. Tu organización puede desactivar la sincronización para todos desactivando Skills en claude.ai. Para dejar de sincronizar mientras mantienes Skills activado, puede establecer la misma clave en [configuración administrada](/docs/es/managed-settings).

231 232 

232Si tu organización desactiva Skills en claude.ai, Claude Code elimina las skills descargadas y dejan de cargarse. Las skills eliminadas se mueven a `~/.claude/skills/.trash/`, donde puedes recuperar los archivos hasta que el [barrido de retención](/docs/es/claude-directory#cleaned-up-automatically) los elimine. Una vez que tu organización activa Skills nuevamente, Claude Code descarga las skills que habilitaste en la próxima sincronización.233Si tu organización desactiva Skills en claude.ai, Claude Code elimina las skills descargadas y dejan de cargar. Las skills eliminadas se mueven a `~/.claude/skills/.trash/`, donde puedes recuperar los archivos hasta que el [barrido de retención](/docs/es/claude-directory#cleaned-up-automatically) los elimine. Una vez que tu organización activa Skills nuevamente, Claude Code descarga las skills que habilitaste en la siguiente sincronización.

233 234 

234<h4 id="when-a-synced-skill-name-matches-another-command">235<h4 id="when-a-synced-skill-name-matches-another-command">

235 Cuando un nombre de skill sincronizada coincide con otro comando236 Cuando un nombre de skill sincronizada coincide con otro comando

236</h4>237</h4>

237 238 

238Puedes invocar una skill sincronizada por su nombre completo, `/anthropic-skills:<name>`, o por su nombre corto, `/<name>`. Cuando otro comando usa ese nombre corto, `/<name>` ejecuta el otro comando, y la skill sincronizada se ejecuta solo como `/anthropic-skills:<name>`. Con una skill local `deploy` y una sincronizada `deploy`, `/deploy` ejecuta la skill local y `/anthropic-skills:deploy` ejecuta la sincronizada. Antes de v2.1.269, una skill sincronizada tenía solo su nombre corto.239Puedes invocar una skill sincronizada por su nombre corto, `/<name>`, o por su nombre completo, `/anthropic-skills:<name>`. Cuando otro comando usa el nombre corto, `/<name>` ejecuta el otro comando, y la skill sincronizada se ejecuta solo como `/anthropic-skills:<name>`. Con una skill local `deploy` y una sincronizada `deploy`, `/deploy` ejecuta la skill local y `/anthropic-skills:deploy` ejecuta la sincronizada. Antes de v2.1.269, una skill sincronizada tenía solo su nombre corto.

239 240 

240El otro comando puede ser cualquiera de estos:241En el menú `/`, `/skills` y `/context`, una skill sincronizada aparece bajo su nombre corto, o bajo su nombre completo mientras otro comando usa el nombre corto. Ejecuta `/skills` en tu sesión. Una nota bajo la lista explica cada skill sincronizada que perdió su nombre corto. Si uno de tus skills personales o archivos de comando en `~/.claude/` usa el nombre, la nota también dice qué renombrar o eliminar para liberarlo.

241 242 

242* Un comando integrado o una [skill agrupada](#bundled-skills), incluyendo una que no esté disponible en tu sesión, por ejemplo después de que desactives las skills agrupadas243De v2.1.269 a v2.1.280, estas listas mostraban cada skill sincronizada bajo su nombre completo, y `/skills` no tenía tal nota; ambas cambiaron en v2.1.281.

244 

245El comando que usa el nombre corto puede ser cualquiera de estos:

246 

247* Un comando integrado o una [skill agrupada](#bundled-skills), incluyendo una que no está disponible en tu sesión, por ejemplo después de desactivar las skills agrupadas

243* Una skill en cualquier [nivel local](#where-skills-live) o un archivo en `.claude/commands/`248* Una skill en cualquier [nivel local](#where-skills-live) o un archivo en `.claude/commands/`

244* Una skill de plugin249* Una skill de plugin

245* Un [prompt de MCP](/docs/es/mcp#use-mcp-prompts-as-commands)250* Un [prompt MCP](/docs/es/mcp#use-mcp-prompts-as-commands)

246 251 

247Claude Code etiqueta las skills sincronizadas para que puedas saber de dónde vinieron. El menú `/skills` y `/context` agrupan las skills sincronizadas bajo `claude.ai sync`, y el menú de comando `/` las marca como provenientes de claude.ai.252Claude Code etiqueta las skills sincronizadas para que puedas decir de dónde vinieron. El menú `/skills` y `/context` agrupan las skills sincronizadas bajo `claude.ai sync`, y el menú de comando `/` las marca como provenientes de claude.ai.

248 253 

249Cuando compara nombres, Claude Code ignora mayúsculas, espacios y caracteres invisibles, y trata formas de compatibilidad como letras de ancho completo y variantes de guiones como sus equivalentes simples. Por ejemplo, una skill sincronizada llamada `Commit` y una skill local llamada `commit` cuentan como el mismo nombre, por lo que `/commit` sigue ejecutando tu skill local.254Cuando compara nombres, Claude Code ignora mayúsculas, espacios y caracteres invisibles, y trata formas de compatibilidad como letras de ancho completo y variantes de guiones como sus equivalentes simples. Por ejemplo, una skill sincronizada nombrada `Commit` y una skill local nombrada `commit` cuentan como el mismo nombre, por lo que `/commit` sigue ejecutando tu skill local.

250 255 

251Un nombre que difiere solo por una letra que se parece a otra del alfabeto cuenta como un nombre diferente, y la etiqueta `claude.ai sync` es cómo distingues los dos. Estas comprobaciones y etiquetas requieren Claude Code v2.1.228 o posterior.256Un nombre que difiere solo por una letra que se parece a otra del alfabeto cuenta como un nombre diferente, y la etiqueta `claude.ai sync` es cómo distingues los dos. Estas comprobaciones y etiquetas requieren Claude Code v2.1.228 o posterior.

252 257 

258<h4 id="names-reserved-for-synced-skills">

259 Nombres reservados para skills sincronizadas

260</h4>

261 

262Claude Code reserva el nombre `anthropic-skills`, y cada nombre dentro de ese espacio de nombres como `anthropic-skills:pdf`, para skills sincronizadas desde claude.ai, por lo que el nombre completo de una skill sincronizada nunca ejecuta nada más. El nombre está reservado en cada sesión, independientemente de si inicias sesión con una cuenta claude.ai o no.

263 

264* **Una carpeta de skill, un frontmatter `name`, un archivo o subcarpeta en `.claude/commands/`, o un [flujo de trabajo guardado](/docs/es/workflows#save-the-workflow-for-reuse)**: no carga. Un [aviso de inicio](/docs/es/errors#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) nombra el primer elemento a renombrar o editar.

265* **Un plugin nombrado `anthropic-skills`**: carga. Cuando una de sus skills y una skill sincronizada se nombran ambas `<name>`, `/anthropic-skills:<name>` ejecuta la skill sincronizada.

266* **Un servidor MCP nombrado `anthropic-skills`**: se conecta y sus herramientas funcionan, pero [sus prompts no aparecen como comandos](/docs/es/mcp#use-mcp-prompts-as-commands). Renombra el servidor en tu configuración de MCP para listarlos.

267 

253<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">268<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

254 Cómo Claude Code maneja el frontmatter de una skill sincronizada269 Cómo Claude Code maneja el frontmatter de una skill sincronizada

255</h4>270</h4>


257Claude Code aplica dos reglas al frontmatter de una skill sincronizada:272Claude Code aplica dos reglas al frontmatter de una skill sincronizada:

258 273 

259* Claude Code honra el frontmatter en cada tipo de sesión, por lo que una concesión `allowed-tools` pasa por el [flujo de permisos](/docs/es/permissions) normal.274* Claude Code honra el frontmatter en cada tipo de sesión, por lo que una concesión `allowed-tools` pasa por el [flujo de permisos](/docs/es/permissions) normal.

260* Claude Code sanitiza el texto de visualización que proporciona la skill, como su descripción. Elimina caracteres de control, y en texto que llega a Claude, como la descripción, también escapa los corchetes angulares para que el texto no pueda imitar el formato interno de Claude Code. Esta sanitización requiere Claude Code v2.1.228 o posterior.275* Claude Code sanitiza el texto de visualización que la skill suministra, como su descripción. Elimina caracteres de control, y en texto que llega a Claude, como la descripción, también escapa los corchetes angulares para que el texto no pueda imitar el formato interno de Claude Code. Esta sanitización requiere Claude Code v2.1.228 o posterior.

261 276 

262<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">277<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">

263 Cómo Claude Code maneja el cuerpo de una skill sincronizada278 Cómo Claude Code maneja el cuerpo de una skill sincronizada

264</h4>279</h4>

265 280 

266Lo que Claude Code hace con el cuerpo de una skill sincronizada depende de dónde se ejecute la sesión:281Lo que Claude Code hace con el cuerpo de una skill sincronizada depende de dónde se ejecuta la sesión:

267 282 

268* En una sesión en la nube, el cuerpo mantiene el comportamiento que tiene una skill local, porque la sesión se ejecuta en un contenedor aislado.283* En una sesión en la nube, el cuerpo mantiene el comportamiento que tiene una skill local, porque la sesión se ejecuta en un contenedor aislado.

269* En una sesión de Cowork en tu escritorio, el cuerpo mantiene el comportamiento que tiene una skill local, excepto que Claude Code reemplaza cada línea de comando `!` con el [marcador de posición `disableSkillShellExecution`](#inject-dynamic-context), como lo hace para cada skill que proporcionas allí.284* En una sesión de Cowork en tu escritorio, el cuerpo mantiene el comportamiento que tiene una skill local, excepto que Claude Code reemplaza cada línea de comando `!` con el [marcador de posición `disableSkillShellExecution`](#inject-dynamic-context), como lo hace para cada skill que suministras allí.

270* En cualquier otra sesión en tu máquina, Claude Code no ejecuta [comandos `!`](#inject-dynamic-context), no adjunta los archivos que las referencias `@` nombran de la manera que lo hace para una skill local, y no sustituye los marcadores de posición `${CLAUDE_PROJECT_DIR}` y `${CLAUDE_SESSION_ID}`, por lo que las referencias `@` y ambos marcadores de posición llegan a Claude como texto literal. Una línea de comando `!` también llega a Claude como texto literal, o como ese marcador de posición cuando `disableSkillShellExecution` está activado. Este manejo requiere Claude Code v2.1.228 o posterior.285* En cualquier otra sesión en tu máquina, Claude Code no ejecuta [comandos `!`](#inject-dynamic-context), no adjunta los archivos que las referencias `@` nombran de la manera que lo hace para una skill local, y no sustituye los marcadores de posición `${CLAUDE_PROJECT_DIR}` y `${CLAUDE_SESSION_ID}`, por lo que las referencias `@` y ambos marcadores de posición llegan a Claude como texto literal. Una línea de comando `!` llega a Claude como texto literal también, o como ese marcador de posición cuando `disableSkillShellExecution` está activado. Este manejo requiere Claude Code v2.1.228 o posterior.

271 286 

272<h3 id="live-change-detection">287<h3 id="live-change-detection">

273 Edita una skill durante una sesión288 Edita una skill durante una sesión

274</h3>289</h3>

275 290 

276Claude Code observa directorios de skills para cambios de archivo, excepto en [modo bare](/docs/es/headless#start-faster-with-bare-mode). Cuando agregas, editas o eliminas una skill bajo `~/.claude/skills/`, el `.claude/skills/` del proyecto, o un `.claude/skills/` dentro de un directorio `--add-dir`, Claude Code recoge el cambio dentro de la sesión actual, sin un reinicio. Si creas un directorio de skills de nivel superior que no existía cuando se inició la sesión, reinicia Claude Code para que pueda observar el nuevo directorio.291Claude Code observa directorios de skills en busca de cambios de archivos, excepto en [modo bare](/docs/es/headless#start-faster-with-bare-mode). Cuando añades, editas o eliminas una skill bajo `~/.claude/skills/`, el proyecto `.claude/skills/`, o un `.claude/skills/` dentro de un directorio `--add-dir`, Claude Code recoge el cambio dentro de la sesión actual, sin un reinicio.

277 292 

278La detección de cambios en vivo cubre solo el texto `SKILL.md`. Para una carpeta de skill que también es un [plugin](/docs/es/plugins/loading#plugins-shared-through-a-repository), los cambios en `hooks/`, `.mcp.json`, `agents/` y `output-styles/` necesitan `/reload-plugins` para tomar efecto.293Si creas un directorio de skills de nivel superior que no existía cuando la sesión comenzó, ejecuta [`/reload-skills`](/docs/es/commands#all-commands) para recoger las skills que pusiste allí. Claude Code aún no está observando ese directorio, por lo que ejecuta `/reload-skills` nuevamente después de cada cambio posterior allí.

294 

295La detección de cambios en vivo cubre solo texto `SKILL.md`. Para una carpeta de skill que también es un [plugin](/docs/es/plugins/loading#plugins-shared-through-a-repository), los cambios en `hooks/`, `.mcp.json`, `agents/` y `output-styles/` necesitan `/reload-plugins` para tomar efecto.

279 296 

280<h3 id="remove-a-skill">297<h3 id="remove-a-skill">

281 Elimina una skill298 Elimina una skill


283 300 

284Cómo eliminas una skill depende de dónde vino:301Cómo eliminas una skill depende de dónde vino:

285 302 

286* **Skill personal o de proyecto**: elimina el directorio de la skill, `~/.claude/skills/<skill-name>/` o `.claude/skills/<skill-name>/`. Claude Code [la elimina de `/skills` en la sesión actual](#live-change-detection); el contenido que Claude Code ya cargó de ella sigue el [ciclo de vida del contenido de la skill](#skill-content-lifecycle).303* **Skill personal o de proyecto**: elimina el directorio de la skill, `~/.claude/skills/<skill-name>/` o `.claude/skills/<skill-name>/`. Claude Code la [deja caer de `/skills` en la sesión actual](#live-change-detection); el contenido que Claude Code ya cargó de ella sigue el [ciclo de vida del contenido de la skill](#skill-content-lifecycle).

287* **Skill enterprise**: un administrador elimina el directorio de la skill desde `.claude/skills/` dentro del [directorio de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), por ejemplo `/etc/claude-code/.claude/skills/<skill-name>/` en Linux.304* **Skill enterprise**: un administrador elimina el directorio de la skill desde `.claude/skills/` dentro del [directorio de configuración administrada](/docs/es/managed-settings#delivery-mechanisms), por ejemplo `/etc/claude-code/.claude/skills/<skill-name>/` en Linux.

288* **Skill de plugin**: deshabilita o desinstala el plugin que la proporciona, desde el menú `/plugin` o con `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code descarga las skills del plugin cuando [el cambio se aplica](/docs/es/plugins/cli-reference#reload-plugins) o cuando reinicies.305* **Skill de plugin**: desactiva o desinstala el plugin que la proporciona, desde el menú `/plugin` o con `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code descarga las skills del plugin cuando [el cambio se aplica](/docs/es/plugins/cli-reference#reload-plugins) o cuando reinicies.

289* **Skill sincronizada desde claude.ai**: desactiva la skill para tu cuenta de claude.ai, en el mismo lugar donde la [habilitaste](#skills-in-cowork-and-cloud-sessions). Claude Code la elimina de `~/.claude/skills/synced/` la próxima vez que [sincroniza tus skills](#where-synced-skills-load). Si eliminas el directorio manualmente en su lugar, la próxima sincronización lo descarga nuevamente mientras la skill permanece habilitada en claude.ai.306* **Skill sincronizada desde claude.ai**: desactiva la skill para tu cuenta claude.ai, en el mismo lugar donde la [habilitaste](#skills-in-cowork-and-cloud-sessions). Claude Code la elimina de `~/.claude/skills/synced/` la próxima vez que [sincroniza tus skills](#where-synced-skills-load). Si eliminas el directorio a mano en su lugar, la siguiente sincronización lo descarga nuevamente mientras la skill permanece habilitada en claude.ai.

290* **Skill agrupada**: establece [`disableBundledSkills`](#bundled-skills) en `true` para desactivar las skills agrupadas, o establece una skill en `"off"` en [`skillOverrides`](#override-skill-visibility-from-settings) para ocultarla.307* **Skill agrupada**: establece [`disableBundledSkills`](#bundled-skills) en `true` para desactivar las skills agrupadas, o establece una skill en `"off"` en [`skillOverrides`](#override-skill-visibility-from-settings) para ocultarla.

291 308 

292Para mantener una skill personal o de proyecto pero evitar que Claude la invoque por sí sola, establece [`disable-model-invocation: true`](#control-who-invokes-a-skill) en su frontmatter, o `"user-invocable-only"` en [`skillOverrides`](#override-skill-visibility-from-settings) cuando no desees editar el archivo.309Para mantener una skill personal o de proyecto pero evitar que Claude la invoque por sí sola, establece [`disable-model-invocation: true`](#control-who-invokes-a-skill) en su frontmatter, o `"user-invocable-only"` en [`skillOverrides`](#override-skill-visibility-from-settings) cuando no quieras editar el archivo.

293 310 

294<h2 id="configure-skills">311<h2 id="configure-skills">

295 Configurar skills312 Configurar skills


360 377 

361| Campo | Requerido | Descripción |378| Campo | Requerido | Descripción |

362| :- | :- | :- |379| :- | :- | :- |

363| `name` | No | Nombre para mostrar en listados de skills. Por defecto es el nombre del directorio. Consulta [Cómo un skill obtiene su nombre de comando](#how-a-skill-gets-its-command-name) para ver cómo el campo interactúa con el nombre que escribes para invocar el skill. |380| `name` | No | Nombre del comando mostrado en el menú `/`. Por defecto es el nombre del directorio. Consulta [Cómo un skill obtiene su nombre de comando](#how-a-skill-gets-its-command-name) para ver cómo el campo interactúa con el nombre que escribes para invocar el skill. |

364| `description` | Recomendado | Qué hace el skill y cuándo usarlo. Claude usa esto para decidir cuándo aplicar el skill. Si se omite, usa la primera línea no vacía del contenido markdown. Pon el caso de uso clave primero: el texto combinado de `description` y `when_to_use` se trunca en 1.536 caracteres en el listado de skills para reducir el uso de contexto. |381| `description` | Recomendado | Qué hace el skill y cuándo usarlo. Claude usa esto para decidir cuándo aplicar el skill. Si se omite, usa la primera línea no vacía del contenido markdown. Pon el caso de uso clave primero: el texto combinado de `description` y `when_to_use` se trunca en 1.536 caracteres en el listado de skills para reducir el uso de contexto. |

365| `when_to_use` | No | Contexto adicional para cuándo Claude debe invocar el skill, como frases desencadenantes o solicitudes de ejemplo. Se añade a `description` en el listado de skills y cuenta hacia el límite de 1.536 caracteres. |382| `when_to_use` | No | Contexto adicional para cuándo Claude debe invocar el skill, como frases desencadenantes o solicitudes de ejemplo. Se añade a `description` en el listado de skills y cuenta hacia el límite de 1.536 caracteres. |

366| `argument-hint` | No | Sugerencia mostrada durante el autocompletado para indicar argumentos esperados. Ejemplo: `[issue-number]` o `[filename] [format]`. |383| `argument-hint` | No | Sugerencia mostrada durante el autocompletado para indicar argumentos esperados. Ejemplo: `[issue-number]` o `[filename] [format]`. |


406 Cómo un skill obtiene su nombre de comando423 Cómo un skill obtiene su nombre de comando

407</h4>424</h4>

408 425 

409El comando que escribes para invocar un skill proviene de dónde vive el archivo de skill y, para skills de plugin, también del campo de frontmatter `name`. En un skill personal o de proyecto, `name` establece solo la etiqueta de visualización mostrada en listados de skills, y el comando aún proviene del nombre del directorio. En un skill de plugin, `name` establece el último segmento del comando y el prefijo del plugin permanece en su lugar.426El comando que escribes para invocar un skill proviene de dónde vive el archivo de skill y, para directorios de skill y skills de plugin, del campo de frontmatter `name`. En un directorio de skill personal o de proyecto, `name` establece el comando que el menú `/` muestra y que escribes, a menos que otro comando ya use ese nombre. El nombre del directorio también invoca el skill. En un skill de plugin, `name` establece el último segmento del comando y el prefijo del plugin permanece en su lugar.

410 427 

411La tabla a continuación muestra de dónde proviene el nombre del comando para cada diseño:428La tabla a continuación muestra de dónde proviene el nombre del comando para cada diseño:

412 429 

413| Ubicación del skill | Fuente del nombre del comando | Ejemplo |430| Ubicación del skill | Fuente del nombre del comando | Ejemplo |

414| :- | :- | :- |431| :- | :- | :- |

415| Directorio de skill bajo `~/.claude/skills/` o `.claude/skills/` | Nombre del directorio | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |432| Directorio de skill bajo `~/.claude/skills/` o `.claude/skills/` | Frontmatter `name` o el nombre del directorio | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`, o `/deploy` con `name: deploy` |

416| Directorio [anidado](#where-skills-live) `.claude/skills/`, cuando el nombre choca con otro skill | Ruta del subdirectorio relativa al directorio de trabajo, luego el nombre del directorio de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |433| Directorio [anidado](#where-skills-live) `.claude/skills/`, cuando el nombre choca con otro skill | Ruta del subdirectorio relativa al directorio de trabajo, luego el nombre del directorio de skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| Archivo bajo `.claude/commands/` | Nombre del archivo sin extensión | `.claude/commands/deploy.md` → `/deploy` |434| Archivo bajo `.claude/commands/` | Nombre del archivo sin extensión | `.claude/commands/deploy.md` → `/deploy` |

418| Archivo en un subdirectorio de `.claude/commands/` | Ruta del subdirectorio relativa a `commands/` con cada `/` reemplazado por `:`, luego el nombre del archivo sin extensión | `.claude/commands/frontend/component.md` → `/frontend:component` |435| Archivo en un subdirectorio de `.claude/commands/` | Ruta del subdirectorio relativa a `commands/` con cada `/` reemplazado por `:`, luego el nombre del archivo sin extensión | `.claude/commands/frontend/component.md` → `/frontend:component` |


439| `$N` | Abreviatura para `$ARGUMENTS[N]`, como `$0` para el primer argumento o `$1` para el segundo. |456| `$N` | Abreviatura para `$ARGUMENTS[N]`, como `$0` para el primer argumento o `$1` para el segundo. |

440| `$name` | Argumento nombrado declarado en la lista de frontmatter [`arguments`](#frontmatter-reference). Los nombres se asignan a posiciones en orden, por lo que con `arguments: [issue, branch]` el marcador de posición `$issue` se expande al primer argumento y `$branch` al segundo. |457| `$name` | Argumento nombrado declarado en la lista de frontmatter [`arguments`](#frontmatter-reference). Los nombres se asignan a posiciones en orden, por lo que con `arguments: [issue, branch]` el marcador de posición `$issue` se expande al primer argumento y `$branch` al segundo. |

441| `${CLAUDE_SESSION_ID}` | El ID de sesión actual. Útil para registro, creación de archivos específicos de sesión o correlación de salida de skill con sesiones. |458| `${CLAUDE_SESSION_ID}` | El ID de sesión actual. Útil para registro, creación de archivos específicos de sesión o correlación de salida de skill con sesiones. |

442| `${CLAUDE_EFFORT}` | El nivel de esfuerzo actual: `low`, `medium`, `high`, `xhigh` o `max`. Ultracode no es un nivel distinto e informa como `xhigh`. Úsalo para adaptar instrucciones de skill a la configuración de esfuerzo activa. |459| `${CLAUDE_EFFORT}` | El nivel de esfuerzo actual: `low`, `medium`, `high`, `xhigh` o `max`. Úsalo para adaptar instrucciones de skill a la configuración de esfuerzo activa. |

443| `${CLAUDE_SKILL_DIR}` | El directorio que contiene el archivo `SKILL.md` del skill. Para skills de plugin, este es el subdirectorio del skill dentro del plugin, no la raíz del plugin. Úsalo en comandos de inyección bash para hacer referencia a scripts o archivos incluidos con el skill, independientemente del directorio de trabajo actual. |460| `${CLAUDE_SKILL_DIR}` | El directorio que contiene el archivo `SKILL.md` del skill. Para skills de plugin, este es el subdirectorio del skill dentro del plugin, no la raíz del plugin. Úsalo en comandos de inyección bash para hacer referencia a scripts o archivos incluidos con el skill, independientemente del directorio de trabajo actual. |

444| `${CLAUDE_PROJECT_DIR}` | El directorio raíz del proyecto. Esta es la misma ruta que [hooks](/docs/es/hooks#reference-scripts-by-path) y servidores MCP reciben como `CLAUDE_PROJECT_DIR`. Úsalo para hacer referencia a scripts o archivos locales del proyecto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independientemente de dónde esté instalado el skill. |461| `${CLAUDE_PROJECT_DIR}` | El directorio raíz del proyecto. Esta es la misma ruta que [hooks](/docs/es/hooks#reference-scripts-by-path) y servidores MCP reciben como `CLAUDE_PROJECT_DIR`. Úsalo para hacer referencia a scripts o archivos locales del proyecto, como `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independientemente de dónde esté instalado el skill. |

445| `${CLAUDE_PLUGIN_ROOT}` | El directorio de instalación del plugin. Se sustituye solo en skills de plugin. Úsalo para hacer referencia a scripts o archivos incluidos en cualquier lugar del plugin, incluidos recursos compartidos entre los skills del plugin. Consulta [variables de entorno del plugin](/docs/es/plugins/manifest-reference#environment-variables). |462| `${CLAUDE_PLUGIN_ROOT}` | El directorio de instalación del plugin. Se sustituye solo en skills de plugin. Úsalo para hacer referencia a scripts o archivos incluidos en cualquier lugar del plugin, incluidos recursos compartidos entre los skills del plugin. Consulta [variables de entorno del plugin](/docs/es/plugins/manifest-reference#environment-variables). |


826Skill(deploy *)843Skill(deploy *)

827```844```

828 845 

829Sintaxis de permisos: `Skill(name)` para coincidencia exacta, `Skill(name *)` para coincidencia de prefijo con cualquier argumento.846Sintaxis de permisos: `Skill(name)` para coincidencia exacta, `Skill(name *)` para coincidencia de prefijo con cualquier argumento. En una regla `allow`, un prefijo fuera del [espacio de nombres reservado para skills sincronizadas](#names-reserved-for-synced-skills) no coincide con los nombres dentro de él: `Skill(anthropic *)` no cubre `anthropic-skills:pdf`.

830 847 

831Si su regla `deny` nombra un alias o un nombre no calificado en lugar del nombre de la skill, Claude Code aún bloquea la skill: con `Skill(review)` bloquea el `/code-review` agrupado a través de su alias `/review`, y con `Skill(deploy)` bloquea una [skill anidada](#where-skills-live) listada como `apps/web:deploy` a través de su nombre no calificado. Antes de v2.1.260, Claude Code no bloqueaba una skill anidada listada bajo su nombre calificado cuando la regla de denegación solo nombraba el nombre no calificado.848Si su regla `deny` nombra un alias o un nombre no calificado en lugar del nombre de la skill, Claude Code aún bloquea la skill: con `Skill(review)` bloquea el `/code-review` agrupado a través de su alias `/review`, y con `Skill(deploy)` bloquea una [skill anidada](#where-skills-live) listada como `apps/web:deploy` a través de su nombre no calificado. Antes de v2.1.260, Claude Code no bloqueaba una skill anidada listada bajo su nombre calificado cuando la regla de denegación solo nombraba el nombre no calificado.

832 849 

833Claude Code coincide una regla `allow` solo contra el nombre de la skill y el nombre en la invocación de Claude.850Claude Code coincide una regla `allow` solo contra el nombre de la skill y el nombre en la invocación de Claude.

834 851 

852Para aprobar una [skill sincronizada](#how-synced-skills-behave) sin un prompt, nombre la dentro de su [espacio de nombres reservado](#names-reserved-for-synced-skills): `Skill(anthropic-skills:pdf)` aprueba la skill `pdf` sincronizada, y `Skill(anthropic-skills *)` aprueba cada skill sincronizada.

853 

835**Ocultar skills individuales** agregando `disable-model-invocation: true` a su frontmatter. Esto elimina la skill del contexto de Claude por completo.854**Ocultar skills individuales** agregando `disable-model-invocation: true` a su frontmatter. Esto elimina la skill del contexto de Claude por completo.

836 855 

837<Note>856<Note>

statusline.md +16 −16

Details

146 Cómo funcionan las líneas de estado146 Cómo funcionan las líneas de estado

147</h2>147</h2>

148 148 

149Claude Code ejecuta tu script con [datos de sesión JSON](#available-data) en stdin y muestra lo que el script imprime en stdout.149Claude Code ejecuta su script con [datos de sesión JSON](#available-data) en stdin y muestra lo que el script imprime en stdout.

150 150 

151**Cuándo se actualiza**151**Cuándo se actualiza**

152 152 

153Tu script se ejecuta una vez cuando comienza una sesión, incluyendo cuando reanudas una. Después de eso, se ejecuta nuevamente cuando:153Su script se ejecuta una vez cuando comienza una sesión, incluyendo cuando reanuda una. Después de eso, se ejecuta nuevamente cuando:

154 154 

155* Llega un nuevo mensaje del asistente155* Llega un nuevo mensaje del asistente

156* `/compact` finaliza156* `/compact` finaliza

157* El modo de permiso cambia157* El modo de permiso cambia

158* El modo Vim se activa o desactiva158* El modo Vim se activa o desactiva

159* Cambias el `command` en tu configuración de `statusLine`159* Cambia el `command` en su configuración de `statusLine`

160* Un temporizador [`refreshInterval`](#manually-configure-a-status-line) se agota, si estableces uno160* Un temporizador [`refreshInterval`](#manually-configure-a-status-line) se agota, si establece uno

161* Una ventana de [límite de velocidad](#rate-limit-usage) en los datos que tu script recibió por última vez alcanza su tiempo `resets_at`161* Una ventana de [límite de velocidad](#rate-limit-usage) en los datos que su script recibió por última vez alcanza su tiempo `resets_at`

162* Un [caché de prompt](#prompt-cache-fields) cálido en los datos que tu script recibió por última vez alcanza su tiempo `expires_at`162* Un [caché de prompt](#prompt-cache-fields) cálido en los datos que su script recibió por última vez alcanza su tiempo `expires_at`

163 163 

164Claude Code debounce las actualizaciones en 300ms, por lo que los cambios rápidos se agrupan y tu script se ejecuta una vez después de que los cambios se detienen. Un cambio en el `command` mismo omite el debounce: Claude Code ejecuta el nuevo comando de inmediato. Si una nueva actualización se activa mientras tu script aún se está ejecutando, Claude Code cancela el script en vuelo. Si editas tu script, los cambios aparecen la próxima vez que un disparador de actualización lo vuelve a ejecutar.164Claude Code debounce las actualizaciones a 300ms, por lo que los cambios rápidos se agrupan y su script se ejecuta una vez después de que los cambios se detienen. Un cambio en el propio `command` omite el debounce: Claude Code ejecuta el nuevo comando de inmediato. Si una nueva actualización se activa mientras su script aún se está ejecutando, Claude Code cancela el script en vuelo. Si edita su script, los cambios aparecen la próxima vez que un disparador de actualización lo vuelve a ejecutar.

165 165 

166Los disparadores impulsados por eventos pueden quedarse en silencio cuando la sesión principal está inactiva, por ejemplo mientras un coordinador espera en subagentes de fondo. Para mantener 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.166Los disparadores impulsados por eventos pueden quedarse en silencio cuando la sesión principal está inactiva, por ejemplo mientras un coordinador espera en subagentes de fondo. Para mantener los segmentos basados en tiempo o de fuentes externas actualizados durante períodos de inactividad, establezca [`refreshInterval`](#manually-configure-a-status-line) para también volver a ejecutar el comando en un temporizador fijo.

167 167 

168**Lo que tu script puede generar**168**Lo que su script puede generar**

169 169 

170* **Múltiples líneas**: cada declaración `echo` o `print` se muestra como una fila separada. Consulta el [ejemplo de múltiples líneas](#display-multiple-lines).170* **Múltiples líneas**: cada declaración `echo` o `print` se muestra como una fila separada. Vea el [ejemplo de múltiples líneas](#display-multiple-lines).

171* **Colores**: usa [códigos de escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) como `\033[32m` para verde (la terminal debe admitirlos). Consulta el [ejemplo de estado de git](#git-status-with-colors).171* **Colores**: use [códigos de escape ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) como `\033[32m` para verde (la terminal debe admitirlos). Vea el [ejemplo de estado de git](#git-status-with-colors).

172* **Enlaces**: usa [secuencias de escape OSC 8](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) para hacer que el texto sea clickeable (Cmd+clic en macOS, Ctrl+clic en Windows/Linux). Requiere una terminal que admita hipervínculos como iTerm2, Kitty o WezTerm. Consulta el [ejemplo de enlaces clickeables](#clickable-links).172* **Enlaces**: use [secuencias de escape OSC 8](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) para hacer que el texto sea clickeable (Cmd+clic en macOS, Ctrl+clic en Windows/Linux). Requiere una terminal que admita hipervínculos como iTerm2, Kitty o WezTerm. Vea el [ejemplo de enlaces clickeables](#clickable-links).

173 173 

174**Ajustar el tamaño de la salida a la terminal**174**Ajustar el tamaño de la salida a la terminal**

175 175 

176Claude Code captura la salida de tu script en lugar de conectarla directamente a la terminal, por lo que `tput cols` y la detección de ancho a nivel de lenguaje no pueden leer el tamaño de la terminal desde dentro del script. Lee las variables de entorno `COLUMNS` y `LINES` en su lugar. Claude Code establece estas variables con las dimensiones actuales de la terminal antes de ejecutar tu script.176Claude Code captura la salida de su script en lugar de conectarla directamente a la terminal, por lo que `tput cols` y la detección de ancho a nivel de lenguaje no pueden leer el tamaño de la terminal desde dentro del script. Lea las variables de entorno `COLUMNS` y `LINES` en su lugar. Claude Code establece estas en las dimensiones actuales de la terminal antes de ejecutar su script.

177 177 

178<Note>La línea de estado se ejecuta localmente y no consume tokens de API. Se oculta temporalmente durante ciertas interacciones de la interfaz, incluidas sugerencias de autocompletado, el menú de ayuda y solicitudes de permiso.</Note>178<Note>La línea de estado se ejecuta localmente y no consume tokens de API. Se oculta temporalmente durante ciertas interacciones de la interfaz de usuario, incluyendo el menú de ayuda y los avisos de permisos.</Note>

179 179 

180<h2 id="available-data">180<h2 id="available-data">

181 Datos disponibles181 Datos disponibles


202| `context_window.current_usage` | Conteos de tokens de la última llamada a API, descritos en [campos de ventana de contexto](#context-window-fields) |202| `context_window.current_usage` | Conteos de tokens de la última llamada a API, descritos en [campos de ventana de contexto](#context-window-fields) |

203| `exceeds_200k_tokens` | Si el conteo total de tokens (tokens de entrada, caché y salida combinados) de la respuesta de API más reciente excede 200k. Este es un umbral fijo independientemente del tamaño real de la ventana de contexto. |203| `exceeds_200k_tokens` | Si el conteo total de tokens (tokens de entrada, caché y salida combinados) de la respuesta de API más reciente excede 200k. Este es un umbral fijo independientemente del tamaño real de la ventana de contexto. |

204| `fast_mode` | Si [fast mode](/docs/es/fast-mode) está habilitado para la sesión |204| `fast_mode` | Si [fast mode](/docs/es/fast-mode) está habilitado para la sesión |

205| `effort.level` | Nivel de esfuerzo de razonamiento actual (`low`, `medium`, `high`, `xhigh`, o `max`). Refleja el valor de sesión en vivo, incluidos cambios de `/effort` a mitad de sesión. Ultracode no es un nivel distinto y se reporta como `xhigh`. Ausente cuando el modelo actual no admite el parámetro de esfuerzo |205| `effort.level` | Nivel de esfuerzo de razonamiento actual (`low`, `medium`, `high`, `xhigh`, o `max`). Refleja el valor de sesión en vivo, incluidos cambios de `/effort` a mitad de sesión. Ausente cuando el modelo actual no admite el parámetro de esfuerzo |

206| `thinking.enabled` | Si el pensamiento extendido está habilitado para la sesión |206| `thinking.enabled` | Si el pensamiento extendido está habilitado para la sesión |

207| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | Porcentaje del límite de velocidad de 5 horas o 7 días consumido, de 0 a 100 |207| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | Porcentaje del límite de velocidad de 5 horas o 7 días consumido, de 0 a 100 |

208| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Segundos de época Unix cuando se reinicia la ventana de límite de velocidad de 5 horas o 7 días |208| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Segundos de época Unix cuando se reinicia la ventana de límite de velocidad de 5 horas o 7 días |


1166* En Windows con Git Bash instalado, es probable que las barras invertidas en la ruta del `command` se consuman como caracteres de escape antes de que se ejecute el script. Usa barras diagonales en la ruta. Consulta [Configuración de Windows](#windows-configuration).1166* En Windows con Git Bash instalado, es probable que las barras invertidas en la ruta del `command` se consuman como caracteres de escape antes de que se ejecute el script. Usa barras diagonales en la ruta. Consulta [Configuración de Windows](#windows-configuration).

1167* Si `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](/docs/es/hooks#disable-or-remove-hooks), Claude Code ejecuta solo un `statusLine` de la configuración administrada, y sin un `statusLine` administrado la línea de estado está deshabilitada. Elimina la configuración o establécela en `false` en el archivo que la establece para volver a habilitarla. Consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks).1167* Si `disableAllHooks` es `true` fuera de la configuración administrada después de que se aplica la [precedencia de configuración](/docs/es/hooks#disable-or-remove-hooks), Claude Code ejecuta solo un `statusLine` de la configuración administrada, y sin un `statusLine` administrado la línea de estado está deshabilitada. Elimina la configuración o establécela en `false` en el archivo que la establece para volver a habilitarla. Consulta [`disableAllHooks`](/docs/es/settings-reference#disableallhooks).

1168* Si tu organización establece `allowManagedHooksOnly` en la configuración administrada, tu línea de estado personalizada desaparece sin advertencia: solo puedes obtener una línea de estado de un valor `statusLine` en esa configuración administrada. Consulta [qué se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para el comportamiento completo, y pregunta a tu administrador si esta configuración se aplica a ti.1168* Si tu organización establece `allowManagedHooksOnly` en la configuración administrada, tu línea de estado personalizada desaparece sin advertencia: solo puedes obtener una línea de estado de un valor `statusLine` en esa configuración administrada. Consulta [qué se ejecuta bajo `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) para el comportamiento completo, y pregunta a tu administrador si esta configuración se aplica a ti.

1169* Ejecuta `claude --debug` para registrar el código de salida y stderr de la primera invocación de línea de estado en una sesión1169* Ejecuta `claude --debug` para registrar el stderr de tu script en cada invocación de línea de estado, y su código de salida en la primera invocación en una sesión

1170* Pídele a Claude que lea tu archivo de configuración y ejecute el comando `statusLine` directamente para exponer errores1170* Pídele a Claude que lea tu archivo de configuración y ejecute el comando `statusLine` directamente para exponer errores

1171 1171 

1172**La línea de estado muestra `--` o valores vacíos**1172**La línea de estado muestra `--` o valores vacíos**

sub-agents.md +55 −51

Details

8 8 

9Los subagentes son asistentes de IA especializados que manejan tipos específicos de tareas. Utilice uno cuando una tarea secundaria inundaría su conversación principal con resultados de búsqueda, registros o contenidos de archivos que no volverá a consultar: el subagente realiza ese trabajo en su propio contexto y devuelve solo el resumen. Defina un subagente personalizado cuando siga generando el mismo tipo de trabajador con las mismas instrucciones.9Los subagentes son asistentes de IA especializados que manejan tipos específicos de tareas. Utilice uno cuando una tarea secundaria inundaría su conversación principal con resultados de búsqueda, registros o contenidos de archivos que no volverá a consultar: el subagente realiza ese trabajo en su propio contexto y devuelve solo el resumen. Defina un subagente personalizado cuando siga generando el mismo tipo de trabajador con las mismas instrucciones.

10 10 

11Cada subagente se ejecuta en su propia ventana de contexto con un mensaje del sistema personalizado, acceso a herramientas específicas y permisos independientes. Cuando Claude encuentra una tarea que coincide con la descripción de un subagente, delega en ese subagente, que trabaja de forma independiente y devuelve resultados. Para ver el ahorro de contexto en la práctica, la [visualización de la ventana de contexto](/docs/es/context-window) muestra un recorrido por una sesión donde un subagente maneja la investigación en su propia ventana separada.11Cada subagente se ejecuta en su propia ventana de contexto con un mensaje del sistema personalizado, acceso a herramientas específicas y permisos independientes. También envía sus propias solicitudes, que cuentan hacia los mismos [límites de uso](/docs/es/costs#plan-usage-breakdown) que su conversación principal. Cuando Claude encuentra una tarea que coincide con la descripción de un subagente, delega en ese subagente, que trabaja de forma independiente y devuelve resultados. Para ver el ahorro de contexto en la práctica, la [visualización de la ventana de contexto](/docs/es/context-window) muestra un recorrido por una sesión donde un subagente maneja la investigación en su propia ventana separada.

12 12 

13<Note>13<Note>

14 Los subagentes funcionan dentro de una única sesión. Para ejecutar muchas sesiones independientes en paralelo y supervisarlas desde un único lugar, consulte [agentes en segundo plano](/docs/es/agent-view). Para sesiones separadas que se pasen mensajes entre sí, consulte [mensajería entre sesiones](/docs/es/cross-session-messaging). Para un equipo coordinado de sesiones que Claude genera y supervisa, consulte [equipos de agentes](/docs/es/agent-teams).14 Los subagentes funcionan dentro de una única sesión. Para ejecutar muchas sesiones independientes en paralelo y supervisarlas desde un único lugar, consulte [agentes en segundo plano](/docs/es/agent-view). Para sesiones separadas que se pasen mensajes entre sí, consulte [mensajería entre sesiones](/docs/es/cross-session-messaging). Para un equipo coordinado de sesiones que Claude genera y supervisa, consulte [equipos de agentes](/docs/es/agent-teams).


230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233La bandera `--agents` acepta JSON con un campo `prompt` más estos campos de [frontmatter](#supported-frontmatter-fields): `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, e `isolation`. Use `prompt` para el mensaje del sistema, equivalente al cuerpo markdown en subagentes basados en archivos. `color` y `experimental` no se aceptan aquí y se ignoran en lugar de rechazarse.233En [modo no interactivo](/docs/es/headless), `--agents` también acepta la ruta a un archivo JSON que contiene el mismo objeto, para definiciones demasiado grandes para pasar en la línea de comandos. Por ejemplo, `claude -p --agents ./agents.json "Review my changes"` lee las definiciones de ese archivo. En una sesión interactiva, Claude Code rechaza una ruta de archivo. La forma de archivo requiere Claude Code v2.1.281 o posterior.

234 234 

235Cada clave de nivel superior en el JSON es el nombre del agente. No comience un nombre con `-`.235Cada clave de nivel superior en el JSON es el nombre de un agente, y su valor es la definición de ese agente. No comience un nombre con `-`. Una definición toma estos campos:

236 

237* **`prompt`**: el mensaje del sistema del agente, equivalente al cuerpo markdown en subagentes basados en archivos. `prompt` puede estar vacío. Si selecciona un agente con un `prompt` vacío y sin campo `memory` como el agente de la sesión con `--agent`, el mensaje del sistema de la sesión se deja sin cambios. Un `prompt` vacío requiere Claude Code v2.1.281 o posterior.

238* **[Campos de frontmatter](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, e `isolation`.

239* **Campos ignorados**: `color` y `experimental` no se aceptan aquí y se ignoran en lugar de rechazarse.

236 240 

237Para lo que Claude Code hace con un valor que no puede cargar, y las banderas y variable de entorno que omiten esa verificación, consulte [`Configuración de --agents inválida`](/docs/es/errors#invalid-agents-configuration).241Para lo que Claude Code hace con un valor que no puede cargar, y las banderas y variable de entorno que omiten esa verificación, consulte [`Configuración de --agents inválida`](/docs/es/errors#invalid-agents-configuration).

238 242 


587 Modos de permiso591 Modos de permiso

588</h4>592</h4>

589 593 

590Establezca `permissionMode` para elegir el modo de permiso en el que se ejecuta un subagente. Use los valores de configuración de los modos, por lo que el modo Manual es `default`. Si lo deja sin establecer, el subagente hereda el modo de la conversación principal, que comienza como [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) en planes Pro, Max y Team a menos que su configuración u su organización lo cambien.594Establezca `permissionMode` para elegir el modo de permiso en el que se ejecuta un subagente. Use los valores de configuración de los modos, por lo que el modo Manual es `default`. Si lo deja sin establecer, el subagente hereda el [modo de permiso](/docs/es/permission-modes) de la conversación principal.

591 595 

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

593 597 


858 Entender la delegación automática862 Entender la delegación automática

859</h3>863</h3>

860 864 

861Claude delega tareas automáticamente en función de la descripción de la tarea en tu solicitud, el campo `description` en las configuraciones de subagentes y el contexto actual. Para fomentar la delegación proactiva, incluye frases como "use proactively" en el campo de descripción de tu subagente.865Claude delega automáticamente tareas basándose en la descripción de la tarea en tu solicitud, el campo `description` en las configuraciones de subagentes, y el contexto actual. Para fomentar la delegación proactiva, incluye frases como "use proactively" en el campo de descripción de tu subagente.

862 866 

863Mantén las descripciones breves: Claude Code muestra una advertencia de inicio cuando las descripciones combinadas de tus subagentes superan el [límite de 15,000 tokens](/docs/es/errors#agent-descriptions-are-over-the-15000-token-limit), y aún así carga todos los subagentes.867Mantén las descripciones breves: Claude Code muestra una advertencia de inicio cuando las descripciones combinadas de tus subagentes superan el [límite de 15,000 tokens](/docs/es/errors#agent-descriptions-are-over-the-15000-token-limit), y aún carga cada subagente.

864 868 

865Si el subagente se distribuye en un [plugin](/docs/es/plugins/overview), puedes medir con qué fiabilidad Claude delega a él en solicitudes realistas en lugar de verificar una a la vez: [`claude plugin eval`](/docs/es/plugin-evals) ejecuta cada solicitud con y sin el plugin y califica los resultados.869Si el subagente se incluye en un [plugin](/docs/es/plugins/overview), puedes medir con qué fiabilidad Claude lo delega en indicaciones realistas en lugar de verificar una por una: [`claude plugin eval`](/docs/es/plugin-evals) ejecuta cada indicación con y sin el plugin y califica los resultados.

866 870 

867<h3 id="invoke-subagents-explicitly">871<h3 id="invoke-subagents-explicitly">

868 Invocar subagentes explícitamente872 Invocar subagentes explícitamente


870 874 

871Cuando la delegación automática no es suficiente, puedes solicitar un subagente tú mismo. Tres patrones escalan desde una sugerencia única hasta un valor predeterminado de toda la sesión:875Cuando la delegación automática no es suficiente, puedes solicitar un subagente tú mismo. Tres patrones escalan desde una sugerencia única hasta un valor predeterminado de toda la sesión:

872 876 

873* **Lenguaje natural**: nombra el subagente en tu solicitud; Claude decide si delega877* **Lenguaje natural**: nombra el subagente en tu indicación; Claude decide si delega

874* **@-mention**: garantiza que el subagente se ejecute para una tarea878* **@-mention**: garantiza que el subagente se ejecute para una tarea

875* **Sesión completa**: toda la sesión utiliza el símbolo del sistema del subagente, las restricciones de herramientas y el modelo a través de la bandera `--agent` o la configuración `agent`879* **Sesión completa**: toda la sesión utiliza el indicador del sistema del subagente, restricciones de herramientas y modelo a través de la bandera `--agent` o la configuración `agent`

876 880 

877Para lenguaje natural, no hay sintaxis especial. Nombra el subagente y Claude típicamente delega:881Para lenguaje natural, no hay sintaxis especial. Nombra el subagente y Claude típicamente delega:

878 882 


881Have the code-reviewer subagent look at my recent changes885Have the code-reviewer subagent look at my recent changes

882```886```

883 887 

884**@-mention el subagente.** Escribe `@` y elige el subagente del typeahead, de la misma manera que @-mencionas archivos. Esto asegura que se ejecute ese subagente específico en lugar de dejar la elección a Claude:888**@-mention el subagente.** Escribe `@` y elige el subagente del autocompletado, de la misma manera que @-mencionas archivos. Esto asegura que se ejecute ese subagente específico en lugar de dejar la elección a Claude:

885 889 

886```text wrap theme={null}890```text wrap theme={null}

887@"code-reviewer (agent)" look at the auth changes891@"code-reviewer (agent)" look at the auth changes

888```892```

889 893 

890Tu mensaje completo aún va a Claude, que escribe el símbolo del sistema de la tarea del subagente en función de lo que solicitaste. El @-mention controla qué subagente invoca Claude, no qué símbolo del sistema recibe.894Tu mensaje completo aún va a Claude, que escribe el indicador de tarea del subagente basándose en lo que pediste. El @-mention controla qué subagente invoca Claude, no qué indicador recibe.

891 895 

892Los subagentes proporcionados por un [plugin](/docs/es/plugins/overview) habilitado aparecen en el typeahead bajo su nombre con alcance, como `my-plugin:code-reviewer` o `my-plugin:review:security` cuando el plugin [organiza agentes en subcarpetas](#choose-the-subagent-scope). Los subagentes de fondo nombrados que se ejecutan actualmente en la sesión también aparecen en el typeahead, mostrando su estado junto al nombre.896Los subagentes proporcionados por un [plugin](/docs/es/plugins/overview) habilitado aparecen en el autocompletado bajo su nombre con alcance, como `my-plugin:code-reviewer` o `my-plugin:review:security` cuando el plugin [organiza agentes en subcarpetas](#choose-the-subagent-scope). Los subagentes de fondo nombrados actualmente en ejecución en la sesión también aparecen en el autocompletado, mostrando su estado junto al nombre.

893 897 

894También puedes escribir la mención manualmente sin usar el selector: `@agent-<name>` para subagentes locales, o `@agent-` seguido del nombre con alcance para subagentes de plugin, por ejemplo `@agent-my-plugin:code-reviewer`. Mientras escribes esta forma, el typeahead muestra coincidencias de archivos en lugar de agentes. La mención del agente aún se resuelve cuando envías.898También puedes escribir la mención manualmente sin usar el selector: `@agent-<name>` para subagentes locales, o `@agent-` seguido del nombre con alcance para subagentes de plugin, por ejemplo `@agent-my-plugin:code-reviewer`. Mientras escribes esta forma, el autocompletado muestra coincidencias de archivos en lugar de agentes. La mención del agente aún se resuelve cuando envías.

895 899 

896**Ejecuta toda la sesión como un subagente.** Pasa [`--agent <name>`](/docs/es/cli-reference) para iniciar una sesión donde el hilo principal en sí toma el símbolo del sistema del subagente, las restricciones de herramientas y el modelo:900**Ejecuta toda la sesión como un subagente.** Pasa [`--agent <name>`](/docs/es/cli-reference) para iniciar una sesión donde el hilo principal en sí toma el indicador del sistema del subagente, restricciones de herramientas y modelo:

897 901 

898```bash theme={null}902```bash theme={null}

899claude --agent code-reviewer903claude --agent code-reviewer

900```904```

901 905 

902El símbolo del sistema del subagente reemplaza completamente el símbolo del sistema predeterminado de Claude Code, de la misma manera que [`--system-prompt`](/docs/es/cli-reference) lo hace. Los archivos `CLAUDE.md` y la memoria del proyecto aún se cargan a través del flujo de mensajes normal, incluso cuando la definición del agente establece [`omitClaudeMd`](#supported-frontmatter-fields).906A menos que el indicador del agente esté [vacío](#choose-the-subagent-scope), el indicador del sistema del subagente reemplaza completamente el indicador del sistema predeterminado de Claude Code, de la misma manera que [`--system-prompt`](/docs/es/cli-reference) lo hace. Los archivos `CLAUDE.md` y la memoria del proyecto aún se cargan a través del flujo de mensajes normal, incluso cuando la definición del agente establece [`omitClaudeMd`](#supported-frontmatter-fields).

903 907 

904El nombre del agente aparece como `@<name>` en el encabezado de inicio para que puedas confirmar que está activo.908El nombre del agente aparece como `@<name>` en el encabezado de inicio para que puedas confirmar que está activo.

905 909 

906Esto funciona con subagentes integrados y personalizados, y la elección persiste cuando reanudas la sesión: Claude Code restaura las restricciones de herramientas y el modelo del agente junto con la conversación. Si el agente ya no existe cuando reanudas, la sesión continúa con las herramientas predeterminadas y muestra una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available). Para el símbolo del sistema en cualquier caso, consulta [Banderas de símbolo del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations).910Esto funciona con subagentes integrados y personalizados, y la elección persiste cuando reanudas la sesión: Claude Code restaura las restricciones de herramientas y el modelo del agente junto con la conversación. Si el agente ya no existe cuando reanudas, la sesión continúa con las herramientas predeterminadas y muestra una [advertencia que nombra el agente](/docs/es/errors#session-agent-no-longer-available). Para el indicador del sistema en cualquier caso, consulta [Banderas de indicador del sistema en conversaciones reanudadas](/docs/es/cli-reference#system-prompt-flags-in-resumed-conversations).

907 911 

908Para un subagente proporcionado por un plugin, puedes pasar solo el nombre del agente y Claude Code lo encuentra:912Para un subagente proporcionado por un plugin, puedes pasar solo el nombre del agente y Claude Code lo encuentra:

909 913 


911claude --agent security-reviewer915claude --agent security-reviewer

912```916```

913 917 

914Si varios plugins proporcionan agentes con el mismo nombre, pasa el nombre con alcance para desambiguar:918Si múltiples plugins proporcionan agentes con el mismo nombre, pasa el nombre con alcance para desambiguar:

915 919 

916```bash theme={null}920```bash theme={null}

917claude --agent my-plugin:security-reviewer921claude --agent my-plugin:security-reviewer


935 939 

936Los subagentes pueden ejecutarse en primer plano o en fondo:940Los subagentes pueden ejecutarse en primer plano o en fondo:

937 941 

938* **Subagentes en primer plano** bloquean la conversación principal hasta completarse. Los avisos de permiso se te pasan a medida que surgen.942* **Subagentes en primer plano** bloquean la conversación principal hasta completarse. Los indicadores de permiso se te pasan a medida que surgen.

939* **Subagentes en fondo** se ejecutan simultáneamente mientras continúas trabajando. Cuando un subagente en fondo llega a una llamada de herramienta que necesita permiso, Claude Code muestra el aviso en tu sesión principal y nombra el subagente que está pidiendo. Aprueba para permitir que el subagente continúe, o presiona Esc para negar esa llamada de herramienta sin detener el subagente.943* **Subagentes en fondo** se ejecutan concurrentemente mientras continúas trabajando. Cuando un subagente en fondo llega a una llamada de herramienta que necesita permiso, Claude Code muestra el indicador en tu sesión principal y nombra el subagente que está pidiendo. Aprueba para permitir que el subagente continúe, o presiona Esc para negar esa llamada de herramienta sin detener el subagente.

940 944 

941Para cada subagente que Claude genera con la herramienta Agent, Claude Code elige primer plano o fondo del primero de estos casos que se aplique:945Para cada subagente que Claude genera con la herramienta Agent, Claude Code elige primer plano o fondo del primero de estos casos que se aplique:

942 946 

943* Si un compañero de [equipo de agentes](/docs/es/agent-teams#limitations) en proceso generó el subagente, Claude Code lo ejecuta en primer plano. Claude Code rechaza con un error generar un subagente de un compañero cuya definición establece [`background: true`](#supported-frontmatter-fields). Donde el [modo fork](#turn-fork-mode-on-or-off) está desactivado y no has [desactivado tareas en fondo](/docs/es/env-vars), Claude Code también rechaza con un error cuando un compañero establece `run_in_background: true`.947* Si un compañero de [equipo de agentes](/docs/es/agent-teams#limitations) en proceso generó el subagente, Claude Code lo ejecuta en primer plano. Claude Code rechaza con un error generar un subagente de compañero cuya definición establece [`background: true`](#supported-frontmatter-fields). Donde el [modo fork](#turn-fork-mode-on-or-off) está desactivado y no has [desactivado tareas en fondo](/docs/es/env-vars), Claude Code también rechaza con un error cuando un compañero establece `run_in_background: true`.

944* Si estableces [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars) en `1`, Claude Code ejecuta el subagente en primer plano, en todo tipo de sesión y si el modo fork está activado o no.948* Si estableces [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars) en `1`, Claude Code ejecuta el subagente en primer plano, en todo tipo de sesión y si el modo fork está activado o no.

945* Donde el [modo fork](#turn-fork-mode-on-or-off) está activado, como lo está por defecto en una sesión interactiva, Claude Code ejecuta el subagente en fondo, subagentes fork y no-fork por igual, y Claude no puede pedir el primer plano.949* Donde el [modo fork](#turn-fork-mode-on-or-off) está activado, como lo está por defecto en una sesión interactiva, Claude Code ejecuta el subagente en fondo, subagentes fork y no-fork por igual, y Claude no puede pedir el primer plano.

946* Donde el modo fork está desactivado, Claude ejecuta el subagente en fondo por defecto y en primer plano cuando necesita el resultado antes de continuar. El modo fork está desactivado en [modo no interactivo](/docs/es/headless) con `-p` y en el Agent SDK a menos que lo actives. Para mantener un subagente particular en fondo incluso cuando Claude quiere el resultado, establece su campo frontmatter [`background`](#supported-frontmatter-fields) en `true`.950* Donde el modo fork está desactivado, Claude ejecuta el subagente en fondo por defecto y en primer plano cuando necesita el resultado antes de continuar. El modo fork está desactivado en [modo no interactivo](/docs/es/headless) con `-p` y en el Agent SDK a menos que lo actives. Para mantener un subagente particular en fondo incluso cuando Claude quiere el resultado, establece su campo frontmatter [`background`](#supported-frontmatter-fields) en `true`.


949 953 

950Los subagentes en fondo se ejecutan con un [conjunto de herramientas integradas más pequeño](#available-tools) que los subagentes en primer plano, excepto para forks de conversación y subagentes en primer plano [reanudados](#resume-subagents).954Los subagentes en fondo se ejecutan con un [conjunto de herramientas integradas más pequeño](#available-tools) que los subagentes en primer plano, excepto para forks de conversación y subagentes en primer plano [reanudados](#resume-subagents).

951 955 

952Los subagentes en fondo muestran cada aviso de permiso en tu sesión principal. Cuando respondes a uno de esos avisos con una opción que dura más allá de esa llamada de herramienta, como una concesión que dura el resto de la sesión, Claude Code aplica tu respuesta a toda la sesión, incluyendo tu conversación principal.956Los subagentes en fondo muestran cada indicador de permiso en tu sesión principal. Cuando respondes uno de esos indicadores con una opción que dura más allá de esa llamada de herramienta, como una concesión que dura el resto de la sesión, Claude Code aplica tu respuesta a toda la sesión, incluyendo tu conversación principal.

953 957 

954Un subagente en fondo puede dejar un comando [Bash o PowerShell](/docs/es/tools-reference#background-commands) en fondo [ejecutándose más allá del final de su turno](/docs/es/interactive-mode#how-backgrounding-works). Cuando ese comando termina, Claude Code envía al subagente una notificación.958Un subagente en fondo puede dejar un comando [Bash o PowerShell](/docs/es/tools-reference#background-commands) en fondo [ejecutándose más allá del final de su turno](/docs/es/interactive-mode#how-backgrounding-works). Cuando ese comando termina, Claude Code envía al subagente una notificación.

955 959 


960* Donde el modo fork está desactivado, pide a Claude que ejecute una tarea en fondo o en primer plano964* Donde el modo fork está desactivado, pide a Claude que ejecute una tarea en fondo o en primer plano

961* Presiona **Ctrl+B** para poner en fondo una tarea en ejecución965* Presiona **Ctrl+B** para poner en fondo una tarea en ejecución

962 966 

963Claude Code borra la fila de un subagente en fondo del panel de subagentes debajo de la entrada de solicitud de dos maneras, dependiendo de cómo terminó el subagente:967Claude Code borra la fila de un subagente en fondo del panel de subagentes debajo de la entrada de indicación de una de dos maneras, dependiendo de cómo terminó el subagente:

964 968 

965* Cuando un subagente termina exitosamente, Claude Code elimina su fila inmediatamente y, excepto en [modo lector de pantalla](/docs/es/accessibility), muestra `/tasks to see subagents` en el pie de página durante 30 segundos. Durante esos 30 segundos, ejecuta [`/tasks`](/docs/es/commands) y presiona `Enter` en el subagente para abrir su transcripción. Antes de v2.1.232, Claude Code mantenía la fila durante 30 segundos después de que el subagente terminaba, igual que uno fallido, y no mostraba ninguna pista de pie de página.969* Cuando un subagente termina exitosamente, Claude Code elimina su fila inmediatamente y, excepto en [modo lector de pantalla](/docs/es/accessibility), muestra `/tasks to see subagents` en el pie de página durante 30 segundos. Durante esos 30 segundos, ejecuta [`/tasks`](/docs/es/commands) y presiona `Enter` en el subagente para abrir su transcripción. Antes de v2.1.232, Claude Code mantenía la fila durante 30 segundos después de que el subagente terminara, igual que uno fallido, y no mostraba ninguna pista de pie de página.

966* Cuando un subagente falla o lo detienes, Claude Code mantiene su fila durante 30 segundos. Para borrar la fila más rápido, selecciónala y presiona `x`.970* Cuando un subagente falla o lo detienes, Claude Code mantiene su fila durante 30 segundos. Para borrar la fila más rápido, selecciónala y presiona `x`.

967 971 

968Un subagente en fondo que se completa permanece listado en [`/tasks`](/docs/es/commands), marcado como hecho y ordenado debajo del trabajo en ejecución, durante los mismos 30 segundos que la pista de pie de página. Su vista de detalle permanece abierta cuando el subagente termina. Los subagentes que fallan o que detienes dejan la lista. Antes de v2.1.208, un subagente completado dejaba la lista en el momento en que terminaba y su vista de detalle se cerraba.972Un subagente en fondo que se completa permanece listado en [`/tasks`](/docs/es/commands), marcado como hecho y ordenado debajo del trabajo en ejecución, durante los mismos 30 segundos que la pista del pie de página. Su vista de detalle permanece abierta cuando el subagente termina. Los subagentes que fallan o que detienes dejan la lista. Antes de v2.1.208, un subagente completado dejaba la lista en el momento en que terminaba y su vista de detalle se cerraba.

969 973 

970<h3 id="subagent-names">974<h3 id="subagent-names">

971 Nombres de subagentes975 Nombres de subagentes

972</h3>976</h3>

973 977 

974Claude puede dar a un subagente un nombre pasando un parámetro `name` en la llamada de herramienta Agent, y puede hacerlo por su cuenta, sin pedirte permiso primero. El nombre hace que el subagente sea direccionable: Claude puede [enviarle un mensaje o reanudarlo por nombre](#resume-subagents) después de que termine.978Claude puede dar a un subagente un nombre pasando un parámetro `name` en la llamada de herramienta Agent, y puede hacerlo por su cuenta, sin preguntarte primero. El nombre hace que el subagente sea direccionable: Claude puede [enviarle un mensaje o reanudarlo por nombre](#resume-subagents) después de que termine.

975 979 

976En una sesión interactiva con [equipos de agentes](/docs/es/agent-teams) habilitados, un subagente que Claude genera desde la conversación principal con un `name` se lanza como un compañero en su lugar, a menos que la llamada sea un [fork](#fork-the-current-conversation) o pase `isolation` en la llamada misma. Un valor `isolation` en el frontmatter del subagente no lo previene, y el compañero entonces se ejecuta en el directorio de trabajo de la sesión principal. Consulta [Cómo Claude inicia equipos de agentes](/docs/es/agent-teams#how-claude-starts-agent-teams).980En una sesión interactiva con [equipos de agentes](/docs/es/agent-teams) habilitados, un subagente que Claude genera desde la conversación principal con un `name` se lanza como compañero en su lugar, a menos que la llamada sea un [fork](#fork-the-current-conversation) o pase `isolation` en la llamada misma. Un valor `isolation` en el frontmatter del subagente no lo previene, y el compañero entonces se ejecuta en el directorio de trabajo de la sesión principal. Consulta [Cómo Claude inicia equipos de agentes](/docs/es/agent-teams#how-claude-starts-agent-teams).

977 981 

978<h3 id="api-errors-in-subagents">982<h3 id="api-errors-in-subagents">

979 Errores de API en subagentes983 Errores de API en subagentes

980</h3>984</h3>

981 985 

982Cuando algo [corta la respuesta de un subagente a mitad de la transmisión](/docs/es/errors#the-response-above-may-be-incomplete), y la respuesta parcial contiene texto pero sin llamadas de herramienta, Claude Code solicita al subagente que continúe en lugar de terminar la ejecución. Esto sucede también en sesiones interactivas. La ejecución termina en el error solo una vez que esas continuaciones se agotan.986Cuando algo [corta la respuesta de un subagente a mitad de flujo](/docs/es/errors#the-response-above-may-be-incomplete), y la respuesta parcial contiene texto pero sin llamadas de herramienta, Claude Code solicita al subagente que continúe en lugar de terminar la ejecución. Esto sucede también en sesiones interactivas. La ejecución termina en el error solo una vez que esas continuaciones se agotan.

983 987 

984A partir de v2.1.199, un subagente cuya ejecución termina en un error de API, como un límite de uso o un error de servidor repetido, reporta esa falla de vuelta a Claude en lugar de devolver el texto de error como si fueran los hallazgos del subagente. Lo que Claude recibe depende de dónde se ejecutó el subagente:988A partir de v2.1.199, un subagente cuya ejecución termina en un error de API, como un límite de uso o un error de servidor repetido, reporta esa falla de vuelta a Claude en lugar de devolver el texto de error como si fueran los hallazgos del subagente. Lo que Claude recibe depende de dónde se ejecutó el subagente:

985 989 


996 1000 

997Claude Code escanea el informe final de cada subagente antes de que Claude lo lea. Un subagente puede haber leído archivos, páginas web o salida de comandos que nunca revisaste, y el texto de esas fuentes puede llevar instrucciones dirigidas a la conversación principal. El escaneo nunca elimina ni reformula nada; hace dos tipos de cambios que puedes notar en un informe:1001Claude Code escanea el informe final de cada subagente antes de que Claude lo lea. Un subagente puede haber leído archivos, páginas web o salida de comandos que nunca revisaste, y el texto de esas fuentes puede llevar instrucciones dirigidas a la conversación principal. El escaneo nunca elimina ni reformula nada; hace dos tipos de cambios que puedes notar en un informe:

998 1002 

999* **Inserción de barra invertida**: el escaneo inserta una barra invertida en el texto que imita la salida propia de Claude Code, como una etiqueta `<system-reminder>` o una línea que comienza con `Human:` o `Assistant:`, para que la imitación se lea como texto ordinario en lugar de ser confundida con parte de la conversación.1003* **Inserción de barra invertida**: el escaneo inserta una barra invertida en texto que imita la salida propia de Claude Code, como una etiqueta `<system-reminder>` o una línea que comienza con `Human:` o `Assistant:`, para que la imitación se lea como texto ordinario en lugar de ser confundida con parte de la conversación.

1000* **Línea de marcador**: el escaneo antepone una línea que comienza con `[harness: subagent output matched instruction-shaped pattern(s):` cuando el informe imita una etiqueta como `<system-reminder>` o menciona configuraciones de permiso como `bypassPermissions` o `--dangerously-skip-permissions`. Las menciones de configuración de permiso obtienen la línea de marcador, pero el texto en sí permanece como está escrito.1004* **Línea de marcador**: el escaneo antepone una línea que comienza con `[harness: subagent output matched instruction-shaped pattern(s):` cuando el informe imita una etiqueta como `<system-reminder>` o menciona configuraciones de permiso como `bypassPermissions` o `--dangerously-skip-permissions`. Las menciones de configuración de permiso obtienen la línea de marcador, pero el texto en sí permanece como está escrito.

1001 1005 

1002El escaneo no juzga si el contenido es malicioso, y no cambia lo que una instrucción en un informe puede hacer: una llamada de herramienta que el informe lleva a Claude a hacer aún pasa por los [controles de permiso](/docs/es/permissions) y [sandboxing](/docs/es/sandboxing) de la sesión. No es un sustituto para [restringir lo que un subagente puede alcanzar](#control-subagent-capabilities).1006El escaneo no juzga si el contenido es malicioso, y no cambia lo que una instrucción en un informe puede hacer: una llamada de herramienta que el informe lleva a Claude a hacer aún pasa por los [controles de permiso](/docs/es/permissions) de la sesión y [sandboxing](/docs/es/sandboxing). No es un sustituto para [restringir lo que un subagente puede alcanzar](#control-subagent-capabilities).

1003 1007 

1004Un informe que regresa a Claude como el resultado del subagente también llega bajo un encabezado que lo marca como salida de subagente. El encabezado establece que las instrucciones o afirmaciones de aprobación dentro del informe son las palabras del subagente y no llevan autoridad de tu parte.1008Un informe que regresa a Claude como el resultado del subagente también llega bajo un encabezado que lo marca como salida de subagente. El encabezado establece que las instrucciones o afirmaciones de aprobación dentro del informe son palabras del subagente y no llevan autoridad de tu parte.

1005 1009 

1006Un [informe de subagente en fondo](#run-subagents-in-foreground-or-background) llega dentro de una notificación de finalización, que se marca como un evento automatizado en lugar de un mensaje de tu parte.1010Un [informe de subagente en fondo](#run-subagents-in-foreground-or-background) llega dentro de una notificación de finalización, que se marca como un evento automatizado en lugar de un mensaje de tu parte.

1007 1011 


1036Cada subagente explora su área independientemente, luego Claude sintetiza los hallazgos. Esto funciona mejor cuando las rutas de investigación no dependen una de la otra.1040Cada subagente explora su área independientemente, luego Claude sintetiza los hallazgos. Esto funciona mejor cuando las rutas de investigación no dependen una de la otra.

1037 1041 

1038<Warning>1042<Warning>

1039 Cuando los subagentes se completan, sus resultados regresan a tu conversación principal. Ejecutar muchos subagentes que cada uno devuelve resultados detallados puede consumir contexto significativo.1043 Cuando los subagentes se completan, sus resultados regresan a tu conversación principal. Ejecutar muchos subagentes que cada uno devuelve resultados detallados puede consumir contexto significativo, y cada subagente gasta tokens propios mientras se ejecuta.

1040</Warning>1044</Warning>

1041 1045 

1042Para trabajo que necesita seguir ejecutándose en paralelo o no cabe en una ventana de contexto, ejecútalo en [sesiones separadas](/docs/es/agents) y deja que Claude [pase hallazgos entre ellas](/docs/es/cross-session-messaging).1046Para trabajo que necesita seguir ejecutándose en paralelo o no cabe en una ventana de contexto, ejecútalo en [sesiones separadas](/docs/es/agents) y deja que Claude [pase hallazgos entre ellas](/docs/es/cross-session-messaging).


1068* Quieres aplicar restricciones de herramientas o permisos específicos1072* Quieres aplicar restricciones de herramientas o permisos específicos

1069* El trabajo es autónomo y puede devolver un resumen1073* El trabajo es autónomo y puede devolver un resumen

1070 1074 

1071Considera [Skills](/docs/es/skills) en su lugar cuando quieras solicitudes reutilizables o flujos de trabajo que se ejecuten en el contexto de conversación principal en lugar de contexto de subagente aislado.1075Considera [Skills](/docs/es/skills) en su lugar cuando quieras indicaciones o flujos de trabajo reutilizables que se ejecuten en el contexto de conversación principal en lugar de contexto de subagente aislado.

1072 1076 

1073Para una pregunta sobre algo ya en tu conversación, usa [`/btw`](/docs/es/interactive-mode#side-questions-with-%2Fbtw) en lugar de un subagente. Ve tu contexto completo pero no tiene acceso a herramientas, y la respuesta no se añade al historial.1077Para una pregunta sobre algo ya en tu conversación, usa [`/btw`](/docs/es/interactive-mode#side-questions-with-%2Fbtw) en lugar de un subagente. Ve tu contexto completo pero no tiene acceso a herramientas, y la respuesta no se añade al historial.

1074 1078 

1075<h3 id="let-subagents-spawn-their-own-subagents">1079<h3 id="let-subagents-spawn-their-own-subagents">

1076 Permitir que los subagentes generen sus propios subagentes1080 Dejar que los subagentes generen sus propios subagentes

1077</h3>1081</h3>

1078 1082 

1079Por defecto, un subagente puede generar subagentes propios, hasta tres capas por debajo de la conversación principal. En el límite de profundidad, Claude Code retiene la herramienta `Agent` de cada subagente excepto un [fork](#fork-the-current-conversation), por lo que un subagente en el límite hace su trabajo delegado a sí mismo y devuelve un resumen. Un fork en el límite mantiene `Agent` en su lista de herramientas heredada, pero la herramienta devuelve un error en lugar de generar.1083Por defecto, un subagente puede generar subagentes propios, hasta tres capas debajo de la conversación principal. En el límite de profundidad, Claude Code retiene la herramienta `Agent` de cada subagente excepto un [fork](#fork-the-current-conversation), por lo que un subagente en el límite hace su trabajo delegado a sí mismo y devuelve un resumen. Un fork en el límite mantiene `Agent` en su lista de herramientas heredada, pero la herramienta devuelve un error en lugar de generar.

1080 1084 

1081Los subagentes anidados se adaptan a una tarea delegada que a su vez se divide en subtareas paralelas, como un subagente revisor que envía un verificador por hallazgo. En una sesión interactiva, solo el resumen del subagente de nivel superior regresa a ti y la salida intermedia permanece fuera de tu conversación principal: un subagente que lanza subagentes en fondo espera sus resultados antes de terminar. En [modo no interactivo](/docs/es/headless) y el Agent SDK, el subagente de lanzamiento no espera, por lo que un subagente en fondo anidado que termina después de que su lanzador ha terminado reporta a tu conversación principal en su lugar.1085Los subagentes anidados se adaptan a una tarea delegada que a su vez se divide en subtareas paralelas, como un subagente revisor que envía un verificador por hallazgo. En una sesión interactiva, solo el resumen del subagente de nivel superior regresa a ti y la salida intermedia permanece fuera de tu conversación principal: un subagente que lanza subagentes en fondo espera sus resultados antes de terminar. En [modo no interactivo](/docs/es/headless) y el Agent SDK, el subagente de lanzamiento no espera, por lo que un subagente en fondo anidado que termina después de que su lanzador ha terminado reporta a tu conversación principal en su lugar.

1082 1086 

1083Para cambiar el límite, establece [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/es/env-vars) al número de capas de subagentes que quieres por debajo de tu conversación principal. Por ejemplo, esta entrada en [`settings.json`](/docs/es/settings) limita el anidamiento a dos capas:1087Para cambiar el límite, establece [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/es/env-vars) al número de capas de subagentes que quieres debajo de tu conversación principal. Por ejemplo, esta entrada en [`settings.json`](/docs/es/settings) limita el anidamiento a dos capas:

1084 1088 

1085```json theme={null}1089```json theme={null}

1086{1090{


1094 1098 

1095Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). Para mantener un subagente sin generar mientras el anidamiento está activado, como un revisor que debe permanecer de solo lectura, omite `Agent` de su lista [`tools`](#available-tools) o añádelo a `disallowedTools`.1099Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). Para mantener un subagente sin generar mientras el anidamiento está activado, como un revisor que debe permanecer de solo lectura, omite `Agent` de su lista [`tools`](#available-tools) o añádelo a `disallowedTools`.

1096 1100 

1097En el terminal, Claude Code muestra subagentes anidados como un árbol en el panel de subagentes debajo de la entrada de solicitud y marca cada fila que aún tiene descendientes en el panel con un conteo `(+N)` de ellos. Abre una fila para ver los hermanos y hijos directos de ese subagente con una ruta de vuelta a `main`.1101En la terminal, Claude Code muestra subagentes anidados como un árbol en el panel de subagentes debajo de la entrada de indicación y marca cada fila que aún tiene descendientes en el panel con un conteo `(+N)` de ellos. Abre una fila para ver los hermanos y descendientes directos de ese subagente con una ruta de vuelta a `main`.

1098 1102 

1099<Note>1103<Note>

1100 Las versiones anteriores usaban diferentes valores predeterminados:1104 Las versiones anteriores usaban diferentes valores predeterminados:

1101 1105 

1102 * **v2.1.172 a v2.1.216**: los subagentes podían anidar por defecto, hasta cinco capas de profundidad, y el límite no podía cambiarse.1106 * **v2.1.172 a v2.1.216**: los subagentes podían anidarse por defecto, hasta cinco capas de profundidad, y el límite no podía cambiarse.

1103 * **v2.1.217 a v2.1.218**: el límite predeterminado era uno, por lo que un subagente no podía generar el suyo a menos que lo aumentaras; v2.1.219 aumentó el predeterminado a tres.1107 * **v2.1.217 a v2.1.218**: el límite predeterminado era uno, por lo que un subagente no podía generar el suyo a menos que lo aumentaras; v2.1.219 aumentó el predeterminado a tres.

1104</Note>1108</Note>

1105 1109 


1130 1134 

1131El contexto inicial de un subagente que no es fork contiene:1135El contexto inicial de un subagente que no es fork contiene:

1132 1136 

1133* **Símbolo del sistema**: el símbolo del sistema propio del agente más detalles del entorno que Claude Code añade, no el símbolo del sistema de Claude Code. Los subagentes personalizados definen el suyo en el [cuerpo markdown](#write-subagent-files) o campo `prompt`. Los agentes integrados tienen símbolos del sistema predefinidos.1137* **Indicador del sistema**: el indicador propio del agente más detalles del entorno que Claude Code añade, no el indicador del sistema de Claude Code. Los subagentes personalizados definen el suyo en el [cuerpo markdown](#write-subagent-files) o campo `prompt`. Los agentes integrados tienen indicadores predefinidos.

1134* **Mensaje de tarea**: el símbolo del sistema de delegación que Claude escribe cuando entrega el trabajo.1138* **Mensaje de tarea**: el indicador de delegación que Claude escribe cuando entrega el trabajo.

1135* **Archivos CLAUDE.md**: cada nivel de la [jerarquía CLAUDE.md](/docs/es/memory#how-claude-md-files-load) que la conversación principal carga, incluyendo `~/.claude/CLAUDE.md`, reglas del proyecto, `CLAUDE.local.md`, archivos de política gestionada, y cualquier archivo [`AGENTS.md`](/docs/es/memory#agents-md) cargado como instrucciones del proyecto. Los agentes Explore y Plan integrados omiten esto. Un subagente cuya definición establece [`omitClaudeMd`](#supported-frontmatter-fields) carga solo los archivos de política gestionada, o ninguno en absoluto cuando la definición viene de [configuración gestionada](#choose-the-subagent-scope).1139* **Archivos CLAUDE.md**: cada nivel de la [jerarquía CLAUDE.md](/docs/es/memory#how-claude-md-files-load) que la conversación principal carga, incluyendo `~/.claude/CLAUDE.md`, reglas del proyecto, `CLAUDE.local.md`, archivos de política gestionada, y cualquier archivo [`AGENTS.md`](/docs/es/memory#agents-md) cargado como instrucciones del proyecto. Los agentes integrados Explore y Plan omiten esto. Un subagente cuya definición establece [`omitClaudeMd`](#supported-frontmatter-fields) carga solo los archivos de política gestionada, o ninguno en absoluto cuando la definición viene de [configuración gestionada](#choose-the-subagent-scope).

1136* **Estado de Git**: una instantánea que Claude Code lee de tu repositorio cuando el subagente comienza. Ausente fuera de un repositorio de Git o siempre que la instantánea esté desactivada; consulta [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions). Explore y Plan lo omiten independientemente.1140* **Estado de Git**: una instantánea que Claude Code lee de tu repositorio cuando el subagente comienza. Ausente fuera de un repositorio Git o siempre que la instantánea esté desactivada; consulta [`includeGitInstructions`](/docs/es/settings-reference#includegitinstructions). Explore y Plan la omiten independientemente.

1137* **Skills precargadas**: contenido completo de cualquier skill nombrada en el campo [`skills`](#preload-skills-into-subagents) del agente. Los agentes integrados no precargan skills.1141* **Skills precargadas**: contenido completo de cualquier skill nombrada en el campo [`skills`](#preload-skills-into-subagents) del agente. Los agentes integrados no precargan skills.

1138* **Roster de hermanos**: un recordatorio del sistema listando `main` y cada otro agente nombrado en la sesión, cada uno un valor `to` válido para [`SendMessage`](#resume-subagents). Requiere Claude Code v2.1.206 o posterior. El roster aparece solo cuando las herramientas del subagente incluyen `SendMessage` y al menos otro agente tiene un nombre, ya sea que Claude lo nombró al generarlo o se ejecuta como un compañero de [equipo de agentes](/docs/es/agent-teams). Es una instantánea tomada cuando el subagente comienza, por lo que los agentes nombrados después no aparecen.1142* **Roster de hermanos**: un [recordatorio del sistema](/docs/es/glossary#system-reminder) listando `main` y cada otro agente nombrado en la sesión, cada uno un valor `to` válido para [`SendMessage`](#resume-subagents). Requiere Claude Code v2.1.206 o posterior. El roster aparece solo cuando las herramientas del subagente incluyen `SendMessage` y al menos otro agente tiene un nombre, ya sea que Claude lo nombró al generarlo o se ejecuta como compañero de [equipo de agentes](/docs/es/agent-teams). Es una instantánea tomada cuando el subagente comienza, por lo que los agentes nombrados después no aparecen.

1139 1143 

1140Para lanzar uno de tus propios subagentes sin los archivos CLAUDE.md del usuario, proyecto y local, establece [`omitClaudeMd: true`](#supported-frontmatter-fields) en su frontmatter o `--agents` JSON.1144Para lanzar uno de tus propios subagentes sin los archivos CLAUDE.md del usuario, proyecto y local, establece [`omitClaudeMd: true`](#supported-frontmatter-fields) en su frontmatter o `--agents` JSON.

1141 1145 

1142La conversación principal aún tiene tu CLAUDE.md completo cuando lee los resultados de estos subagentes, por lo que la mayoría de reglas no necesitan llegar al subagente mismo. Si una regla debe, como "ignora el directorio `vendor/`," reafírmala en el símbolo del sistema que das a Claude cuando delegas.1146La conversación principal aún tiene tu CLAUDE.md completo cuando lee los resultados de estos subagentes, por lo que la mayoría de reglas no necesitan llegar al subagente mismo. Si una regla debe, como "ignora el directorio `vendor/`," reafírmala en el indicador que das a Claude cuando delegas.

1143 1147 

1144No puedes cambiar qué subagentes reciben estado de git. Solo Explore y Plan lo omiten.1148No puedes cambiar qué subagentes reciben estado de git. Solo Explore y Plan lo omiten.

1145 1149 

1146Algún estado de conversación principal nunca llega a un subagente que no es fork:1150Algún estado de conversación principal nunca llega a un subagente que no es fork:

1147 1151 

1148* **Estilo de salida**: un subagente ejecuta su propio símbolo del sistema, por lo que tu [estilo de salida](/docs/es/output-styles) no forma sus respuestas, excepto en un [fork](#fork-the-current-conversation).1152* **Estilo de salida**: un subagente ejecuta su propio indicador del sistema, por lo que tu [estilo de salida](/docs/es/output-styles) no forma sus respuestas, excepto en un [fork](#fork-the-current-conversation).

1149* **Memoria automática**: la [memoria automática](/docs/es/memory#auto-memory) de la conversación principal no se carga. Para dar a un subagente memoria persistente propia, usa el campo [`memory`](#enable-persistent-memory).1153* **Memoria automática**: la [memoria automática](/docs/es/memory#auto-memory) de la conversación principal no se carga. Para dar a un subagente memoria persistente propia, usa el campo [`memory`](#enable-persistent-memory).

1150* **Tamaño de ventana de contexto**: la ventana de contexto de un subagente se dimensiona por su propio modelo, no por el del padre. Delegar a un modelo con una ventana más pequeña da a ese subagente la ventana más pequeña.1154* **Tamaño de ventana de contexto**: la ventana de contexto de un subagente se dimensiona por su propio modelo, no por el del padre. Delegar a un modelo con una ventana más pequeña da a ese subagente la ventana más pequeña.

1151 1155 


1158Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas de herramienta anteriores, resultados y razonamiento. Si el subagente generó [subagentes en fondo propios](#let-subagents-spawn-their-own-subagents), ese historial incluye los resultados que entregaron mientras se ejecutaba. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo.1162Los subagentes reanudados retienen su historial de conversación completo, incluyendo todas las llamadas de herramienta anteriores, resultados y razonamiento. Si el subagente generó [subagentes en fondo propios](#let-subagents-spawn-their-own-subagents), ese historial incluye los resultados que entregaron mientras se ejecutaba. El subagente continúa exactamente donde se detuvo en lugar de comenzar de nuevo.

1159 1163 

1160* Cuando un subagente se completa, Claude recibe su ID de agente.1164* Cuando un subagente se completa, Claude recibe su ID de agente.

1161* Los agentes Explore y Plan integrados son de una sola vez y no devuelven un ID de agente, por lo que Claude no puede reanudarlo. Usa `general-purpose` o un subagente personalizado cuando necesites continuar el trabajo.1165* Los agentes integrados Explore y Plan son de una sola vez y no devuelven un ID de agente, por lo que Claude no puede reanudarlo. Usa `general-purpose` o un subagente personalizado cuando necesites continuar el trabajo.

1162* Cuando un subagente se detiene en su límite [`maxTurns`](#supported-frontmatter-fields), Claude Code marca la salida devuelta como parcial. Para subagentes que devuelven un ID de agente, Claude Code también nota en el resultado que Claude puede enviar un mensaje al subagente para continuar desde donde se detuvo.1166* Cuando un subagente se detiene en su límite [`maxTurns`](#supported-frontmatter-fields), Claude Code marca la salida devuelta como parcial. Para subagentes que devuelven un ID de agente, Claude Code también nota en el resultado que Claude puede enviar un mensaje al subagente para continuar desde donde se detuvo.

1163 1167 

1164Claude usa la herramienta `SendMessage` con el ID o nombre del agente como campo `to` para reanudarlo. `SendMessage` no requiere que [equipos de agentes](/docs/es/agent-teams) estén habilitados; solo mensajes de protocolo de equipo estructurados como `shutdown_request` y `plan_approval_response` lo hacen. Más allá de subagentes y compañeros, en sesiones donde la mensajería entre sesiones está habilitada, Claude puede usar la misma herramienta para enviar mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging), en esta máquina o [más allá de ella](/docs/es/cross-session-messaging#message-sessions-on-other-machines).1168Claude usa la herramienta `SendMessage` con el ID o nombre del agente como campo `to` para reanudarlo. `SendMessage` no requiere que [equipos de agentes](/docs/es/agent-teams) estén habilitados; solo mensajes de protocolo de equipo estructurados como `shutdown_request` y `plan_approval_response` lo hacen. Más allá de subagentes y compañeros, en sesiones donde la mensajería entre sesiones está habilitada, Claude puede usar la misma herramienta para enviar mensajes a [tus otras sesiones de Claude Code](/docs/es/cross-session-messaging), en esta máquina o [más allá de ella](/docs/es/cross-session-messaging#message-sessions-on-other-machines).


1173[Claude resumes the subagent with full context from previous conversation]1177[Claude resumes the subagent with full context from previous conversation]

1174```1178```

1175 1179 

1176Cuando Claude envía un mensaje a un subagente completado con la herramienta `SendMessage`, el subagente se reanuda en fondo sin una nueva invocación de `Agent`. Lo mismo se aplica a un subagente que Claude detuvo con la herramienta `TaskStop`, una vez que su ejecución detenida ha salido. La ejecución reanudada mantiene el [conjunto de herramientas de donde el subagente se ejecutó primero](#run-subagents-in-foreground-or-background) y puede seguir leyendo el [caché de solicitud que la ejecución original calentó](/docs/es/prompt-caching#subagents-and-the-cache).1180Cuando Claude envía un mensaje a un subagente completado con la herramienta `SendMessage`, el subagente se reanuda en fondo sin una nueva invocación de `Agent`. Lo mismo se aplica a un subagente que Claude detuvo con la herramienta `TaskStop`, una vez que su ejecución detenida ha salido. La ejecución reanudada mantiene el [conjunto de herramientas de donde el subagente se ejecutó primero](#run-subagents-in-foreground-or-background) y puede seguir leyendo el [caché de indicador que la ejecución original calentó](/docs/es/prompt-caching#subagents-and-the-cache).

1177 1181 

1178Un subagente que tiene la herramienta `SendMessage` puede enviar ese mensaje también. En una sesión interactiva, el agente reanudado entonces reporta de vuelta al subagente que lo reanudó, no a tu conversación principal. Ese subagente espera el resultado antes de terminar su propio trabajo. Cuando un subagente envía un mensaje a un agente al que reporta, como su propio lanzador, Claude Code reanuda ese agente sin redirigir sus resultados.1182Un subagente que tiene la herramienta `SendMessage` puede enviar ese mensaje también. En una sesión interactiva, el agente reanudado entonces reporta de vuelta al subagente que lo reanudó, no a tu conversación principal. Ese subagente espera el resultado antes de terminar su propio trabajo. Cuando un subagente envía un mensaje a un agente al que reporta, como su propio lanzador, Claude Code reanuda ese agente sin redirigir sus resultados.

1179 1183 

1180Un subagente que detuviste tú mismo, con `x` en `/tasks` o una solicitud SDK `stop_task`, no se reanuda automáticamente. Si Claude le envía un mensaje, el mensaje es rechazado y Claude es informado de que el agente fue cancelado.1184Un subagente que detuviste tú mismo, con `x` en `/tasks` o una solicitud SDK `stop_task`, no se reanuda automáticamente. Si Claude le envía un mensaje, el mensaje es rechazado y Claude es informado de que el agente fue cancelado.

1181 1185 

1182Mientras [la fila de ese subagente aún está en el panel de subagentes](#run-subagents-in-foreground-or-background), escribe en su transcripción para reanudarlo tú mismo. Después de eso, un mensaje de Claude puede reanudarlo automáticamente de nuevo.1186Mientras [la fila de ese subagente aún esté en el panel de subagentes](#run-subagents-in-foreground-or-background), escribe en su transcripción para reanudarlo tú mismo. Después de eso, un mensaje de Claude puede reanudarlo automáticamente de nuevo.

1183 1187 

1184Reanudar comienza una nueva ejecución del agente bajo el mismo ID, por lo que un subagente que ya había fallado o se completó muestra como ejecutándose de nuevo en la lista de tareas y en los eventos de tareas del Agent SDK. Antes de v2.1.205, mantenía su estado anterior fallido o completado mientras la ejecución reanudada estaba trabajando.1188Reanudar inicia una nueva ejecución del agente bajo el mismo ID, por lo que un subagente que ya había fallado o se completó muestra como ejecutándose de nuevo en la lista de tareas y en los eventos de tarea del Agent SDK. Antes de v2.1.205, mantenía su estado anterior fallido o completado mientras la ejecución reanudada estaba trabajando.

1185 1189 

1186A partir de v2.1.199, `SendMessage` verifica que un nombre aún se refiera al mismo agente que alcanzó anteriormente en la conversación. Si un agente más nuevo ha tomado el nombre, como un agente en fondo re-generado que lo reutilizó, Claude Code rechaza el envío en lugar de entregarlo al agente incorrecto, y el error reporta qué agente el nombre ahora alcanza para que Claude pueda redirigir. Para alcanzar el agente anterior mientras aún se está ejecutando, Claude lo dirige por el ID de agente que recibió cuando generó ese agente. La verificación está limitada a la conversación actual y se reinicia en `/clear`.1190A partir de v2.1.199, `SendMessage` verifica que un nombre aún se refiera al mismo agente que alcanzó anteriormente en la conversación. Si un agente más nuevo ha tomado el nombre, como un agente en fondo re-generado que lo reutilizó, Claude Code rechaza el envío en lugar de entregarlo al agente incorrecto, y el error reporta qué agente el nombre ahora alcanza para que Claude pueda redirigirse. Para alcanzar el agente anterior mientras aún se está ejecutando, Claude lo dirige por el ID de agente que recibió cuando generó ese agente. La verificación está limitada a la conversación actual y se reinicia en `/clear`.

1187 1191 

1188A partir de v2.1.198, un subagente trata mensajes del agente que lo lanzó como dirección de tarea normal, incluyendo correcciones de curso a mitad de tarea, y actúa sobre ellos dentro de sus propias configuraciones de permiso. Dos límites aún se mantienen independientemente de quién envió el mensaje: ningún mensaje de ningún agente cuenta como tu aprobación para un aviso de permiso pendiente, y ningún mensaje de agente puede cambiar las configuraciones de permiso, `CLAUDE.md`, o configuración de un subagente. Solo el sistema de permiso o tus propios mensajes pueden otorgar aprobación.1192A partir de v2.1.198, un subagente trata mensajes del agente que lo lanzó como dirección de tarea normal, incluyendo correcciones de curso a mitad de tarea, y actúa sobre ellos dentro de sus propias configuraciones de permiso. Dos límites aún se mantienen independientemente de quién envió el mensaje: ningún mensaje de ningún agente cuenta como tu aprobación para un indicador de permiso pendiente, y ningún mensaje de agente puede cambiar las configuraciones de permiso, `CLAUDE.md` o configuración de un subagente. Solo el sistema de permiso o tus propios mensajes pueden otorgar aprobación.

1189 1193 

1190También puedes pedir a Claude el ID de agente si quieres referenciarlo explícitamente, o encontrar IDs en los archivos de transcripción en `~/.claude/projects/{project}/{sessionId}/subagents/`. Cada transcripción se almacena como `agent-{agentId}.jsonl`.1194También puedes pedir a Claude el ID del agente si quieres referenciarlo explícitamente, o encontrar IDs en los archivos de transcripción en `~/.claude/projects/{project}/{sessionId}/subagents/`. Cada transcripción se almacena como `agent-{agentId}.jsonl`.

1191 1195 

1192Las transcripciones de subagentes persisten independientemente de la conversación principal:1196Las transcripciones de subagentes persisten independientemente de la conversación principal:

1193 1197 

Details

339 ```339 ```

340</CodeGroup>340</CodeGroup>

341 341 

342<h2 id="cap-response-width-in-wide-terminals">

343 Limitar el ancho de respuesta en terminales amplias

344</h2>

345 

346En una terminal amplia, cada línea de prosa en las respuestas de Claude se ejecuta en todo el ancho de la ventana. Para ajustar la prosa a un número establecido de columnas en su lugar, configure [`maxProseWidth`](/docs/es/settings-reference#maxprosewidth) en su configuración.

347 

342<h2 id="paste-large-content">348<h2 id="paste-large-content">

343 Pegar contenido grande349 Pegar contenido grande

344</h2>350</h2>

Details

13Para agregar herramientas personalizadas, conecta un [servidor MCP](/docs/es/mcp). Para extender Claude con flujos de trabajo basados en prompts reutilizables, escribe una [skill](/docs/es/skills), que se ejecuta a través de la herramienta `Skill` existente en lugar de agregar una nueva entrada de herramienta.13Para agregar herramientas personalizadas, conecta un [servidor MCP](/docs/es/mcp). Para extender Claude con flujos de trabajo basados en prompts reutilizables, escribe una [skill](/docs/es/skills), que se ejecuta a través de la herramienta `Skill` existente en lugar de agregar una nueva entrada de herramienta.

14 14 

15<Info>15<Info>

16 En los planes Pro, Max y Team, Claude Code inicia sesiones en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), donde un clasificador decide la mayoría de estos mensajes en lugar de ti. La columna `Permission required` muestra si la herramienta solicita permiso en [modo manual](/docs/es/permission-modes) para rutas dentro del directorio de trabajo. Las herramientas de acceso a archivos marcadas como No, incluidas `Read`, `Grep` y `Glob`, aún solicitan permiso para rutas fuera del [directorio de trabajo y directorios adicionales](/docs/es/permissions#working-directories). `Bash` está marcada como Sí pero ejecuta un conjunto integrado de [comandos de solo lectura](/docs/es/permissions#read-only-commands) sin solicitar permiso.16 En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), un clasificador decide la mayoría de los mensajes de permiso en lugar de ti. La columna `Permission required` muestra si la herramienta solicita permiso en [modo manual](/docs/es/permission-modes) para rutas dentro del directorio de trabajo. Las herramientas de acceso a archivos marcadas como No, incluidas `Read`, `Grep` y `Glob`, aún solicitan permiso para rutas fuera del [directorio de trabajo y directorios adicionales](/docs/es/permissions#working-directories). `Bash` está marcada como Sí pero ejecuta un conjunto integrado de [comandos de solo lectura](/docs/es/permissions#read-only-commands) sin solicitar permiso.

17</Info>17</Info>

18 18 

19| Herramienta | Descripción | Permiso requerido |19| Herramienta | Descripción | Permiso requerido |


34| `Glob` | Encuentra archivos basándose en coincidencia de patrones. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Glob](#glob-tool-behavior) | No |34| `Glob` | Encuentra archivos basándose en coincidencia de patrones. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Glob](#glob-tool-behavior) | No |

35| `Grep` | Busca patrones en el contenido de archivos. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Grep](#grep-tool-behavior) | No |35| `Grep` | Busca patrones en el contenido de archivos. Ausente de forma predeterminada en macOS, Linux y WSL. Consulta [Comportamiento de la herramienta Grep](#grep-tool-behavior) | No |

36| `ListAgents` | Lista los agentes con los que Claude puede comunicarse con `SendMessage`: subagentes en la sesión, compañeros de [equipo de agentes](/docs/es/agent-teams), tus otras sesiones locales de Claude Code, y, mientras esta sesión esté conectada a [Remote Control](/docs/es/remote-control), tus sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web) y tus sesiones de Remote Control en otras máquinas. Respalda el comando `/list-agents`. Consulta [mensajería entre sesiones](/docs/es/cross-session-messaging). Requiere Claude Code v2.1.224 o posterior, y aparece solo en sesiones donde [la mensajería entre sesiones está habilitada](/docs/es/cross-session-messaging#availability). Las filas de compañeros de equipo y la primera línea que muestra el nombre de esta sesión requieren v2.1.239 o posterior | No |36| `ListAgents` | Lista los agentes con los que Claude puede comunicarse con `SendMessage`: subagentes en la sesión, compañeros de [equipo de agentes](/docs/es/agent-teams), tus otras sesiones locales de Claude Code, y, mientras esta sesión esté conectada a [Remote Control](/docs/es/remote-control), tus sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web) y tus sesiones de Remote Control en otras máquinas. Respalda el comando `/list-agents`. Consulta [mensajería entre sesiones](/docs/es/cross-session-messaging). Requiere Claude Code v2.1.224 o posterior, y aparece solo en sesiones donde [la mensajería entre sesiones está habilitada](/docs/es/cross-session-messaging#availability). Las filas de compañeros de equipo y la primera línea que muestra el nombre de esta sesión requieren v2.1.239 o posterior | No |

37| `ListMcpResourcesTool` | Lista los recursos expuestos por los [servidores MCP](/docs/es/mcp) conectados | No |37| `ListMcpResourcesTool` | Lista los recursos expuestos por los [servidores MCP](/docs/es/mcp) conectados, dejando fuera los [recursos de la interfaz de usuario de MCP Apps](/docs/es/mcp#reference-mcp-resources), que son páginas para que una aplicación host renderice | No |

38| `LSP` | Inteligencia de código a través de servidores de lenguaje: ir a definiciones, encontrar referencias, reportar errores de tipo y advertencias. Consulta [Comportamiento de la herramienta LSP](#lsp-tool-behavior) | No |38| `LSP` | Inteligencia de código a través de servidores de lenguaje: ir a definiciones, encontrar referencias, reportar errores de tipo y advertencias. Consulta [Comportamiento de la herramienta LSP](#lsp-tool-behavior) | No |

39| `Monitor` | Ejecuta un comando en segundo plano y devuelve cada línea de salida a Claude, para que pueda reaccionar a entradas de registro, cambios de archivos o estado sondeado a mitad de la conversación. También puede abrir un WebSocket y tratar cada mensaje entrante como un evento. Consulta [Herramienta Monitor](#monitor-tool) | Sí |39| `Monitor` | Ejecuta un comando en segundo plano y devuelve cada línea de salida a Claude, para que pueda reaccionar a entradas de registro, cambios de archivos o estado sondeado a mitad de la conversación. También puede abrir un WebSocket y tratar cada mensaje entrante como un evento. Consulta [Herramienta Monitor](#monitor-tool) | Sí |

40| `NotebookEdit` | Modifica celdas de cuadernos Jupyter. Consulta [Comportamiento de la herramienta NotebookEdit](#notebookedit-tool-behavior) | Sí |40| `NotebookEdit` | Modifica celdas de cuadernos Jupyter. Consulta [Comportamiento de la herramienta NotebookEdit](#notebookedit-tool-behavior) | Sí |


47| `ScheduleWakeup` | Reprograma la siguiente iteración de un [`/loop` autónomo](/docs/es/scheduled-tasks#let-claude-choose-the-interval). Claude lo llama al final de cada iteración para elegir cuándo se ejecuta la siguiente, entre uno y sesenta minutos; no lo llamas directamente. Para terminar el bucle en su lugar, Claude lo llama con `stop: true`, que cancela el wakeup pendiente. El campo `stop` requiere Claude Code v2.1.202 o posterior. El wakeup pendiente aparece en `session_crons` en [Entrada de Stop hook](/docs/es/hooks#stop-input) | No |47| `ScheduleWakeup` | Reprograma la siguiente iteración de un [`/loop` autónomo](/docs/es/scheduled-tasks#let-claude-choose-the-interval). Claude lo llama al final de cada iteración para elegir cuándo se ejecuta la siguiente, entre uno y sesenta minutos; no lo llamas directamente. Para terminar el bucle en su lugar, Claude lo llama con `stop: true`, que cancela el wakeup pendiente. El campo `stop` requiere Claude Code v2.1.202 o posterior. El wakeup pendiente aparece en `session_crons` en [Entrada de Stop hook](/docs/es/hooks#stop-input) | No |

48| `SendFeedback` | Redacta un informe de retroalimentación sobre Claude Code, cubriendo un problema del producto o el comportamiento de Claude en la sesión, y lo pone en cola en tu máquina para que lo revises. Claude Code no envía nada hasta que elijas enviar el borrador. Consulta [Comportamiento de la herramienta SendFeedback](#sendfeedback-tool-behavior). Requiere Claude Code v2.1.238 o posterior | No |48| `SendFeedback` | Redacta un informe de retroalimentación sobre Claude Code, cubriendo un problema del producto o el comportamiento de Claude en la sesión, y lo pone en cola en tu máquina para que lo revises. Claude Code no envía nada hasta que elijas enviar el borrador. Consulta [Comportamiento de la herramienta SendFeedback](#sendfeedback-tool-behavior). Requiere Claude Code v2.1.238 o posterior | No |

49| `SendMessage` | Envía un mensaje a otro agente: un compañero de [equipo de agentes](/docs/es/agent-teams), un [subagente que reanuda](/docs/es/sub-agents#resume-subagents) por ID o nombre de agente, o una de tus otras sesiones de Claude Code, en esta máquina o más allá. La mensajería de otras sesiones requiere Claude Code v2.1.224 o posterior. [Mensajería entre sesiones](/docs/es/cross-session-messaging) cubre qué sesiones puede alcanzar Claude, [cómo se ve un mensaje cuando llega](/docs/es/cross-session-messaging#what-a-message-looks-like), y [cómo Claude recibe un aviso cuando otra sesión se queda inactiva](/docs/es/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude puede incluir una entrada `summary` opcional, típicamente de 5-10 palabras, que Claude Code muestra como una vista previa de una línea. Cuando Claude la omite en un [mensaje de texto plano](/docs/es/cross-session-messaging#limitations), Claude Code usa la primera línea del mensaje como resumen. Claude Code trunca un resumen más largo que 200 caracteres con puntos suspensivos | No |49| `SendMessage` | Envía un mensaje a otro agente: un compañero de [equipo de agentes](/docs/es/agent-teams), un [subagente que reanuda](/docs/es/sub-agents#resume-subagents) por ID o nombre de agente, o una de tus otras sesiones de Claude Code, en esta máquina o más allá. La mensajería de otras sesiones requiere Claude Code v2.1.224 o posterior. [Mensajería entre sesiones](/docs/es/cross-session-messaging) cubre qué sesiones puede alcanzar Claude, [cómo se ve un mensaje cuando llega](/docs/es/cross-session-messaging#what-a-message-looks-like), y [cómo Claude recibe un aviso cuando otra sesión se queda inactiva](/docs/es/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude puede incluir una entrada `summary` opcional, típicamente de 5-10 palabras, que Claude Code muestra como una vista previa de una línea. Cuando Claude la omite en un [mensaje de texto plano](/docs/es/cross-session-messaging#limitations), Claude Code usa la primera línea del mensaje como resumen. Claude Code trunca un resumen más largo que 200 caracteres con puntos suspensivos | No |

50| `SendUserFile` | Envía archivos de la sesión a ti con un título opcional, para que un informe generado, diagrama, captura de pantalla o artefacto construido llegue a tu dispositivo en lugar de solo ser mencionado en la transcripción. A partir de v2.1.196, la entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](/docs/es/remote-control) está conectado o la sesión se ejecuta en un entorno en la nube administrado como [Claude Code en la web](/docs/es/claude-code-on-the-web). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Agent Platform de Google Cloud, o Microsoft Foundry | No |50| `SendUserFile` | Envía archivos de la sesión a ti con un título opcional, para que un informe generado, diagrama, captura de pantalla o artefacto construido llegue a tu dispositivo en lugar de solo ser mencionado en la transcripción. A partir de v2.1.196, la entrada `display` opcional controla la presentación: `render` abre el archivo en línea en el cliente, `attach` muestra solo una tarjeta de descarga, y cuando no está establecida el cliente decide por tipo de archivo. Disponible cuando un cliente [Remote Control](/docs/es/remote-control) está conectado o en una [sesión en la nube](/docs/es/claude-code-on-the-web). La entrega se ejecuta a través de infraestructura alojada por Anthropic, por lo que la herramienta no está disponible en Amazon Bedrock, Agent Platform de Google Cloud, o Microsoft Foundry | No |

51| `ShareOnboardingGuide` | Carga `ONBOARDING.md` y devuelve un enlace de uso compartido que los compañeros de equipo pueden abrir en Claude Code. Llamado desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en los planes Pro, Max, Team y Enterprise | Sí |51| `ShareOnboardingGuide` | Carga `ONBOARDING.md` y devuelve un enlace de uso compartido que los compañeros de equipo pueden abrir en Claude Code. Llamado desde `/team-onboarding` después de que se escribe la guía. Disponible para suscriptores de claude.ai en los planes Pro, Max, Team y Enterprise | Sí |

52| `Skill` | Ejecuta una [skill](/docs/es/skills#control-who-invokes-a-skill) dentro de la conversación principal | Sí |52| `Skill` | Ejecuta una [skill](/docs/es/skills#control-who-invokes-a-skill) dentro de la conversación principal | Sí |

53| `SubagentHandback` | Entrega el informe final de un subagente a cualquier conversación que reciba el resultado de ese subagente. Proporcionado solo en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), a subagentes que la herramienta Agent ejecuta localmente que no sean [bifurcaciones](/docs/es/sub-agents#fork-the-current-conversation), y disponible en la CLI de terminal, extensiones de IDE, sesiones en la nube y el Agent SDK; el clasificador revisa el informe antes de que se entregue. Requiere Claude Code v2.1.271 o posterior | No |53| `SubagentHandback` | Entrega el informe final de un subagente a cualquier conversación que reciba el resultado de ese subagente. Proporcionado solo en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), a subagentes que la herramienta Agent ejecuta localmente que no sean [bifurcaciones](/docs/es/sub-agents#fork-the-current-conversation), y disponible en la CLI de terminal, extensiones de IDE, sesiones en la nube y el Agent SDK; el clasificador revisa el informe antes de que se entregue. Requiere Claude Code v2.1.271 o posterior | No |

Details

41| `running scripts is disabled on this system` o `PSSecurityException` | [Permita que los shims de npm se ejecuten](#running-scripts-is-disabled-on-this-system) |41| `running scripts is disabled on this system` o `PSSecurityException` | [Permita que los shims de npm se ejecuten](#running-scripts-is-disabled-on-this-system) |

42| `Error: claude native binary not installed` | [Complete la instalación de npm](#native-binary-not-found-after-npm-install) |42| `Error: claude native binary not installed` | [Complete la instalación de npm](#native-binary-not-found-after-npm-install) |

43| `npm error code ENOTEMPTY` durante la actualización o reinstalación | [Elimine el directorio de paquete sobrante](#npm-enotempty-during-update-or-reinstall) |43| `npm error code ENOTEMPTY` durante la actualización o reinstalación | [Elimine el directorio de paquete sobrante](#npm-enotempty-during-update-or-reinstall) |

44| `'claude' is not recognized` justo después de una actualización en Windows | [Restaure `claude.exe` desde su copia de seguridad](#claude-exe-missing-after-an-update-on-windows) |

44| En Windows, el comando de instalación imprime texto de script y nada se instala | [Ejecute el comando de instalación completo](#wrong-install-command-on-windows) |45| En Windows, el comando de instalación imprime texto de script y nada se instala | [Ejecute el comando de instalación completo](#wrong-install-command-on-windows) |

45| `App unavailable in region` | Claude Code no está disponible en su país. Consulte [países admitidos](https://www.anthropic.com/supported-countries). |46| `App unavailable in region` | Claude Code no está disponible en su país. Consulte [países admitidos](https://www.anthropic.com/supported-countries). |

46| `unable to get local issuer certificate` | [Configure certificados CA corporativos](#tls-or-ssl-connection-errors) |47| `unable to get local issuer certificate` | [Configure certificados CA corporativos](#tls-or-ssl-connection-errors) |

47| `OAuth error` u `403 Forbidden` | [Corrija la autenticación](#login-and-authentication) |48| `OAuth error` u `403 Forbidden` | [Corrija la autenticación](#login-and-authentication) |

49| `Claude Code access has not been granted for this account` | [Obtenga un rol que incluya Claude Code](#claude-code-access-has-not-been-granted-for-this-account) |

48| `Unable to connect to Anthropic services` durante la configuración | Consulte [Unable to connect to Anthropic services](/docs/es/errors#unable-to-connect-to-anthropic-services) en la referencia de errores |50| `Unable to connect to Anthropic services` durante la configuración | Consulte [Unable to connect to Anthropic services](/docs/es/errors#unable-to-connect-to-anthropic-services) en la referencia de errores |

49| `Could not load the default credentials` o `Could not load credentials from any providers` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |51| `Could not load the default credentials` o `Could not load credentials from any providers` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

50| `ChainedTokenCredential authentication failed` o `CredentialUnavailableError` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |52| `ChainedTokenCredential authentication failed` o `CredentialUnavailableError` | [Credenciales de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |


142 source ~/.zshrc144 source ~/.zshrc

143 ```145 ```

144 146 

145 Para Bash, el predeterminado en la mayoría de distribuciones de Linux:147 Para Bash en Linux, donde es el predeterminado en la mayoría de distribuciones:

146 148 

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

148 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc150 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

149 source ~/.bashrc151 source ~/.bashrc

150 ```152 ```

151 153 

154 Para Bash en macOS, agregue la línea a `~/.bash_profile` en su lugar. Terminal en macOS inicia Bash como un shell de inicio de sesión, que ignora `~/.bashrc` y lee solo el primero de `~/.bash_profile`, `~/.bash_login`, o `~/.profile` que existe. Si ya tiene un `~/.bash_login` o `~/.profile` y ningún `~/.bash_profile`, ponga la línea en ese archivo en lugar de crear `~/.bash_profile`:

155 

156 ```bash theme={null}

157 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile

158 source ~/.bash_profile

159 ```

160 

152 Alternativamente, cierre y vuelva a abrir su terminal.161 Alternativamente, cierre y vuelva a abrir su terminal.

153 162 

154 Para otros shells como fish o Nushell, agregue `~/.local/bin` a su PATH usando la sintaxis de configuración propia de su shell, luego reinicie su terminal.163 Para otros shells como fish o Nushell, agregue `~/.local/bin` a su PATH usando la sintaxis de configuración propia de su shell, luego reinicie su terminal.


512 Comando de instalación incorrecto en Windows521 Comando de instalación incorrecto en Windows

513</h3>522</h3>

514 523 

515Si ve `'irm' is not recognized`, `The token '&&' is not valid`, `A parameter cannot be found that matches parameter name 'fsSL'`, o `'bash' is not recognized as the name of a cmdlet`, copió el comando de instalación para un shell o sistema operativo diferente. Si el comando imprime el texto del script en lugar de instalar algo, ejecutó solo parte del mismo.524Si ve `'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'`, o `'bash' is not recognized as the name of a cmdlet`, copió el comando de instalación para un shell o sistema operativo diferente. Si el comando imprime el texto del script en lugar de instalar algo, ejecutó solo parte del mismo.

516 525 

517* **`irm` no reconocido**: está en CMD, no en PowerShell. Tiene dos opciones:526* **`irm` no reconocido**: está en CMD, no en PowerShell. Tiene dos opciones:

518 527 


528 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd537 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

529 ```538 ```

530 539 

531* **`&&` no válido**: está en PowerShell pero ejecutó el comando del instalador de CMD. Use el instalador de PowerShell:540* **`&&` no es un separador de instrucción válido**: está en PowerShell pero ejecutó el comando del instalador de CMD. Use el instalador de PowerShell:

532 ```powershell theme={null}541 ```powershell theme={null}

533 irm https://claude.ai/install.ps1 | iex542 irm https://claude.ai/install.ps1 | iex

534 ```543 ```


593irm https://claude.ai/install.ps1 | iex602irm https://claude.ai/install.ps1 | iex

594```603```

595 604 

605<h3 id="claude-exe-missing-after-an-update-on-windows">

606 `claude.exe` faltante después de una actualización en Windows

607</h3>

608 

609Si su terminal reporta `'claude' is not recognized` justo después de que Claude Code se actualice en Windows, verifique si `%USERPROFILE%\.local\bin` aún contiene `claude.exe`. Si ese directorio no está en su PATH en absoluto, consulte [Corrija su PATH](#command-not-found-claude-after-installation) en su lugar. Para actualizar en Windows, Claude Code cambia el nombre del `claude.exe` existente a un respaldo y mueve la nueva versión a su lugar. Si mover la nueva versión a su lugar falla y Claude Code tampoco puede cambiar el nombre del respaldo, el directorio mantiene el respaldo pero no tiene `claude.exe`.

610 

611El respaldo es un archivo en el mismo directorio cuyo nombre comienza con `claude.exe.old.` seguido de una marca de tiempo numérica. Ejecute lo siguiente en PowerShell para cambiar el nombre del respaldo más reciente de vuelta a `claude.exe`:

612 

613```powershell theme={null}

614Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

615```

616 

617Luego ejecute `claude --version` para confirmar la corrección. Un `claude.exe` restaurado imprime un número de versión.

618 

619Si no hay un archivo `claude.exe.old.*`, o `claude` aún falla después del cambio de nombre, reinstale en su lugar:

620 

621```powershell theme={null}

622irm https://claude.ai/install.ps1 | iex

623```

624 

625Antes de v2.1.281, Claude Code podría eliminar el respaldo mientras `claude.exe` aún estaba faltante.

626 

596<h3 id="install-killed-on-low-memory-linux-servers">627<h3 id="install-killed-on-low-memory-linux-servers">

597 La instalación se cuelga en servidores Linux con poca memoria628 La instalación se cuelga en servidores Linux con poca memoria

598</h3>629</h3>


992* **Usuarios de Anthropic Console**: confirme que su cuenta tiene el rol "Claude Code" o "Developer". Los administradores asignan esto en Anthropic Console bajo Settings → Members.1023* **Usuarios de Anthropic Console**: confirme que su cuenta tiene el rol "Claude Code" o "Developer". Los administradores asignan esto en Anthropic Console bajo Settings → Members.

993* **Detrás de un proxy**: los proxies corporativos pueden interferir con las solicitudes de API. Consulte [configuración de red](/docs/es/network-config) para la configuración de proxy.1024* **Detrás de un proxy**: los proxies corporativos pueden interferir con las solicitudes de API. Consulte [configuración de red](/docs/es/network-config) para la configuración de proxy.

994 1025 

1026<h3 id="claude-code-access-has-not-been-granted-for-this-account">

1027 Claude Code access has not been granted for this account

1028</h3>

1029 

1030Si la página de inicio de sesión muestra `Authorization failed` con el mensaje `Claude Code access has not been granted for this account. Contact your administrator.` después de que inicie sesión desde Claude Code, su organización Claude Enterprise ha establecido su rol en Custom y ninguno de los [custom roles](https://support.claude.com/en/articles/13930452) asignados a sus grupos otorga acceso a Claude Code. En el rol Custom, obtiene acceso solo de esos roles personalizados, por lo que nada que cambie en Claude Code resuelve este error.

1031 

1032Para obtener acceso:

1033 

10341. Pida a un Owner de su organización Claude que asigne un rol personalizado que otorgue acceso a Claude Code a uno de sus grupos, o que cambie su rol de Custom a un rol estándar como User. Los Owners administran roles en la [configuración de roles](https://claude.ai/admin-settings/roles) de la organización.

10352. Después de que el Owner realice el cambio, ejecute `claude` e inicie sesión nuevamente.

1036 

995<h3 id="this-organization-has-been-disabled-with-an-active-subscription">1037<h3 id="this-organization-has-been-disabled-with-an-active-subscription">

996 Esta organización ha sido deshabilitada con una suscripción activa1038 Esta organización ha sido deshabilitada con una suscripción activa

997</h3>1039</h3>

Details

17| Sesión iniciada en modo automático, o Claude edita archivos y ejecuta comandos sin preguntar | [En qué modo se inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) |17| Sesión iniciada en modo automático, o Claude edita archivos y ejecuta comandos sin preguntar | [En qué modo se inicia una sesión](/docs/es/permission-modes#which-mode-a-session-starts-in) |

18| `API Error: 5xx`, `529 Overloaded`, `429`, errores de validación de solicitudes | [Referencia de errores](/docs/es/errors) |18| `API Error: 5xx`, `529 Overloaded`, `429`, errores de validación de solicitudes | [Referencia de errores](/docs/es/errors) |

19| `model not found` o `you may not have access to it` | [Referencia de errores](/docs/es/errors#theres-an-issue-with-the-selected-model) |19| `model not found` o `you may not have access to it` | [Referencia de errores](/docs/es/errors#theres-an-issue-with-the-selected-model) |

20| Un comando que ejecuta Claude falla con `Your disk quota is full`, `is full (ENOSPC)`, o `Command output was lost` | [Referencia de errores](/docs/es/errors#disk-quota-or-temp-filesystem-is-full) |

20| La extensión de VS Code no se conecta o no detecta Claude | [Integración de VS Code](/docs/es/vs-code#fix-common-issues) |21| La extensión de VS Code no se conecta o no detecta Claude | [Integración de VS Code](/docs/es/vs-code#fix-common-issues) |

21| `Claude Code process exited with code 1` en VS Code o una aplicación SDK | [Referencia de errores](/docs/es/errors#claude-code-process-exited-with-code-n) |22| `Claude Code process exited with code 1` en VS Code o una aplicación SDK | [Referencia de errores](/docs/es/errors#claude-code-process-exited-with-code-n) |

22| Plugin de JetBrains o IDE no detectado | [Integración de JetBrains](/docs/es/jetbrains#troubleshooting) |23| Plugin de JetBrains o IDE no detectado | [Integración de JetBrains](/docs/es/jetbrains#troubleshooting) |

Details

30 Habilitar dictado de voz30 Habilitar dictado de voz

31</h2>31</h2>

32 32 

33Ejecute `/voice` para habilitar el dictado. La primera vez que lo habilite, Claude Code ejecuta una verificación de micrófono. En macOS, esto activa la solicitud de permiso de micrófono del sistema para su terminal si nunca se le ha otorgado.33Ejecute `/voice` para habilitar el dictado. Cuando lo habilite, Claude Code ejecuta una verificación de micrófono. En macOS, esto activa la solicitud de permiso de micrófono del sistema para su terminal si nunca se le ha otorgado.

34 34 

35```35```

36/voice36/voice


190* **`Voice mode requires SoX for audio recording` en Linux**: el módulo de audio nativo no pudo cargarse y no hay alternativa instalada. Instale SoX con el comando que se muestra en el mensaje de error, por ejemplo `sudo apt-get install sox`.190* **`Voice mode requires SoX for audio recording` en Linux**: el módulo de audio nativo no pudo cargarse y no hay alternativa instalada. Instale SoX con el comando que se muestra en el mensaje de error, por ejemplo `sudo apt-get install sox`.

191* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX está instalado, pero el host no tiene un dispositivo de captura de audio, por ejemplo un servidor sin interfaz gráfica o un contenedor. Ejecute Claude Code en una máquina con micrófono. A partir de v2.1.195, Claude Code en Linux reporta este mensaje en esa situación; las versiones anteriores le pedían que instalara SoX incluso cuando ya estaba instalado.191* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX está instalado, pero el host no tiene un dispositivo de captura de audio, por ejemplo un servidor sin interfaz gráfica o un contenedor. Ejecute Claude Code en una máquina con micrófono. A partir de v2.1.195, Claude Code en Linux reporta este mensaje en esa situación; las versiones anteriores le pedían que instalara SoX incluso cuando ya estaba instalado.

192* **`Voice mode could not find a working audio recorder in WSL`**: WSLg enruta el audio a través de PulseAudio en lugar de un dispositivo ALSA, por lo que SoX necesita que su backend de PulseAudio esté instalado explícitamente. Ejecute `sudo apt install sox libsox-fmt-pulse`. Instalar `sox` solo extrae el backend de ALSA, que no puede grabar en WSL porque no hay un dispositivo `/dev/snd`.192* **`Voice mode could not find a working audio recorder in WSL`**: WSLg enruta el audio a través de PulseAudio en lugar de un dispositivo ALSA, por lo que SoX necesita que su backend de PulseAudio esté instalado explícitamente. Ejecute `sudo apt install sox libsox-fmt-pulse`. Instalar `sox` solo extrae el backend de ALSA, que no puede grabar en WSL porque no hay un dispositivo `/dev/snd`.

193* **`Voice input is failing repeatedly and has been paused`**: el dictado de voz encontró tres fallos de captura en 10 segundos. Claude Code pausa el dictado hasta que hayan pasado 10 segundos desde el primero de esos fallos. Un fallo cuenta si el micrófono no se inicia o el grabador se inicia y luego se detiene sin producir ningún audio. Esto generalmente significa que el micrófono o la pila de audio en este host no puede capturar audio, por ejemplo un servidor sin interfaz gráfica, un shell remoto sin paso de audio, o un permiso de micrófono denegado. Confirme un dispositivo de entrada que funcione, corrija la causa subyacente de las entradas anteriores, luego active la voz nuevamente. Antes de v2.1.202, solo los fallos de inicio contaban hacia la pausa.193* **`Voice input is failing repeatedly and has been paused`**: el dictado de voz encontró tres fallos dentro de 10 segundos. Claude Code pausa el dictado hasta que hayan pasado 10 segundos desde el primero de esos fallos. Esto generalmente significa que el micrófono o la pila de audio en este host no puede capturar audio, por ejemplo un servidor sin interfaz gráfica, un shell remoto sin paso de audio, o un permiso de micrófono denegado. Confirme un dispositivo de entrada que funcione, corrija la causa subyacente de las entradas anteriores, luego active la voz nuevamente. Antes de v2.1.202, solo los fallos de inicio contaban hacia la pausa.

194* **Nada sucede al mantener presionada la `Barra espaciadora` en modo de mantener**: observe la entrada de indicación mientras mantiene presionada. Si los espacios siguen acumulándose, el dictado de voz probablemente esté desactivado; ejecute `/voice hold` para habilitarlo. Si solo aparecen uno o dos espacios y luego nada, el dictado de voz está activado pero la detección de mantener no se activa. La detección de mantener requiere que su terminal envíe eventos de repetición de teclas, por lo que no puede detectar una tecla mantenida si la repetición de teclas está deshabilitada a nivel del sistema operativo. Cambie al modo de toque con `/voice tap` para evitar el requisito de repetición de teclas.194* **Nada sucede al mantener presionada la `Barra espaciadora` en modo de mantener**: observe la entrada de indicación mientras mantiene presionada. Si los espacios siguen acumulándose, el dictado de voz probablemente esté desactivado; ejecute `/voice hold` para habilitarlo. Si solo aparecen uno o dos espacios y luego nada, el dictado de voz está activado pero la detección de mantener no se activa. La detección de mantener requiere que su terminal envíe eventos de repetición de teclas, por lo que no puede detectar una tecla mantenida si la repetición de teclas está deshabilitada a nivel del sistema operativo. Cambie al modo de toque con `/voice tap` para evitar el requisito de repetición de teclas.

195* **Tocar la `Barra espaciadora` escribe un espacio en lugar de grabar en modo de toque**: el primer toque solo comienza a grabar cuando la entrada de indicación está vacía. Borre la entrada primero, o verifique que esté en modo de toque ejecutando `/voice tap`.195* **Tocar la `Barra espaciadora` escribe un espacio en lugar de grabar en modo de toque**: el primer toque solo comienza a grabar cuando la entrada de indicación está vacía. Borre la entrada primero, o verifique que esté en modo de toque ejecutando `/voice tap`.

196* **`No audio detected from microphone`**: la grabación comenzó pero capturó silencio. Confirme que el dispositivo de entrada correcto está configurado como predeterminado del sistema y que su nivel de entrada no está silenciado ni cerca de cero. En Windows, abra Configuración → Sistema → Sonido → Entrada y seleccione su micrófono. En macOS, abra Configuración del Sistema → Sonido → Entrada.196* **`No audio detected from microphone`**: la grabación comenzó pero capturó silencio. Confirme que el dispositivo de entrada correcto está configurado como predeterminado del sistema y que su nivel de entrada no está silenciado ni cerca de cero. En Windows, abra Configuración → Sistema → Sonido → Entrada y seleccione su micrófono. En macOS, abra Configuración del Sistema → Sonido → Entrada.

vs-code.md +41 −18

Details

109 109 

110El cuadro de solicitud admite varias características:110El cuadro de solicitud admite varias características:

111 111 

112* **Modos de permiso**: haga clic en el indicador de modo en la parte inferior del cuadro de solicitud para cambiar los modos de permiso. En los planes Pro, Max y Team, Auto es el modo de permiso inicial integrado. Consulte [cómo la extensión elige el modo de permiso inicial](/docs/es/permission-modes#switch-permission-modes) para saber qué cambia eso y todos los modos de permiso que ofrece el indicador.112* **Modos de permiso**: haga clic en el indicador de modo en la parte inferior del cuadro de solicitud para cambiar los modos de permiso. Con Claude Code v2.1.283 o posterior, Auto es el modo de permiso inicial integrado, y en versiones anteriores solo en planes Pro, Max y Team. Consulte [cómo la extensión elige el modo de permiso inicial](/docs/es/permission-modes#switch-permission-modes) para saber qué cambia eso y todos los modos de permiso que ofrece el indicador.

113 * **Auto**: un clasificador revisa la mayoría de las acciones en lugar de pedirle permiso. Consulte [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para saber qué revisa y bloquea.113 * **Auto**: un clasificador revisa la mayoría de las acciones en lugar de pedirle permiso. Consulte [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para saber qué revisa y bloquea.

114 * **Manual**: Claude solicita permiso antes de ediciones de archivos y la mayoría de comandos de shell.114 * **Manual**: Claude solicita permiso antes de ediciones de archivos y la mayoría de comandos de shell.

115 * **Plan**: Claude describe lo que hará y espera aprobación antes de hacer cambios. VS Code abre automáticamente el plan como un documento Markdown completo donde puede agregar comentarios en línea para dar retroalimentación antes de que Claude comience.115 * **Plan**: Claude describe lo que hará y espera aprobación antes de hacer cambios. VS Code abre automáticamente el plan como un documento Markdown completo donde puede agregar comentarios en línea para dar retroalimentación antes de que Claude comience.


123* **Model**: seleccione **Switch model…** desde el menú de comandos para cambiar el modelo durante la sesión. También puede hacer clic en el nombre del modelo en la parte inferior del cuadro de solicitud para abrir el mismo selector.123* **Model**: seleccione **Switch model…** desde el menú de comandos para cambiar el modelo durante la sesión. También puede hacer clic en el nombre del modelo en la parte inferior del cuadro de solicitud para abrir el mismo selector.

124 124 

125 Cuando el modelo actual admite [niveles de esfuerzo](/docs/es/model-config#adjust-effort-level), el selector también muestra una fila **Effort** y el botón del nombre del modelo muestra el nivel seleccionado. Cuando elige un nivel distinto de `max`, Claude Code lo guarda para el modelo actual como su predeterminado, bajo [`modelSettings`](/docs/es/settings-reference#modelsettings) en su configuración de usuario; `max` se aplica solo a la sesión actual. El botón del nombre del modelo y la fila **Effort** requieren Claude Code v2.1.257 o posterior.125 Cuando el modelo actual admite [niveles de esfuerzo](/docs/es/model-config#adjust-effort-level), el selector también muestra una fila **Effort** y el botón del nombre del modelo muestra el nivel seleccionado. Cuando elige un nivel distinto de `max`, Claude Code lo guarda para el modelo actual como su predeterminado, bajo [`modelSettings`](/docs/es/settings-reference#modelsettings) en su configuración de usuario; `max` se aplica solo a la sesión actual. El botón del nombre del modelo y la fila **Effort** requieren Claude Code v2.1.257 o posterior.

126 

127 Cuando los [flujos de trabajo dinámicos](/docs/es/workflows) están habilitados y el modelo actual lo admite, aparece un conmutador **Ultracode** bajo la fila **Effort**. Actívelo para que Claude planifique un [flujo de trabajo](/docs/es/workflows#let-claude-decide-with-ultracode) para cada tarea sustancial en esta sesión, en el nivel de esfuerzo seleccionado. Mientras esté activado, el botón del nombre del modelo muestra `· Ultracode` después del nivel. El conmutador requiere Claude Code v2.1.284 o posterior.

126* **Command menu**: haga clic en `/` o escriba `/` para abrir el menú de comandos. Las opciones incluyen adjuntar archivos, cambiar modelos y alternar el pensamiento extendido.128* **Command menu**: haga clic en `/` o escriba `/` para abrir el menú de comandos. Las opciones incluyen adjuntar archivos, cambiar modelos y alternar el pensamiento extendido.

127 129 

128 La sección Customize proporciona acceso a servidores MCP, comandos, estilos de salida, hooks, memoria, instrucciones, permisos y plugins. Los elementos con un icono de terminal se abren en la terminal integrada.130 La sección Customize proporciona acceso a servidores MCP, comandos, estilos de salida, hooks, memoria, instrucciones, permisos y plugins. Los elementos con un icono de terminal se abren en la terminal integrada.


150 152 

151 La lista de tareas más reciente de Claude permanece visible, al igual que el texto de una pregunta pendiente de Claude; esto requiere Claude Code v2.1.225 o posterior. Mientras Claude ejecuta [subagentes](/docs/es/sub-agents), filas de progreso en vivo con su actividad más reciente aparecen bajo el grupo de llamadas de herramientas que las inició. Esto requiere Claude Code v2.1.269 o posterior.153 La lista de tareas más reciente de Claude permanece visible, al igual que el texto de una pregunta pendiente de Claude; esto requiere Claude Code v2.1.225 o posterior. Mientras Claude ejecuta [subagentes](/docs/es/sub-agents), filas de progreso en vivo con su actividad más reciente aparecen bajo el grupo de llamadas de herramientas que las inició. Esto requiere Claude Code v2.1.269 o posterior.

152 * Para cerrar sesión en su cuenta de Anthropic, seleccione **Sign out** en la sección Settings, o escriba `/logout`. En un [proveedor de terceros](#use-third-party-providers), el menú no ofrece ninguno de los dos. Requiere Claude Code v2.1.277 o posterior.154 * Para cerrar sesión en su cuenta de Anthropic, seleccione **Sign out** en la sección Settings, o escriba `/logout`. En un [proveedor de terceros](#use-third-party-providers), el menú no ofrece ninguno de los dos. Requiere Claude Code v2.1.277 o posterior.

153 * Para reportar un error, haga clic en **Report a problem** en la parte inferior del menú, o escriba `/bug` o `/feedback` con una descripción opcional que rellene previamente el informe. Cuando envía el informe y está conectado a Anthropic en una conexión de primera parte, Claude Code lo envía a Anthropic. En un proveedor de terceros, o sin credenciales de Anthropic, el diálogo aún se abre, pero enviar muestra un error y no envía nada: a diferencia de `/bug` de la CLI, la extensión no escribe un archivo local. Requiere Claude Code v2.1.229 o posterior.155 * Para reportar un error, haga clic en **Report a problem** en la parte inferior del menú, o escriba `/bug` o `/feedback` con una descripción opcional que rellene previamente el informe. Cuando envía el informe y está conectado a Anthropic en una conexión de primera parte, Claude Code lo envía a Anthropic. Requiere Claude Code v2.1.229 o posterior.

156 

157 En un proveedor de terceros, o sin credenciales de Anthropic, nada se envía. El diálogo lo dice antes de que escriba. Enviar guarda el informe como un [archivo local bajo `~/.claude/feedback-bundles/`](/docs/es/data-usage#telemetry-services) con patrones de clave API y token conocidos redactados. Envíe ese archivo a su representante de cuenta de Anthropic o adjúntelo a una solicitud de soporte. La confirmación nombra el archivo e incluye un botón **Show folder**. Guardar el informe en su computadora requiere Claude Code v2.1.284 o posterior.

154 158 

155 Si la política de su organización desactiva la retroalimentación del producto, **Report a problem** no aparece en el menú, y `/bug` y `/feedback` muestran un aviso `Feedback is turned off by your organization's policy or this environment's settings.` en lugar de abrir el informe.159 Si la política de su organización desactiva la retroalimentación del producto, **Report a problem** no aparece en el menú, y `/bug` y `/feedback` muestran un aviso `Feedback is turned off by your organization's policy or this environment's settings.` en lugar de abrir el informe. Con Claude Code v2.1.284 o posterior, si establece la variable de entorno `DISABLE_FEEDBACK_COMMAND` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, la retroalimentación también se desactiva y abrir el informe muestra ese aviso en su lugar.

156* **Side questions**: escriba `/btw` seguido de una pregunta para preguntar sobre su sesión [sin agregar a la conversación](/docs/es/interactive-mode#side-questions-with-%2Fbtw). La respuesta se abre en un panel junto al chat, donde puede hacer preguntas de seguimiento. El hilo sobrevive a las recargas de ventana. Claude Code mantiene los 20 intercambios más nuevos y expira los hilos almacenados en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que Claude Code pueda [determinar de forma segura el período de retención](/docs/es/claude-directory#cleaned-up-automatically). Para borrar un hilo, haga clic en el icono de papelera en el panel. Requiere Claude Code v2.1.227 o posterior.160* **Side questions**: escriba `/btw` seguido de una pregunta para preguntar sobre su sesión [sin agregar a la conversación](/docs/es/interactive-mode#side-questions-with-%2Fbtw). La respuesta se abre en un panel junto al chat, donde puede hacer preguntas de seguimiento. El hilo sobrevive a las recargas de ventana. Claude Code mantiene los 20 intercambios más nuevos y expira los hilos almacenados en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que Claude Code pueda [determinar de forma segura el período de retención](/docs/es/claude-directory#cleaned-up-automatically). Para borrar un hilo, haga clic en el icono de papelera en el panel. Requiere Claude Code v2.1.227 o posterior.

157* **Copy a response**: pase el cursor sobre una respuesta y haga clic en **Copy response** para copiarla al portapapeles, o escriba `/copy` para copiar la respuesta más reciente. `/copy 2` copia la segunda más reciente. Requiere Claude Code v2.1.277 o posterior.161* **Copy a response**: pase el cursor sobre una respuesta y haga clic en **Copy response** para copiarla al portapapeles, o escriba `/copy` para copiar la respuesta más reciente. `/copy 2` copia la segunda más reciente. Requiere Claude Code v2.1.277 o posterior.

158* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.162* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.


242 </Step>246 </Step>

243 247 

244 <Step title="Select a session to resume">248 <Step title="Select a session to resume">

245 Examine o busque sus sesiones en la nube. Haga clic en cualquier sesión para descargarla y continuar la conversación localmente.249 Examine o busque sus sesiones. Haga clic en una para continuar la conversación localmente.

246 </Step>250 </Step>

247</Steps>251</Steps>

248 252 

249<Note>253<Note>

250 Solo las sesiones en la nube iniciadas con un repositorio de GitHub aparecen en la pestaña Web. Reanudar carga el historial de conversaciones localmente; los cambios no se sincronizan de vuelta a claude.ai.254 Cuando la carpeta que tiene abierta es un repositorio de GitHub, la pestaña Web muestra solo sesiones de ese repositorio.

255 

256 Cuando reanuda una sesión en la nube, la extensión descarga una copia del historial de conversaciones; los cambios no se sincronizan de vuelta a claude.ai.

251</Note>257</Note>

252 258 

259La pestaña Web también enumera sus sesiones de [Remote Control](/docs/es/remote-control). Si hace clic en una que se ejecutó en la carpeta que tiene abierta, la extensión abre esa conversación local en su lugar de descargar una copia, y enfoca la pestaña que ya la muestra si existe una. Si la extensión no puede descartar que otro proceso de Claude tenga la conversación abierta, obtiene una copia descargada en su lugar.

260 

261Si alguna parte de una conversación no se descarga, aparece un error y no se guarda ninguna copia. Seleccione la sesión de nuevo para reintentar. Si selecciona una sesión que aún no tiene conversación para descargar, un error le dice dónde continuar en su lugar.

262 

253<h3 id="check-account-and-usage">263<h3 id="check-account-and-usage">

254 Verificar cuenta y uso264 Verificar cuenta y uso

255</h3>265</h3>


269 Personaliza tu flujo de trabajo279 Personaliza tu flujo de trabajo

270</h2>280</h2>

271 281 

272Puedes reposicionar el panel de Claude, ejecutar múltiples conversaciones, organizar la lista de sesiones en grupos o cambiar al modo terminal.282Puedes reposicionar el panel de Claude, ejecutar múltiples conversaciones, agrupar o filtrar la lista de sesiones, o cambiar al modo terminal.

273 283 

274<h3 id="choose-where-claude-lives">284<h3 id="choose-where-claude-lives">

275 Elige dónde vive Claude285 Elige dónde vive Claude


278Puedes arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Agarra la pestaña o la barra de título del panel y arrástralo a:288Puedes arrastrar el panel de Claude para reposicionarlo en cualquier lugar de VS Code. Agarra la pestaña o la barra de título del panel y arrástralo a:

279 289 

280* **Barra lateral secundaria**: el lado derecho de la ventana. Mantiene Claude visible mientras codificas.290* **Barra lateral secundaria**: el lado derecho de la ventana. Mantiene Claude visible mientras codificas.

281* **Barra lateral principal**: la barra lateral izquierda con iconos para Explorer, Search, etc.291* **Barra lateral principal**: la barra lateral izquierda con iconos para Explorador, Búsqueda, etc.

282* **Área del editor**: abre Claude como una pestaña junto a tus archivos. Útil para tareas secundarias.292* **Área del editor**: abre Claude como una pestaña junto a tus archivos. Útil para tareas secundarias.

283 293 

284Cuando Claude abre una pestaña en un nuevo grupo de editor, la extensión bloquea ese grupo, por lo que los archivos que abres mientras la pestaña de Claude está enfocada van a otro grupo en lugar de junto a ella.294Cuando Claude abre una pestaña en un nuevo grupo de editor, la extensión bloquea ese grupo, por lo que los archivos que abres mientras la pestaña de Claude está enfocada van a otro grupo en lugar de junto a ella.


286Para evitar que la extensión bloquee grupos, desactiva la [configuración Lock Editor Groups](vscode://settings/claudeCode.lockEditorGroups). Los grupos que ya están bloqueados permanecen bloqueados hasta que los desbloquees. La configuración requiere Claude Code v2.1.274 o posterior.296Para evitar que la extensión bloquee grupos, desactiva la [configuración Lock Editor Groups](vscode://settings/claudeCode.lockEditorGroups). Los grupos que ya están bloqueados permanecen bloqueados hasta que los desbloquees. La configuración requiere Claude Code v2.1.274 o posterior.

287 297 

288<Tip>298<Tip>

289 Usa la barra lateral para tu sesión principal de Claude y abre pestañas adicionales para tareas secundarias. Claude recuerda tu ubicación preferida. El icono de la lista de sesiones de la Activity Bar es independiente del panel de Claude: la lista de sesiones siempre es visible en la Activity Bar, mientras que el icono del panel de Claude solo aparece allí cuando el panel está acoplado a la barra lateral izquierda.299 Usa la barra lateral para tu sesión principal de Claude y abre pestañas adicionales para tareas secundarias. Claude recuerda tu ubicación preferida. El icono de la lista de sesiones de la barra de actividades es independiente del panel de Claude: la lista de sesiones siempre es visible en la barra de actividades, mientras que el icono del panel de Claude solo aparece allí cuando el panel está acoplado a la barra lateral izquierda.

290</Tip>300</Tip>

291 301 

292Después de ejecutar **Developer: Reload Window** o reiniciar VS Code, si una conversación vuelve con su historial depende de dónde estuviera abierta:302Después de ejecutar **Developer: Reload Window** o reiniciar VS Code, si una conversación vuelve con su historial depende de dónde estuviera abierta:


302 Ejecuta múltiples conversaciones312 Ejecuta múltiples conversaciones

303</h3>313</h3>

304 314 

305Usa **Open in New Tab** u **Open in New Window** desde la Command Palette para iniciar conversaciones adicionales. Cada conversación mantiene su propio historial y contexto, permitiéndote trabajar en diferentes tareas en paralelo.315Usa **Open in New Tab** u **Open in New Window** desde la Paleta de comandos para iniciar conversaciones adicionales. Cada conversación mantiene su propio historial y contexto, permitiéndote trabajar en diferentes tareas en paralelo.

306 316 

307Cuando uses pestañas, un pequeño punto de color en el icono de spark indica el estado: azul significa que hay una solicitud de permiso pendiente, naranja significa que Claude terminó mientras la pestaña estaba oculta.317Cuando usas pestañas, un pequeño punto de color en el icono de chispa indica el estado: azul significa que hay una solicitud de permiso pendiente, naranja significa que Claude terminó mientras la pestaña estaba oculta.

308 318 

309<h3 id="organize-sessions-into-groups">319<h3 id="organize-sessions-into-groups">

310 Organiza sesiones en grupos320 Organiza sesiones en grupos

311</h3>321</h3>

312 322 

313En la lista de sesiones de la Activity Bar, puedes recopilar sesiones relacionadas en grupos nombrados y contraíbles. Requiere Claude Code v2.1.229 o posterior.323En la lista de sesiones de la barra de actividades, puedes recopilar sesiones relacionadas en grupos nombrados y contraíbles. Requiere Claude Code v2.1.229 o posterior.

314 324 

315* **Agrupar o desagrupar una sesión**: haz clic derecho en una sesión para crear un grupo a partir de ella, moverla a un grupo existente o eliminarla de su grupo. Cada sesión pertenece a un grupo a la vez, por lo que moverla a otro grupo la elimina del primero.325* **Agrupa o desagrupa una sesión**: haz clic derecho en una sesión para crear un grupo a partir de ella, moverla a un grupo existente, o quitarla de su grupo. Cada sesión pertenece a un grupo a la vez, por lo que moverla a otro grupo la quita del primero.

316* **Mover varias sesiones a la vez**: `Cmd`-clic (Mac) / `Ctrl`-clic (Windows/Linux) en cada sesión, o `Shift`-clic para seleccionar un rango, luego haz clic derecho en la selección.326* **Mueve varias sesiones a la vez**: `Cmd`-haz clic (Mac) / `Ctrl`-haz clic (Windows/Linux) en cada sesión, o `Shift`-haz clic para seleccionar un rango, luego haz clic derecho en la selección.

317* **Agrupar una sesión desde su pestaña**: ejecuta **Claude Code: Add Session Tab to Group** desde la Command Palette, luego elige o crea un grupo. Requiere Claude Code v2.1.257 o posterior.327* **Agrupa una sesión desde su pestaña**: ejecuta **Claude Code: Add Session Tab to Group** desde la Paleta de comandos, luego elige o crea un grupo. Requiere Claude Code v2.1.257 o posterior.

318* **Renombrar o eliminar un grupo**: haz clic derecho en un encabezado de grupo. Eliminar un grupo solo elimina el grupo, y sus sesiones vuelven a la lista sin agrupar.328* **Renombra o elimina un grupo**: haz clic derecho en un encabezado de grupo. Eliminar un grupo solo quita el grupo, y sus sesiones vuelven a la lista sin agrupar.

319 329 

320La extensión guarda grupos por carpeta de espacio de trabajo, por lo que sobreviven a recargas de ventana y aparecen en cada ventana donde abres la misma carpeta. Cuando buscas en la lista, la extensión muestra coincidencias en una lista plana única en todos los grupos.330La extensión guarda grupos por carpeta de espacio de trabajo, por lo que sobreviven a recargas de ventana y aparecen en cada ventana donde abres la misma carpeta. Cuando buscas en la lista, la extensión muestra coincidencias en una lista plana única en todos los grupos.

321 331 

332<h3 id="filter-the-sessions-list">

333 Filtra la lista de sesiones

334</h3>

335 

336Para reducir una lista larga de sesiones en la barra de actividades, usa los dos controles de filtro en la parte superior de la lista. Requiere Claude Code v2.1.271 o posterior. Las sesiones archivadas no aparecen mientras alguno de los filtros esté activado.

337 

338* **Active**: activa este interruptor para mostrar solo sesiones que necesitan tu entrada, están funcionando, o no han sido leídas, más la sesión en la pestaña de Claude que enfocaste por última vez.

339* **Filter by status**: haz clic en el icono de embudo, luego marca **Needs input**, **Working**, o **Completed** para mostrar sesiones en cualquiera de esos estados. Marca **Open** o **Closed** para reducir según si una sesión está abierta. Una sesión se cuenta como abierta cuando tiene una pestaña en esta ventana o se está ejecutando en otro proceso de Claude Code en esta máquina, como en una terminal.

340 

341Cuando **Active** está activado y marcas un estado, **Open**, o **Closed**, la lista también muestra cada sesión que coincide con tus marcas. Los filtros que estableces persisten en recargas de ventana.

342 

322<h3 id="switch-to-terminal-mode">343<h3 id="switch-to-terminal-mode">

323 Cambiar al modo terminal344 Cambia al modo terminal

324</h3>345</h3>

325 346 

326De forma predeterminada, la extensión abre un panel de chat gráfico. Si prefieres la interfaz de estilo CLI, abre la [configuración Use Terminal](vscode://settings/claudeCode.useTerminal) y marca la casilla.347De forma predeterminada, la extensión abre un panel de chat gráfico. Si prefieres la interfaz de estilo CLI, abre la [configuración Use Terminal](vscode://settings/claudeCode.useTerminal) y marca la casilla.

327 348 

328También puedes abrir la configuración de VS Code (`Cmd+,` en Mac o `Ctrl+,` en Windows/Linux), ve a Extensions → Claude Code y marca **Use Terminal**.349También puedes abrir la configuración de VS Code (`Cmd+,` en Mac o `Ctrl+,` en Windows/Linux), ve a Extensions → Claude Code, y marca **Use Terminal**.

329 350 

330<h2 id="manage-plugins">351<h2 id="manage-plugins">

331 Gestionar plugins352 Gestionar plugins


506La extensión tiene dos tipos de ajustes:527La extensión tiene dos tipos de ajustes:

507 528 

508* **Ajustes de extensión** en VS Code: controlan el comportamiento de la extensión dentro de VS Code. Abra con `Cmd+,` (Mac) o `Ctrl+,` (Windows/Linux), luego vaya a Extensiones → Claude Code. También puede escribir `/` y seleccionar **General config…** para abrir los ajustes.529* **Ajustes de extensión** en VS Code: controlan el comportamiento de la extensión dentro de VS Code. Abra con `Cmd+,` (Mac) o `Ctrl+,` (Windows/Linux), luego vaya a Extensiones → Claude Code. También puede escribir `/` y seleccionar **General config…** para abrir los ajustes.

509* **Ajustes de Claude Code** en `~/.claude/settings.json`: compartidos entre la extensión y CLI. Úselo para comandos permitidos, variables de entorno, hooks y servidores MCP. En los planes Pro, Max y Team, también es una entrada al modo de permisos en el que comienzan las conversaciones. [Switch permission modes](/docs/es/permission-modes#switch-permission-modes) enumera el orden. Consulte [Settings](/docs/es/settings) para obtener detalles.530* **Ajustes de Claude Code** en `~/.claude/settings.json`: compartidos entre la extensión y CLI. Úselo para comandos permitidos, variables de entorno, hooks y servidores MCP. Con Claude Code v2.1.283 o posterior, también es una entrada al modo de permisos en el que comienzan las conversaciones, y en versiones anteriores solo en planes Pro, Max y Team. [Switch permission modes](/docs/es/permission-modes#switch-permission-modes) enumera el orden. Consulte [Settings](/docs/es/settings) para obtener detalles.

510 531 

511<Tip>532<Tip>

512 Agregue `"$schema": "https://json.schemastore.org/claude-code-settings.json"` a su `settings.json` para obtener autocompletado y validación en línea para todos los ajustes disponibles directamente en VS Code.533 Agregue `"$schema": "https://json.schemastore.org/claude-code-settings.json"` a su `settings.json` para obtener autocompletado y validación en línea para todos los ajustes disponibles directamente en VS Code.


722 743 

723**Contexto de selección y archivo abierto.** Mientras está conectado, la CLI incluye su selección actual del editor y la ruta del archivo activo como contexto en cada solicitud que envía. La transcripción muestra una línea `⧉ Selected N lines from <file>` cuando esto sucede.744**Contexto de selección y archivo abierto.** Mientras está conectado, la CLI incluye su selección actual del editor y la ruta del archivo activo como contexto en cada solicitud que envía. La transcripción muestra una línea `⧉ Selected N lines from <file>` cuando esto sucede.

724 745 

746Si [pone en cola un mensaje mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works), mantiene la selección que tenía cuando presionó `Enter`, sin importar lo que seleccione después.

747 

725Para excluir un archivo sensible como `.env`, agregue una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) para su ruta. Una regla de denegación coincidente evita que tanto el texto seleccionado como el aviso de archivo abierto para ese archivo lleguen a Claude.748Para excluir un archivo sensible como `.env`, agregue una [regla de denegación `Read`](/docs/es/permissions#read-and-edit) para su ruta. Una regla de denegación coincidente evita que tanto el texto seleccionado como el aviso de archivo abierto para ese archivo lleguen a Claude.

726 749 

727Si desactiva la [configuración Attach Open File](#extension-settings), la CLI recibe la ruta del archivo activo solo mientras tenga texto seleccionado en él.750Si desactiva la [configuración Attach Open File](#extension-settings), la CLI recibe la ruta del archivo activo solo mientras tenga texto seleccionado en él.

workflows.md +14 −6

Details

161 Dejar que Claude decida con ultracode161 Dejar que Claude decida con ultracode

162</h3>162</h3>

163 163 

164Ultracode es una configuración de Claude Code que combina `xhigh` [esfuerzo de razonamiento](/docs/es/model-config#adjust-effort-level) con orquestación automática de workflows. Con él activado, Claude planifica un workflow para cada tarea sustancial en lugar de esperar a que lo pida.164Ultracode es una configuración de Claude Code que activa la orquestación automática de workflows para la sesión, en cualquier [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) en el que se ejecute la sesión. Con él activado, Claude planifica un workflow para cada tarea sustancial en lugar de esperar a que lo pida. Actívelo en el prompt de Claude Code:

165 165 

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

167/effort ultracode167/effort ultracode

168```168```

169 169 

170Para iniciar una sesión con ultracode ya activado, lance con `claude --effort ultracode`. Requiere Claude Code v2.1.203 o posterior.170Para iniciar una sesión con ultracode ya activado, lance con `claude --effort ultracode`, que también establece el nivel de esfuerzo en `xhigh`. Requiere Claude Code v2.1.203 o posterior.

171 171 

172Para activarlo mientras elige un modelo, mueva el control deslizante de esfuerzo del selector `/model` a `ultracode` con las teclas de flecha. [Ajustar nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enumera las rutas que activan ultracode.172Para activarlo desde el control deslizante `/effort`, presione `Tab` para cambiar el botón **Ultracode**, luego `Enter` para aplicarlo. [Ajustar nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enumera las rutas que activan ultracode.

173 173 

174Con ultracode activado, Claude decide cuándo una tarea justifica un workflow. Una sola solicitud puede convertirse en varios workflows seguidos: uno para entender el código, uno para hacer el cambio y uno para verificarlo. Esto se aplica a cada tarea en la sesión, por lo que cada solicitud usa más tokens y toma más tiempo que en niveles de esfuerzo más bajos.174Con ultracode activado, Claude decide cuándo una tarea justifica un workflow. Una sola solicitud puede convertirse en varios workflows seguidos: uno para entender el código, uno para hacer el cambio y uno para verificarlo. Esto se aplica a cada tarea en la sesión, por lo que cada solicitud usa más tokens y toma más tiempo que la misma solicitud sin un workflow. En un plan de suscripción, esos tokens se extraen de sus límites de uso, por lo que una sesión con ultracode activado alcanza un límite de sesión o semanal más rápido que el mismo trabajo con él desactivado.

175 175 

176`/effort ultracode` dura la sesión actual; para que cada sesión comience con él, establezca la configuración [`ultracode`](/docs/es/settings-reference#ultracode). Vuelva con `/effort high` cuando regrese al trabajo rutinario. El menú `/effort` lo ofrece solo [cuando ultracode está disponible](/docs/es/model-config#when-ultracode-is-available).176Al activar ultracode, ya se opta por ejecuciones grandes, por lo que estas comprobaciones no se aplican mientras está activado:

177 

178* La advertencia [`Large workflow`](#cost) no aparece en una ejecución de workflow

179* El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) de la sesión no se aplica a los subagentes que Claude genera con la herramienta Agent

180* En modo de permiso automático, no se le pide que [apruebe el primer lanzamiento de workflow](#approve-the-plan-before-it-runs)

181 

182`/effort ultracode` dura la sesión actual; para que cada sesión comience con él, establezca la configuración [`ultracode`](/docs/es/settings-reference#ultracode). Desactívelo con `/effort ultracode off` cuando regrese al trabajo rutinario. El control deslizante `/effort` ofrece el botón solo [cuando ultracode está disponible](/docs/es/model-config#when-ultracode-is-available).

177 183 

178<h3 id="approve-the-plan-before-it-runs">184<h3 id="approve-the-plan-before-it-runs">

179 Aprobar el plan antes de que se ejecute185 Aprobar el plan antes de que se ejecute


516 522 

517Para desactivar workflows para toda su organización, establezca `"disableWorkflows": true` en [configuración administrada](/docs/es/server-managed-settings), o use el botón de alternancia en la página [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code).523Para desactivar workflows para toda su organización, establezca `"disableWorkflows": true` en [configuración administrada](/docs/es/server-managed-settings), o use el botón de alternancia en la página [configuración de administrador de Claude Code](https://claude.ai/admin-settings/claude-code).

518 524 

519Cuando los workflows están desactivados, los comandos de workflow incluidos y la skill `/workflow-authoring` no están disponibles, la palabra clave `ultracode` ya no activa una ejecución, y `ultracode` se elimina del menú `/effort`.525Cuando los workflows están desactivados, los comandos de workflow incluidos y la skill `/workflow-authoring` no están disponibles, la palabra clave `ultracode` ya no activa una ejecución, y el botón **Ultracode** se elimina de `/effort`. Una ejecución que ya estaba en progreso continúa.

526 

527Desactivar workflows también hace que [ultracode](#let-claude-decide-with-ultracode) no esté disponible. No hay ninguna configuración administrada que descarte solo ultracode: dondequiera que esté [disponible](/docs/es/model-config#when-ultracode-is-available), los usuarios pueden activarlo con `/effort ultracode`. Un [límite de esfuerzo](/docs/es/model-config#organization-effort-limits) reduce el nivel de esfuerzo que una sesión con ultracode activado ejecuta, pero no desactiva ultracode.

520 528 

521<h2 id="related-resources">529<h2 id="related-resources">

522 Recursos relacionados530 Recursos relacionados

worktrees.md +3 −3

Details

62Cuando sale de una sesión de worktree interactiva, Claude verifica el worktree para el trabajo que la eliminación eliminaría: archivos cambiados o sin seguimiento, trabajo sin confirmar dentro de submódulos extraídos y nuevos commits.62Cuando sale de una sesión de worktree interactiva, Claude verifica el worktree para el trabajo que la eliminación eliminaría: archivos cambiados o sin seguimiento, trabajo sin confirmar dentro de submódulos extraídos y nuevos commits.

63 63 

64* **El worktree está limpio**: para una sesión sin nombre, Claude elimina el worktree y su rama automáticamente. Una sesión [nombrada](/docs/es/sessions#name-your-sessions) le solicita primero para que pueda mantener el worktree para más tarde64* **El worktree está limpio**: para una sesión sin nombre, Claude elimina el worktree y su rama automáticamente. Una sesión [nombrada](/docs/es/sessions#name-your-sessions) le solicita primero para que pueda mantener el worktree para más tarde

65* **El worktree tiene trabajo en él**: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama para que pueda regresar más tarde. Eliminar borra el directorio del worktree y su rama, junto con todo el trabajo en ellos65* **El worktree tiene trabajo en él**: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama. Para regresar más tarde, ejecute el comando `claude --worktree <name> --resume` que Claude Code imprime al salir. Eliminar borra el directorio del worktree y su rama, junto con todo el trabajo en ellos

66* **El estado del worktree no se puede verificar**: cuando Claude Code no puede contar los cambios del worktree o no puede inspeccionar los checkouts de sus submódulos, le solicita en lugar de eliminar el worktree automáticamente. La solicitud nombra lo que no pudo verificar66* **El estado del worktree no se puede verificar**: cuando Claude Code no puede contar los cambios del worktree o no puede inspeccionar los checkouts de sus submódulos, le solicita en lugar de eliminar el worktree automáticamente. La solicitud nombra lo que no pudo verificar

67 67 

68Las ejecuciones no interactivas con `-p` no tienen solicitud de salida, por lo que Claude no limpia sus worktrees, y Claude Code deja el bloqueo que tomó en cada uno en la creación en su lugar hasta que una [limpieza de bloqueo obsoleto](#clean-up-subagent-and-background-session-worktrees) posterior lo libere. Para eliminar uno, ejecute `git worktree remove`; si git se niega porque el worktree está bloqueado, ejecute `git worktree unlock` en él primero.68Las ejecuciones no interactivas con `-p` no tienen solicitud de salida, por lo que Claude no limpia sus worktrees, y Claude Code deja el bloqueo que tomó en cada uno en la creación en su lugar hasta que una [limpieza de bloqueo obsoleto](#clean-up-subagent-and-background-session-worktrees) posterior lo libere. Para eliminar uno, ejecute `git worktree remove`; si git se niega porque el worktree está bloqueado, ejecute `git worktree unlock` en él primero.


73 Reanude una sesión de worktree73 Reanude una sesión de worktree

74</h2>74</h2>

75 75 

76Cuando reanuda una sesión que estaba dentro de un worktree, Claude Code devuelve la sesión a ese worktree. Esto se aplica a reanudaciones interactivas, a `--continue` y `--resume` en [modo no interactivo](/docs/es/headless) con `-p`, y al Agent SDK. De vuelta dentro del worktree, Claude aún puede salir de él con la herramienta [`ExitWorktree`](/docs/es/tools-reference).76Cuando reanuda una sesión que terminó dentro de un worktree sin [salir de él](#clean-up-worktrees), Claude Code devuelve la sesión a ese worktree. Esto se aplica a reanudaciones interactivas, a `--continue` y `--resume` en [modo no interactivo](/docs/es/headless) con `-p`, y al Agent SDK. `--continue` elige la sesión más reciente registrada en el directorio desde el que lanza. De vuelta dentro del worktree, Claude aún puede salir de él con la herramienta [`ExitWorktree`](/docs/es/tools-reference).

77 77 

78Antes de devolver la sesión a su worktree, Claude Code verifica que el worktree siga siendo un checkout separado del principal, y se niega a reingresar a un worktree que falla la verificación. Para un git worktree, la verificación lee sus metadatos de git. Un worktree sin metadatos de git, como uno que un [hook `WorktreeCreate`](#non-git-version-control) creó, puede pasar la verificación; los casos que Claude Code aún se niega están listados con sus recuperaciones bajo [Claude Code se niega a usar un worktree](#claude-code-refuses-to-use-a-worktree). Para los mensajes y cómo recuperarse de cada uno, consulte [La sesión se reanuda fuera de su worktree](#the-session-resumes-outside-its-worktree).78Antes de devolver la sesión a su worktree, Claude Code verifica que el worktree siga siendo un checkout separado del principal, y se niega a reingresar a un worktree que falla la verificación. Para un git worktree, la verificación lee sus metadatos de git. Un worktree sin metadatos de git, como uno que un [hook `WorktreeCreate`](#non-git-version-control) creó, puede pasar la verificación; los casos que Claude Code aún se niega están listados con sus recuperaciones bajo [Claude Code se niega a usar un worktree](#claude-code-refuses-to-use-a-worktree). Para los mensajes y cómo recuperarse de cada uno, consulte [La sesión se reanuda fuera de su worktree](#the-session-resumes-outside-its-worktree).

79 79 

80Dónde lanza y cómo reanuda, cambian lo que Claude Code reingresa:80Dónde lanza y cómo reanuda, cambian lo que Claude Code reingresa:

81 81 

82* **Directorio de lanzamiento**: reanude desde el checkout principal u otro directorio del repositorio. Claude Code reingresa a un worktree que creó con git bajo `.claude/worktrees/` incluso cuando lanza desde dentro de él. Cuando lanza desde dentro de cualquier otro worktree, Claude Code lo reingresa solo si puede respaldarlo desde allí: un worktree que es su propio repositorio, uno sin metadatos de git, o un lanzamiento desde un subdirectorio de un worktree que creó con `git worktree add` se niega, por lo que lance esos desde el checkout principal.82* **Directorio de lanzamiento**: reanude con `--resume` desde el checkout principal u otro directorio del repositorio. Claude Code reingresa a un worktree que creó con git bajo `.claude/worktrees/` incluso cuando lanza desde dentro de él. Cuando lanza desde dentro de cualquier otro worktree, Claude Code lo reingresa solo si puede respaldarlo desde allí: un worktree que es su propio repositorio, uno sin metadatos de git, o un lanzamiento desde un subdirectorio de un worktree que creó con `git worktree add` se niega, por lo que lance esos desde el checkout principal.

83* **`--fork-session`**: la sesión bifurcada comienza en el directorio desde el que lanzó Claude, y Claude Code deja el worktree de la sesión original sin cambios.83* **`--fork-session`**: la sesión bifurcada comienza en el directorio desde el que lanzó Claude, y Claude Code deja el worktree de la sesión original sin cambios.

84* **Worktree eliminado**: si el directorio del worktree ya no existe, Claude Code reanuda la sesión en el directorio desde el que lanzó Claude. Le dice que el worktree se ha ido y borra el enlace del worktree de la sesión.84* **Worktree eliminado**: si el directorio del worktree ya no existe, Claude Code reanuda la sesión en el directorio desde el que lanzó Claude. Le dice que el worktree se ha ido y borra el enlace del worktree de la sesión.

85 85