SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 05:01 UTC

35 files changed +408 −157. View all changes and history on the product overview
2026
Wed 30 06:58 Tue 29 23:58 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

artifacts.md +11 −11

Details

100Con quién puede compartir depende de su plan:100Con quién puede compartir depende de su plan:

101 101 

102* **Dentro de su organización**: en los planes Team y Enterprise, otorgue acceso a personas específicas en su organización, o a todos en ella. Los espectadores inician sesión en claude.ai como miembros de su organización para ver la página.102* **Dentro de su organización**: en los planes Team y Enterprise, otorgue acceso a personas específicas en su organización, o a todos en ella. Los espectadores inician sesión en claude.ai como miembros de su organización para ver la página.

103* **Públicamente**: comparta un enlace que cualquiera en internet pueda abrir, sin necesidad de iniciar sesión en claude.ai. En los planes Pro y Max, un enlace público es la única forma de compartir un artefacto. En los planes Team y Enterprise, el uso compartido público está desactivado hasta que un propietario [lo habilite para la organización](#control-public-sharing).103* **Públicamente**: comparta un enlace que cualquiera en internet pueda abrir, sin necesidad de iniciar sesión en claude.ai. En los planes Team y Enterprise, el uso compartido público está desactivado hasta que un propietario [lo habilite para la organización](#control-public-sharing).

104 104 

105<h3 id="let-someone-edit-with-you">105<h3 id="let-someone-edit-with-you">

106 Permitir que alguien edite con usted106 Permitir que alguien edite con usted


122 Recopilar comentarios en un artefacto122 Recopilar comentarios en un artefacto

123</h2>123</h2>

124 124 

125Cuando comparte un artefacto dentro de su organización, las personas con las que lo comparte pueden dejar comentarios en la página, y usted puede hacer que Claude lea esos comentarios y responda a ellos. Necesita Claude Code v2.1.221 o posterior y un plan de Team o Enterprise, porque solo un artefacto que [comparte dentro de su organización](#share-an-artifact) recibe comentarios. Claude lee los comentarios en dos casos:125Cuando comparte un artefacto dentro de su organización, las personas con las que lo comparte pueden dejar comentarios en la página, y usted puede hacer que Claude lea esos comentarios y responda a ellos. Necesita Claude Code v2.1.221 o posterior. Claude lee los comentarios en dos casos:

126 126 

127* **Usted le pide a Claude que los lea**: proporcione a Claude la URL del artefacto y pida los comentarios. Claude enumera cada hilo y marca los comentarios que alguien que puede editar el artefacto le envió.127* **Usted le pide a Claude que los lea**: proporcione a Claude la URL del artefacto y pida los comentarios. Claude enumera cada hilo y marca los comentarios que alguien que puede editar el artefacto le envió.

128* **Alguien que puede editar el artefacto envía un comentario a Claude**: en un hilo en la página, envía un comentario con **Send to Claude**, o menciona `@claude` en uno. De cualquier manera, activan el hilo.128* **Alguien que puede editar el artefacto envía un comentario a Claude**: en un hilo en la página, envía un comentario con **Send to Claude**, o menciona `@claude` en uno. De cualquier manera, activan el hilo.

129 129 

130Claude puede responder o resolver solo un hilo activado. Otros hilos permanecen abiertos hasta que una persona los resuelve en la página. Los espectadores ven cada respuesta atribuida a Claude, a través de usted.130Claude puede responder o resolver solo un hilo activado. Otros hilos permanecen abiertos hasta que una persona los resuelve en la página. Los espectadores ven cada respuesta atribuida a Claude, a través de usted.

131 131 

132Si comparte un artefacto públicamente, los espectadores no pueden comentar en él: la página dice `Comments aren't available while this Artifact is shared publicly.` Para cambiar un artefacto que ya tiene hilos de comentarios a un enlace público, elimine los hilos primero.132Si comparte un artefacto públicamente, las personas cuyo único acceso es el enlace público no ven sus comentarios y no pueden agregar ninguno. Los hilos de comentarios existentes permanecen en el artefacto, y usted y sus editores aún pueden leerlos y responder a ellos.

133 133 

134Para pedir los comentarios usted mismo, proporcione a Claude la URL:134Para pedir los comentarios usted mismo, proporcione a Claude la URL:

135 135 


195 195 

196Cuando planee compartir una página respaldada por un conector, pida a Claude que incluya un mensaje de respaldo en cada sección en vivo que nombre el conector que necesita. Un visualizador que no tenga la conexión entonces ve qué conectar en lugar de una sección vacía.196Cuando planee compartir una página respaldada por un conector, pida a Claude que incluya un mensaje de respaldo en cada sección en vivo que nombre el conector que necesita. Un visualizador que no tenga la conexión entonces ve qué conectar en lugar de una sección vacía.

197 197 

198Un artefacto que llama a conectores no se puede compartir a un enlace público en ningún plan. En los planes Team y Enterprise, puede mantenerlo privado o [compartirlo dentro de su organización](#share-an-artifact). En los planes Pro y Max, donde un enlace público es la única forma de compartir, un artefacto respaldado por un conector permanece privado para usted.198Puede [compartir una página respaldada por un conector](#share-an-artifact) dentro de su organización o públicamente, según lo permitan su plan y la configuración de su organización. Las llamadas de conectores no se ejecutan para un visualizador que abre el enlace público sin iniciar sesión en claude.ai, o desde fuera de su organización. Ese visualizador ve la página sin sus secciones en vivo.

199 199 

200<h3 id="the-page-shows-no-live-data-for-a-viewer">200<h3 id="the-page-shows-no-live-data-for-a-viewer">

201 La página no muestra datos en vivo para un visualizador201 La página no muestra datos en vivo para un visualizador

202</h3>202</h3>

203 203 

204Cuando una página respaldada por un conector se representa pero sus secciones en vivo permanecen vacías para alguien con quien la compartió, trabaje a través de estas causas:204Cuando una página respaldada por un conector se representa pero sus secciones en vivo permanecen vacías para un visualizador en su organización, trabaje a través de estas causas:

205 205 

206* **El visualizador no ha conectado el conector**: los conectores son por cuenta, de modo que cada visualizador necesita su propia conexión a cada conector que la página llama. Pueden agregar uno en **Configuración > Conectores** en claude.ai, luego recargar la página.206* **El visualizador no ha conectado el conector**: los conectores son por cuenta, de modo que cada visualizador necesita su propia conexión a cada conector que la página llama. Pueden agregar uno en **Configuración > Conectores** en claude.ai, luego recargar la página.

207* **El visualizador rechazó la solicitud de permiso**: un rechazo dura el resto de esa carga de página. Recargar la página trae la solicitud de permiso de vuelta.207* **El visualizador rechazó la solicitud de permiso**: un rechazo dura el resto de esa carga de página. Recargar la página trae la solicitud de permiso de vuelta.


375 375 

376| Requisito | Disponible cuando |376| Requisito | Disponible cuando |

377| :- | :- |377| :- | :- |

378| Plan | Pro, Max, Team o Enterprise. En planes Pro y Max, los artefactos son privados para usted hasta que los comparta, y no se aplica ninguna gestión de administrador. En planes de Team, los artefactos están habilitados de forma predeterminada. En planes de Enterprise, un propietario [los habilita](#manage-artifacts-for-your-organization) en la configuración de administrador de claude.ai. |378| Plan | Pro, Max, Team o Enterprise. En planes Pro y Max, los artefactos son privados para usted hasta que los comparta, y no se aplica ninguna gestión de administrador. En planes Team y Enterprise, los artefactos están habilitados de forma predeterminada, y un propietario puede [desactivarlos para la organización](#manage-artifacts-for-your-organization) en la configuración de administrador de claude.ai. |

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

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

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


408 Gestionar artefactos para su organización408 Gestionar artefactos para su organización

409</h2>409</h2>

410 410 

411Los administradores en planes de Team y Enterprise controlan los artefactos desde [la configuración de administrador de claude.ai](https://claude.ai/admin-settings/claude-code). El contenido del artefacto se almacena en la infraestructura operada por Anthropic y es visible solo para miembros autenticados de la organización publicadora, a menos que el artefacto sea [compartido públicamente](#control-public-sharing).411Los propietarios en planes de Team y Enterprise controlan los artefactos desde [la configuración de administrador de claude.ai](https://claude.ai/admin-settings/artifacts). El contenido del artefacto se almacena en la infraestructura operada por Anthropic y es visible solo para miembros autenticados de la organización publicadora y las personas con las que lo comparten, a menos que el artefacto sea [compartido públicamente](#control-public-sharing).

412 412 

413<h3 id="enable-or-disable-artifacts">413<h3 id="enable-or-disable-artifacts">

414 Habilitar o deshabilitar artefactos414 Habilitar o deshabilitar artefactos

415</h3>415</h3>

416 416 

417Para habilitar o deshabilitar artefactos para toda la organización, vaya a [**Configuración > Claude Code > Capacidades**](https://claude.ai/admin-settings/claude-code) y use el botón de alternancia **Artefactos**. En planes de Enterprise con control de acceso basado en roles, también puede limitar los artefactos a roles específicos: vaya a [**Configuración > Roles**](https://claude.ai/admin-settings/roles), edite un rol y establezca el permiso **Artefactos** bajo el grupo **Claude Code**.417Para habilitar o deshabilitar artefactos para toda la organización, vaya a [**Configuración de la organización > Artefactos**](https://claude.ai/admin-settings/artifacts) y use el botón de alternancia **Artefactos**. En planes de Enterprise con control de acceso basado en roles, también puede limitar los artefactos a roles específicos: vaya a [**Configuración de la organización > Roles**](https://claude.ai/admin-settings/roles), edite un rol y establezca el permiso **Artefactos**.

418 418 

419<h3 id="control-connector-calls-from-artifacts">419<h3 id="control-connector-calls-from-artifacts">

420 Controlar llamadas de conectores desde artefactos420 Controlar llamadas de conectores desde artefactos

421</h3>421</h3>

422 422 

423[Las llamadas de conectores desde artefactos](#pull-live-data-with-mcp-connectors) tienen su propio botón de alternancia, separado del botón de alternancia **Artefactos** que activa o desactiva los artefactos. Vaya a [**Configuración > Capacidades**](https://claude.ai/admin-settings/capabilities) y use el botón de alternancia **Habilitar conectores de artefactos**. El mismo botón de alternancia rige las llamadas de conectores desde artefactos creados en conversaciones de claude.ai, por lo que se encuentra bajo **Configuración > Capacidades** en lugar de **Configuración > Claude Code**.423[Las llamadas de conectores desde artefactos](#pull-live-data-with-mcp-connectors) tienen su propio botón de alternancia, separado del botón de alternancia **Artefactos** que activa o desactiva los artefactos. Vaya a [**Configuración de la organización > Capacidades**](https://claude.ai/admin-settings/capabilities) y use el botón de alternancia **Habilitar conectores de artefactos**. El mismo botón de alternancia rige las llamadas de conectores desde artefactos creados en conversaciones de claude.ai.

424 424 

425<h3 id="control-public-sharing">425<h3 id="control-public-sharing">

426 Controlar el compartir público426 Controlar el compartir público

427</h3>427</h3>

428 428 

429El compartir público está desactivado de forma predeterminada en planes de Team y Enterprise, por lo que los miembros pueden compartir artefactos solo dentro de la organización hasta que un administrador lo active. Para permitir que los miembros publiquen artefactos en enlaces públicos que cualquiera pueda ver sin iniciar sesión, vaya a **Configuración > Claude Code > Capacidades** y active **Compartir externo** bajo el botón de alternancia **Artefactos**. Desactivarlo bloquea el acceso a través de enlaces públicos existentes sin cambiar la audiencia de cada artefacto; el acceso se reanuda si lo vuelve a habilitar.429El compartir público está desactivado de forma predeterminada en planes de Team y Enterprise. Para permitir que los miembros publiquen artefactos en enlaces públicos que cualquiera pueda ver sin iniciar sesión, vaya a [**Configuración de la organización > Artefactos**](https://claude.ai/admin-settings/artifacts) y active **Compartir externo** bajo el botón de alternancia **Artefactos**. Desactivarlo bloquea el acceso a través de enlaces públicos existentes sin cambiar la audiencia de cada artefacto; el acceso se reanuda si lo vuelve a habilitar.

430 430 

431<h3 id="set-a-retention-policy">431<h3 id="set-a-retention-policy">

432 Establecer una política de retención432 Establecer una política de retención

433</h3>433</h3>

434 434 

435Para establecer cuánto tiempo se conservan los artefactos antes de la eliminación automática, vaya a [**Configuración > Controles de datos y privacidad**](https://claude.ai/admin-settings/data-privacy-controls). Puede establecer períodos de retención separados para artefactos que aún son privados para su autor y artefactos que han sido compartidos.435Para establecer cuánto tiempo se conservan los artefactos antes de la eliminación automática, vaya a [**Configuración de la organización > Datos y privacidad**](https://claude.ai/admin-settings/data-privacy-controls). Puede establecer períodos de retención separados para artefactos que aún son privados para su autor y artefactos que han sido compartidos.

436 436 

437<h3 id="review-the-audit-log">437<h3 id="review-the-audit-log">

438 Revisar el registro de auditoría438 Revisar el registro de auditoría

Details

163 La carga útil llega al contexto de Claude como una etiqueta `<channel>`:163 La carga útil llega al contexto de Claude como una etiqueta `<channel>`:

164 164 

165 ```text theme={null}165 ```text theme={null}

166 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>166 <channel source="webhook" path="/" method="POST">

167 build failed on main: https://ci.example.com/run/1234

168 </channel>

167 ```169 ```

168 170 

169 Tu terminal renderiza el evento como un resumen de una línea, `← webhook: build failed on main: https://ci.example.com/run/1234`, en lugar de la etiqueta sin procesar. Luego verás que Claude comienza a responder: leyendo archivos, ejecutando comandos, o lo que sea que el mensaje requiera. Este es un canal unidireccional, por lo que Claude actúa en tu sesión pero no envía nada de vuelta a través del webhook. Para agregar respuestas, consulta [Exponer una herramienta de respuesta](#expose-a-reply-tool).171 Tu terminal renderiza el evento como un resumen de una línea, `← webhook: build failed on main: https://ci.example.com/run/1234`, en lugar de la etiqueta sin procesar. Luego verás que Claude comienza a responder: leyendo archivos, ejecutando comandos, o lo que sea que el mensaje requiera. Este es un canal unidireccional, por lo que Claude actúa en tu sesión pero no envía nada de vuelta a través del webhook. Para agregar respuestas, consulta [Exponer una herramienta de respuesta](#expose-a-reply-tool).

chrome.md +8 −5

Details

84 84 

85Si más de un navegador está conectado, usted elige cuál usa Claude. Cuando una acción del navegador comienza antes de que haya elegido, Claude le solicita que elija uno. Para cambiar de navegador más tarde, ejecuta `/chrome` y selecciona **Select browser…**. Claude sigue usando su elección incluso cuando se conecta otro navegador.85Si más de un navegador está conectado, usted elige cuál usa Claude. Cuando una acción del navegador comienza antes de que haya elegido, Claude le solicita que elija uno. Para cambiar de navegador más tarde, ejecuta `/chrome` y selecciona **Select browser…**. Claude sigue usando su elección incluso cuando se conecta otro navegador.

86 86 

87Para VS Code, consulta [automatización del navegador en VS Code](/docs/es/vs-code#automate-browser-tasks-with-chrome).87Para VS Code, consulte [automatización del navegador en VS Code](/docs/es/vs-code#automate-browser-tasks-with-chrome).

88 88 

89<h3 id="install-the-extension-when-claude-asks">89<h3 id="install-the-extension-when-claude-asks">

90 Instalar la extensión cuando Claude lo solicita90 Instalar la extensión cuando Claude lo solicita


98* **Not now**: continúa la tarea sin herramientas del navegador. Claude Code puede preguntar nuevamente en una sesión posterior.98* **Not now**: continúa la tarea sin herramientas del navegador. Claude Code puede preguntar nuevamente en una sesión posterior.

99* **Don't ask again**: detiene el aviso en futuras sesiones. Aún puede configurar la integración en cualquier momento con `/chrome`.99* **Don't ask again**: detiene el aviso en futuras sesiones. Aún puede configurar la integración en cualquier momento con `/chrome`.

100 100 

101Si su organización bloquea el servidor MCP `claude-in-chrome` con la [configuración administrada `deniedMcpServers`](/docs/es/managed-mcp#policy-based-control-with-allowlists-and-denylists), Claude Code no muestra el aviso de instalación.101Dos políticas MCP administradas desactivan el aviso:

102 

103* Si su organización bloquea el servidor MCP `claude-in-chrome` con la [configuración administrada `deniedMcpServers`](/docs/es/managed-mcp#policy-based-control-with-allowlists-and-denylists), Claude Code no muestra el aviso de instalación.

104* Si su organización implementa un archivo [`managed-mcp.json`](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) sin [permitir Claude in Chrome junto con el conjunto administrado](/docs/es/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set), Claude Code no muestra el aviso de instalación.

102 105 

103<h3 id="enable-chrome-by-default">106<h3 id="enable-chrome-by-default">

104 Habilitar Chrome de forma predeterminada107 Habilitar Chrome de forma predeterminada


118 Administrar permisos del sitio121 Administrar permisos del sitio

119</h3>122</h3>

120 123 

121Los permisos a nivel de sitio se heredan de la extensión de Chrome. Administre los permisos en la configuración de la extensión de Chrome para controlar qué sitios puede examinar Claude, hacer clic e introducir texto.124Los permisos a nivel de sitio se heredan de la extensión de Chrome. Administre los permisos en la configuración de la extensión de Chrome para controlar qué sitios puede examinar Claude, hacer clic e introducir texto. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), cuando el clasificador del modo automático aprueba una llamada del navegador a un sitio, la extensión omite su propia verificación por sitio para esa llamada, a menos que sus reglas de permisos denieguen cualquier sitio a Claude in Chrome.

122 125 

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

124 Herramientas del navegador en plan mode127 Herramientas del navegador en Plan Mode

125</h3>128</h3>

126 129 

127En [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), aparece un aviso de permiso antes de que Claude grabe un GIF, abra una nueva pestaña o ejecute un atajo. Si [el modo bypass permissions está disponible](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) en su sesión y [la obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) está desactivada, estas llamadas se ejecutan sin un aviso.130En [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), aparece un aviso de permiso antes de que Claude grabe un GIF, abra una nueva pestaña o ejecute un atajo. Si [el modo bypass permissions está disponible](/docs/es/permission-modes#skip-all-checks-with-bypasspermissions-mode) en su sesión y [la obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) está desactivada, estas llamadas se ejecutan sin un aviso.

128 131 

129Una llamada `tabs_context_mcp` también solicita aprobación cuando establece `createIfEmpty`, y lo mismo ocurre con una llamada `browser_batch` que incluya cualquiera de estas acciones.132Una llamada `tabs_context_mcp` también solicita aprobación cuando establece `createIfEmpty`, y lo mismo ocurre con una llamada `browser_batch` que incluya cualquiera de estas acciones.

130 133 

Details

362 362 

363Las máquinas que solo ejecutan Claude Desktop la necesitan. Claude Desktop aplica la lista de modelos y la lista de herramientas deshabilitadas a sesiones incrustadas en sí mismo, pero la lista de permitidos de salida las alcanza solo como configuración principal, en forma de reglas de dominio `WebFetch` y reglas de red de sandbox. Sin la opción de participación, esas sesiones se ejecutan sin la restricción de salida, y nada le advierte. La puerta de enlace aún rechaza solicitudes de inferencia para modelos que la política no otorga.363Las máquinas que solo ejecutan Claude Desktop la necesitan. Claude Desktop aplica la lista de modelos y la lista de herramientas deshabilitadas a sesiones incrustadas en sí mismo, pero la lista de permitidos de salida las alcanza solo como configuración principal, en forma de reglas de dominio `WebFetch` y reglas de red de sandbox. Sin la opción de participación, esas sesiones se ejecutan sin la restricción de salida, y nada le advierte. La puerta de enlace aún rechaza solicitudes de inferencia para modelos que la política no otorga.

364 364 

365Una lista de permitidos de mercado de plugins también alcanza sesiones incrustadas solo como configuración principal. Cuando desactiva los mercados de plugins agregados por el usuario en la configuración administrada de Claude Desktop, Claude Desktop 2.16120.0 o posterior oculta los mercados que su organización no aprovisionó y rechaza instalaciones desde ellos. Para evitar que las sesiones incrustadas carguen plugins ya instalados desde esos mercados, envía una lista `strictKnownMarketplaces` como configuración principal. Sin la opción de participación, Claude Code ignora esa lista, y esos plugins siguen cargándose.

366 

365Las máquinas donde los desarrolladores inician sesión a través de `/login` no la necesitan; cada sesión de Claude Code obtiene su política de la puerta de enlace.367Las máquinas donde los desarrolladores inician sesión a través de `/login` no la necesitan; cada sesión de Claude Code obtiene su política de la puerta de enlace.

366 368 

367Las flotas cuyo [`policyHelper`](/docs/es/settings-reference#policyhelper) suministra configuración administrada no pueden usarla: Claude Code nunca fusiona configuración principal en esas flotas, porque lee configuración administrada solo de la salida del asistente.369Las flotas cuyo [`policyHelper`](/docs/es/settings-reference#policyhelper) suministra configuración administrada no pueden usarla: Claude Code nunca fusiona configuración principal en esas flotas, porque lee configuración administrada solo de la salida del asistente.


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

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

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

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.462* **`strictKnownMarketplaces`**: Claude Code honra una lista de permitidos de mercado de plugins suministrada por el principal cuando la fuente administrada ganadora no establece una. Claude Desktop 2.16120.0 o posterior envía una cuando su configuración administrada desactiva los mercados de plugins agregados por el usuario. Si su flota restringe mercados, establezca `strictKnownMarketplaces` en la fuente ganadora. Requiere Claude Code v2.1.282 o posterior.

461* **`blockedMarketplaces`**: una lista de bloqueo de mercado suministrada por el principal pasa y se suma a cualquier lista de bloqueo que una fuente administrada establece, ya que una lista de bloqueo solo puede restringir más. Requiere Claude Code v2.1.282 o posterior.463* **`blockedMarketplaces`**: una lista de bloqueo de mercado suministrada por el principal pasa y se suma a cualquier lista de bloqueo que una fuente administrada establece, ya que una lista de bloqueo solo puede restringir más. Requiere Claude Code v2.1.282 o posterior.

462* **`strictPluginOnlyCustomization`**: esta clave pasa el filtro independientemente de cualquier bloqueo, y hace que Claude Code ignore la personalización propia del desarrollador, incluidos hooks protectores. Ningún bloqueo la bloquea.464* **`strictPluginOnlyCustomization`**: esta clave pasa el filtro independientemente de cualquier bloqueo, y hace que Claude Code ignore la personalización propia del desarrollador, incluidos hooks protectores. Ningún bloqueo la bloquea.

463 465 

Details

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

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

316 316 

317<h5 id="apply-an-amazon-bedrock-guardrail">

318 Aplicar una barrera de seguridad de Amazon Bedrock

319</h5>

320 

321Para aplicar una barrera de seguridad de Amazon Bedrock a cada solicitud de inferencia que la puerta de enlace envía a través de un upstream de Bedrock, agregue un bloque `guardrail` a ese upstream. Requiere Claude Code v2.1.281 o posterior en el servidor de la puerta de enlace.

322 

323```yaml theme={null}

324upstreams:

325 - provider: bedrock

326 region: us-east-1

327 auth: {}

328 guardrail:

329 id: gr-abc123 # ID de barrera de seguridad o ARN completo

330 version: "1" # un número de versión publicada, o DRAFT

331 # mantenga las comillas: un 1 desnudo falla al arrancar

332```

333 

334<Warning>

335 La puerta de enlace no admite etiquetas de entrada de barrera de seguridad. No agrega etiquetas de contenido de guardia a los avisos, por lo que un filtro de barrera de seguridad que Amazon Bedrock aplica solo a la entrada etiquetada no se ejecuta en el tráfico a través de la puerta de enlace. Para saber qué filtros dependen de etiquetas de entrada, consulte [etiquetas de entrada](https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-tagging.html) en la documentación de Amazon Bedrock.

336</Warning>

337 

338También otorgue al principal de AWS de la puerta de enlace `bedrock:ApplyGuardrail` en la barrera de seguridad.

339 

340Establezca `guardrail` en cada upstream `bedrock` o en ninguno. La puerta de enlace se niega a iniciar en una mezcla, porque [failover](#multiple-upstreams) de otro modo podría enviar una solicitud a un upstream de Bedrock que no tiene barrera de seguridad.

341 

342La barrera de seguridad cubre solo upstreams de Bedrock. Si enumera otro proveedor en `upstreams`, la puerta de enlace envía solicitudes a ese proveedor sin la barrera de seguridad.

343 

344Cuando una solicitud `/v1/messages` cuyo cuerpo lleva un campo `amazon-bedrock-*`, como `amazon-bedrock-guardrailConfig`, llega a un upstream de Bedrock que tiene `guardrail` establecido, la puerta de enlace responde 400 en lugar de reenviarlo.

345 

317<h4 id="claude-platform-on-aws">346<h4 id="claude-platform-on-aws">

318 Claude Platform en AWS347 Claude Platform en AWS

319</h4>348</h4>


861 890 

862El gateway valida un bloque `desktop` contra el esquema incluido con su versión instalada, como lo hace con el bloque `cli`. Para entregar una configuración introducida por una versión más nueva de Claude Desktop, actualice primero el gateway. Por ejemplo, `userPluginMarketplacesEnabled` y `userPluginUploadsEnabled` necesitan Claude Code v2.1.260 o posterior en el servidor de gateway y Claude Desktop 1.37937.0 o posterior en las máquinas de los miembros.891El gateway valida un bloque `desktop` contra el esquema incluido con su versión instalada, como lo hace con el bloque `cli`. Para entregar una configuración introducida por una versión más nueva de Claude Desktop, actualice primero el gateway. Por ejemplo, `userPluginMarketplacesEnabled` y `userPluginUploadsEnabled` necesitan Claude Code v2.1.260 o posterior en el servidor de gateway y Claude Desktop 1.37937.0 o posterior en las máquinas de los miembros.

863 892 

893`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` y `sshClientPath` necesitan Claude Code v2.1.281 o posterior en el servidor de gateway. También lo hace el valor `required` de `microsoftAuthBroker` y el campo `continuousAccessEvaluation` de una entrada `managedMcpServers` de Microsoft 365. Los lanzamientos de Claude Desktop que preceden al valor `required` lo leen como `disabled`, por lo que establezca `required` solo después de que cada miembro de Claude Desktop lo admita. La [referencia de configuración administrada](https://claude.com/docs/third-party/claude-desktop/configuration) de Claude Desktop enumera el lanzamiento que primero lee cada clave.

894 

864Si establece `orgPluginSettings` en el bloque `desktop` de una política, el gateway lo sirve en la forma de array que Claude Desktop 1.15200.0 y posterior lee. Los desktops más antiguos ignoran el array y no aplican ninguna política de herramientas de plugins, por lo que actualice a los miembros a 1.15200.0 o posterior antes de confiar en ello.895Si establece `orgPluginSettings` en el bloque `desktop` de una política, el gateway lo sirve en la forma de array que Claude Desktop 1.15200.0 y posterior lee. Los desktops más antiguos ignoran el array y no aplican ninguna política de herramientas de plugins, por lo que actualice a los miembros a 1.15200.0 o posterior antes de confiar en ello.

865 896 

866El gateway rellena las claves que el bloque `desktop` de una política no establece desde el bloque `desktop` de la captura general `match: {}`, de la misma manera que rellena el bloque `cli` de una política desde la base. Si establece `disabledBuiltinTools` o `builtinToolPolicy` en la base y una política de rol, el gateway mantiene la restricción de la base:897El gateway rellena las claves que el bloque `desktop` de una política no establece desde el bloque `desktop` de la captura general `match: {}`, de la misma manera que rellena el bloque `cli` de una política desde la base. Si establece `disabledBuiltinTools` o `builtinToolPolicy` en la base y una política de rol, el gateway mantiene la restricción de la base:

Details

566 * platform.claude.com566 * platform.claude.com

567 * code.claude.com567 * code.claude.com

568 * claude.ai568 * claude.ai

569 * claude.com

570 * support.claude.com

571 * anthropic.com

572 * [www.anthropic.com](http://www.anthropic.com)

569 </Accordion>573 </Accordion>

570 574 

571 <Accordion title="Control de versiones">575 <Accordion title="Control de versiones">


596 * hub.docker.com600 * hub.docker.com

597 * [www.docker.com](http://www.docker.com)601 * [www.docker.com](http://www.docker.com)

598 * production.cloudflare.docker.com602 * production.cloudflare.docker.com

603 * production.cloudfront.docker.com

599 * download.docker.com604 * download.docker.com

600 * gcr.io605 * gcr.io

601 * \*.gcr.io606 * \*.gcr.io

commands.md +1 −1

Details

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 |

92| `/feedback [report]` | Envía comentarios de producto sobre Claude Code. Abre el mismo diálogo que [`/bug`](#all-commands), con el mismo paso de consentimiento, reglas de envío y comportamiento a mitad de turno. En sesiones con [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), `/feedback` sin argumento abre la cola de borradores en su lugar, donde revisas, editas, envías o descartas los borradores que Claude puso en cola; la cola incluye una opción para escribir un nuevo informe en el diálogo. Con un argumento, y para `/bug` siempre, el diálogo se abre directamente |92| `/feedback [report]` | Envía comentarios de producto sobre Claude Code. Abre el mismo diálogo que [`/bug`](#all-commands), con el mismo paso de consentimiento, reglas de envío y comportamiento a mitad de turno. En sesiones con [comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior), `/feedback` sin argumento abre la cola de borradores en su lugar, donde revisas, editas, envías o descartas los borradores que Claude puso en cola; la cola incluye una opción para escribir un nuevo informe en el diálogo. Con un argumento, y para `/bug` siempre, el diálogo se abre directamente |

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

94| `/focus` | Alterna la vista de enfoque, que muestra solo tu último prompt, un resumen de llamada de herramienta de una línea con estadísticas de diff de edición, y la respuesta final. El resumen de llamada de herramienta también cuenta los subagentes lanzados en el turno y colapsa notificaciones de tareas de fondo completadas en un solo conteo. La selección persiste entre sesiones; establece [`viewMode`](/docs/es/settings-reference#viewmode) en la configuración para anularlo. Solo disponible en [renderizado de pantalla completa](/docs/es/fullscreen). La [extensión de VS Code](/docs/es/vs-code#use-the-prompt-box) ofrece su propia vista de enfoque como un comando de menú alternado, almacenado como una configuración de extensión, independiente de `viewMode` |94| `/focus` | Alterna la vista de enfoque, que muestra solo tu último prompt, un resumen de llamada de herramienta de una línea con estadísticas de diff de edición, y la respuesta final. El resumen de llamada de herramienta también cuenta los subagentes lanzados en el turno y colapsa notificaciones de tareas de fondo completadas en un solo conteo. La selección persiste entre sesiones; establece [`viewMode`](/docs/es/settings-reference#viewmode) en la configuración para anularlo. Solo disponible en [renderizado de pantalla completa](/docs/es/fullscreen). Desde un cliente de [Remote Control](/docs/es/remote-control), ejecuta `/focus [on\|off]` para activar o desactivar la vista de enfoque para la sesión actual solo, sin cambiar tu selección guardada; esto requiere Claude Code v2.1.281 o posterior. La [extensión de VS Code](/docs/es/vs-code#use-the-prompt-box) ofrece su propia vista de enfoque como un comando de menú alternado, almacenado como una configuración de extensión, independiente de `viewMode` |

95| `/fork [prompt]` | [Copia la conversación actual](/docs/es/agent-view#copy-the-session-with-%2Ffork) en una nueva sesión de fondo y sigue trabajando aquí. Pasa un prompt y la copia comienza a trabajar en él inmediatamente; sin uno espera en la vista de agente para su primer prompt. Excepto cuando la copia [edita en su lugar](/docs/es/agent-view#how-file-edits-are-isolated), Claude Code le instruye que cree su propio worktree antes de hacer cambios de código; la instrucción de aislamiento requiere Claude Code v2.1.221 o posterior. Para entregar una tarea secundaria a un subagente cuyo resultado vuelve a esta conversación, usa `/subtask`; para cambiar a una copia tú mismo, usa `/branch`. Requiere Claude Code v2.1.212 o posterior; en v2.1.161 a través de v2.1.211, y siempre que [la vista de agente esté desactivada](/docs/es/agent-view#turn-off-agent-view), `/fork` inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) en su lugar |95| `/fork [prompt]` | [Copia la conversación actual](/docs/es/agent-view#copy-the-session-with-%2Ffork) en una nueva sesión de fondo y sigue trabajando aquí. Pasa un prompt y la copia comienza a trabajar en él inmediatamente; sin uno espera en la vista de agente para su primer prompt. Excepto cuando la copia [edita en su lugar](/docs/es/agent-view#how-file-edits-are-isolated), Claude Code le instruye que cree su propio worktree antes de hacer cambios de código; la instrucción de aislamiento requiere Claude Code v2.1.221 o posterior. Para entregar una tarea secundaria a un subagente cuyo resultado vuelve a esta conversación, usa `/subtask`; para cambiar a una copia tú mismo, usa `/branch`. Requiere Claude Code v2.1.212 o posterior; en v2.1.161 a través de v2.1.211, y siempre que [la vista de agente esté desactivada](/docs/es/agent-view#turn-off-agent-view), `/fork` inicia un [subagente bifurcado](/docs/es/sub-agents#fork-the-current-conversation) en su lugar |

96| `/goal [condition\|clear]` | Establece un [objetivo](/docs/es/goal): Claude sigue trabajando entre turnos hasta que se cumpla la condición o el objetivo [se borre por otra razón](/docs/es/goal#how-evaluation-works). Sin argumento, muestra el objetivo actual o más recientemente logrado. `clear`, `stop`, `off`, `reset`, `none`, o `cancel` elimina un objetivo activo temprano |96| `/goal [condition\|clear]` | Establece un [objetivo](/docs/es/goal): Claude sigue trabajando entre turnos hasta que se cumpla la condición o el objetivo [se borre por otra razón](/docs/es/goal#how-evaluation-works). Sin argumento, muestra el objetivo actual o más recientemente logrado. `clear`, `stop`, `off`, `reset`, `none`, o `cancel` elimina un objetivo activo temprano |

97| `/heapdump` | Escribe una instantánea de montón de JavaScript y un desglose de memoria en `~/Desktop`, o tu directorio de inicio en Linux sin una carpeta de Escritorio, para diagnosticar uso alto de memoria. Adjunta solo el archivo `-diagnostics.json` al reportar un problema de memoria; el `.heapsnapshot` contiene tu conversación completa y credenciales, así que no lo compartas. [Oculto del menú de comandos](#how-the-command-menu-matches-what-you-type); escríbelo en su totalidad. Consulta [qué hacer con la salida](/docs/es/troubleshooting#high-cpu-or-memory-usage) |97| `/heapdump` | Escribe una instantánea de montón de JavaScript y un desglose de memoria en `~/Desktop`, o tu directorio de inicio en Linux sin una carpeta de Escritorio, para diagnosticar uso alto de memoria. Adjunta solo el archivo `-diagnostics.json` al reportar un problema de memoria; el `.heapsnapshot` contiene tu conversación completa y credenciales, así que no lo compartas. [Oculto del menú de comandos](#how-the-command-menu-matches-what-you-type); escríbelo en su totalidad. Consulta [qué hacer con la salida](/docs/es/troubleshooting#high-cpu-or-memory-usage) |

costs.md +2 −0

Details

96 96 

97Ejecute [`/insights`](/docs/es/commands#all-commands) para un informe sobre cómo trabaja en lugar de cuántos tokens ha utilizado. Analiza sus sesiones recientes en esta máquina y escribe un informe HTML que cubre en qué trabaja, puntos de fricción como solicitudes mal entendidas o código defectuoso, y sugerencias para usar Claude Code de manera más efectiva. Una única ejecución analiza hasta 200 sesiones que no ha visto antes y omite las muy cortas. Cuando se omiten sesiones, el encabezado del informe muestra el recuento analizado con el total entre paréntesis, por ejemplo `200 sessions (412 total)`.97Ejecute [`/insights`](/docs/es/commands#all-commands) para un informe sobre cómo trabaja en lugar de cuántos tokens ha utilizado. Analiza sus sesiones recientes en esta máquina y escribe un informe HTML que cubre en qué trabaja, puntos de fricción como solicitudes mal entendidas o código defectuoso, y sugerencias para usar Claude Code de manera más efectiva. Una única ejecución analiza hasta 200 sesiones que no ha visto antes y omite las muy cortas. Cuando se omiten sesiones, el encabezado del informe muestra el recuento analizado con el total entre paréntesis, por ejemplo `200 sessions (412 total)`.

98 98 

99Cuando [el modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) está disponible para la sesión y sus sesiones recientes se ejecutaron principalmente sin él, el informe también puede incluir una estimación de cuántos avisos de permisos el modo automático podría haber manejado en esas sesiones.

100 

99Claude Code escribe el informe más reciente en `~/.claude/usage-data/report.html` y guarda una copia con marca de tiempo de cada ejecución en el mismo directorio, por lo que los informes anteriores no se sobrescriben. Claude Code elimina informes en el mismo cronograma que el resto de sus datos de sesión: al iniciar, elimina archivos más antiguos que [`cleanupPeriodDays`](/docs/es/claude-directory#cleaned-up-automatically), 30 días por defecto.101Claude Code escribe el informe más reciente en `~/.claude/usage-data/report.html` y guarda una copia con marca de tiempo de cada ejecución en el mismo directorio, por lo que los informes anteriores no se sobrescriben. Claude Code elimina informes en el mismo cronograma que el resto de sus datos de sesión: al iniciar, elimina archivos más antiguos que [`cleanupPeriodDays`](/docs/es/claude-directory#cleaned-up-automatically), 30 días por defecto.

100 102 

101Puede ejecutar `/insights` en cualquier plan y con cualquier proveedor. El análisis se ejecuta a través del mismo proveedor y cuenta que sus sesiones regulares, y los tokens cuentan contra su plan o uso de API. Las sesiones de otros dispositivos y claude.ai no se incluyen.103Puede ejecutar `/insights` en cualquier plan y con cualquier proveedor. El análisis se ejecuta a través del mismo proveedor y cuenta que sus sesiones regulares, y los tokens cuentan contra su plan o uso de API. Las sesiones de otros dispositivos y claude.ai no se incluyen.

desktop.md +6 −0

Details

834* **Remote Control**: habilite o deshabilite [Remote Control](/docs/es/remote-control) para su organización834* **Remote Control**: habilite o deshabilite [Remote Control](/docs/es/remote-control) para su organización

835* **Disable Bypass permissions mode**: evite que los usuarios en su organización habiliten el modo bypass permissions835* **Disable Bypass permissions mode**: evite que los usuarios en su organización habiliten el modo bypass permissions

836 836 

837<Note>

838 El formulario de OpenTelemetry para Cowork bajo **Monitoring** en la [configuración de datos y privacidad](https://claude.ai/admin-settings/data-privacy-controls) de la consola de administración se aplica solo a sesiones de Cowork. En una sesión de Cowork en esta máquina, la aplicación de escritorio pasa ese recopilador a Claude Code como variables de entorno `OTEL_*`, por lo que el formulario tiene efecto aunque Claude Code en esa sesión [nunca obtiene configuraciones de consola de administración](#managed-settings).

839 

840 Para exportar telemetría desde sesiones de la pestaña Code, establezca `CLAUDE_CODE_ENABLE_TELEMETRY` y las variables `OTEL_*` en el bloque `env` de su configuración administrada de Claude Code, como se muestra en [configuración de administrador para monitoreo](/docs/es/monitoring-usage#administrator-configuration). Las sesiones locales, en la nube y SSH leen [configuración administrada desde diferentes fuentes](#managed-settings). Para los hosts que una sesión en la nube puede alcanzar, consulte [acceso a la red](/docs/es/cloud-environments#network-access). Para el `service.name` que las sesiones de la pestaña Code reportan, consulte [información de servicio](/docs/es/monitoring-usage#service-information).

841</Note>

842 

837<h3 id="managed-settings">843<h3 id="managed-settings">

838 Configuración administrada844 Configuración administrada

839</h3>845</h3>

errors.md +40 −9

Details

152| `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) |

153| `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) |

154| `Model ... not found` | [Errores de solicitud](#model-not-found) |154| `Model ... not found` | [Errores de solicitud](#model-not-found) |

155| `Couldn't confirm model ... with the API` | [Errores de solicitud](#couldnt-confirm-model-with-the-api) |

155| `API error: ... · model not changed` | [Errores de solicitud](#api-error-model-not-changed) |156| `API error: ... · model not changed` | [Errores de solicitud](#api-error-model-not-changed) |

156| `Claude Opus is not available with the Claude Pro plan` | [Errores de solicitud](#claude-opus-is-not-available-with-the-claude-pro-plan) |157| `Claude Opus is not available with the Claude Pro plan` | [Errores de solicitud](#claude-opus-is-not-available-with-the-claude-pro-plan) |

157| `Claude Code ... does not support this model; version ... or newer is required` | [Errores de solicitud](#claude-code-does-not-support-this-model) |158| `Claude Code ... does not support this model; version ... or newer is required` | [Errores de solicitud](#claude-code-does-not-support-this-model) |


2346 El modelo no es un ID de modelo reconocido2347 El modelo no es un ID de modelo reconocido

2347</h3>2348</h3>

2348 2349 

2349La cadena de modelo que pasó a un cambio de modelo no es un alias de modelo, un ID de modelo que esta versión de Claude Code conoce, o un ID que comienza con `claude-`. Las causas habituales son un error tipográfico en el ID, un nombre para mostrar como `Sonnet 5` donde se espera el ID `claude-sonnet-5`, o un alias que solo las versiones más nuevas de Claude Code reconocen. Claude Code rechaza el cambio inmediatamente. Antes de v2.1.200, Claude Code guardaba la cadena y fallaba en la siguiente solicitud con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2350La cadena que pasó a un cambio de modelo no es una que Claude Code pueda usar como modelo, por lo que rechazó el cambio sin enviar una solicitud y la sesión mantiene su modelo actual. Puede obtener este error cuando un modelo se establece a través del método [Agent SDK](/docs/es/agent-sdk/typescript) `setModel()`, por una aplicación que ejecuta la CLI de Claude Code para usted, como la [aplicación de escritorio](/docs/es/desktop), o cuando elige un modelo desde un dispositivo conectado a través de [Remote Control](/docs/es/remote-control). Antes de v2.1.200, Claude Code guardaba la cadena y fallaba en la siguiente solicitud con [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).

2350 2351 

2351```text theme={null}2352```text theme={null}

2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2353Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2353```2354```

2354 2355 

2355La 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.`2356En este ejemplo una aplicación envió el nombre para mostrar `Sonnet 5`, que el mensaje repite sin su espacio. La 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.`

2356 2357 

2357Claude 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).2358Cuando cambia a través del Agent SDK o una aplicación en la API de Anthropic, solo una cadena que no puede ser un ID de modelo obtiene este error, como un nombre para mostrar o una cadena vacía.

2359 

2360Cuando elige un modelo desde un dispositivo Remote Control, Claude Code verifica la cadena localmente. Cualquier cadena que no sea un alias de modelo, un modelo que Claude Code enumera o que usted configuró, o un ID que comienza con `claude-` obtiene este error, un ID mal escrito como `claud-sonnet-5` incluido. Antes de v2.1.260, esta verificación no cubría las selecciones de Remote Control, por lo que una cadena no reconocida se aplicaba y fallaba en la siguiente solicitud.

2358 2361 

2359**Qué hacer:**2362**Qué hacer:**

2360 2363 

2361* Ejecute `/model` sin argumento para abrir el selector y elegir entre los modelos disponibles para su cuenta, luego pase el alias o ID que se muestra allí2364* Ejecute `/model` sin argumento para abrir el selector y elegir entre los modelos disponibles para su cuenta, luego pase el alias o ID que se muestra allí

2362* Si usó un alias que una versión más nueva de Claude Code admite, ejecute `claude update`. Un ID completo que comienza con `claude-` pasa esta verificación local incluso cuando el modelo es más nuevo que su versión de Claude Code. El servidor aún puede requerir una versión mínima para ese modelo; consulte [Claude Code does not support this model](#claude-code-does-not-support-this-model).2365* Si usó un alias que una versión más nueva de Claude Code admite, ejecute `claude update`, o pase el ID completo del modelo en su lugar. El servidor aún puede requerir una versión mínima de Claude Code para ese modelo; consulte [Claude Code does not support this model](#claude-code-does-not-support-this-model).

2363* Un modelo guardado antes de v2.1.200 no se repara con esta verificación. Si un valor obsoleto sigue apareciendo, elimínelo de las ubicaciones enumeradas en [Setting your model](/docs/es/model-config#setting-your-model).2366* Un modelo guardado antes de v2.1.200 no se repara con esta verificación. Si un valor obsoleto sigue apareciendo, elimínelo de las ubicaciones enumeradas en [Setting your model](/docs/es/model-config#setting-your-model).

2364* La verificación se ejecuta solo en la API de Anthropic. En cualquier otro proveedor o puerta de enlace, incluida una `ANTHROPIC_BASE_URL` personalizada, el proveedor define los nombres de modelo, por lo que Claude Code acepta cualquier cadena y la pasa. Claude Code aún puede escribir la [línea de diagnóstico de modelo no reconocido](#unrecognized-model-id-on-a-request) en el momento de la solicitud, en cada proveedor.2367* En cualquier proveedor que no sea la API de Anthropic, o detrás de una puerta de enlace o `ANTHROPIC_BASE_URL` personalizado, solo una cadena vacía obtiene este error. Claude Code aún puede escribir la [línea de diagnóstico de modelo no reconocido](#unrecognized-model-id-on-a-request) en el momento de la solicitud, en cada proveedor.

2365 2368 

2366<h3 id="model-not-found">2369<h3 id="model-not-found">

2367 Modelo no encontrado2370 Modelo no encontrado

2368</h3>2371</h3>

2369 2372 

2370Eligió un modelo con `/model <name>` y Claude Code no pudo confirmar que existe un modelo con ese nombre. Cuando el nombre no es un [alias de modelo](/docs/es/model-config#model-aliases) u otra ortografía que Claude Code acepta localmente, `/model` lo verifica con una solicitud mínima de API, y este error es generalmente la respuesta de su punto final de API. Un nombre que no puede ser un ID de modelo en absoluto, como uno que contiene espacios, obtiene el mismo mensaje.2373Cambió a un modelo por nombre y Claude Code no pudo confirmar que existe un modelo con ese nombre. Cuando el nombre no es un [alias de modelo](/docs/es/model-config#model-aliases) u otra ortografía que Claude Code acepta localmente, Claude Code lo verifica con una solicitud mínima de API, y este error es generalmente la respuesta de su punto final de API. Con `/model <name>`, un nombre que no puede ser un ID de modelo en absoluto, como uno que contiene espacios, obtiene el mismo mensaje.

2371 2374 

2372```text theme={null}2375```text theme={null}

2373Model 'claude-opus-9' not found2376Model 'claude-opus-9' not found


2379 2382 

2380* Ejecute `/model` sin argumento y elija entre los modelos disponibles para su cuenta, o use un [alias de modelo](/docs/es/model-config#model-aliases) como `sonnet`, que se resuelve a un valor predeterminado mantenido2383* Ejecute `/model` sin argumento y elija entre los modelos disponibles para su cuenta, o use un [alias de modelo](/docs/es/model-config#model-aliases) como `sonnet`, que se resuelve a un valor predeterminado mantenido

2381* 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.2384* 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.

2385* En el Agent SDK, `setModel()` falla con este mensaje y la sesión sigue ejecutándose en su modelo anterior. En el SDK de TypeScript, llame a [`supportedModels()`](/docs/es/agent-sdk/typescript#query-object) para enumerar los modelos a los que puede cambiar.

2382* 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.2386* 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.

2383 2387 

2388<h3 id="couldnt-confirm-model-with-the-api">

2389 No se pudo confirmar el modelo con la API

2390</h3>

2391 

2392Cambió de modelos a través del método [Agent SDK](/docs/es/agent-sdk/typescript) `setModel()` o una aplicación que ejecuta la CLI de Claude Code para usted, como la [aplicación de escritorio](/docs/es/desktop), y la solicitud que confirma el ID del modelo con su punto final de API no obtuvo respuesta dentro de cinco segundos. La sesión mantiene su modelo actual.

2393 

2394```text theme={null}

2395Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2396```

2397 

2398En una sesión que la [aplicación de escritorio](/docs/es/desktop) inicia para usted, el mensaje termina en `Try again.`

2399 

2400**Qué hacer:**

2401 

2402* Cambie al modelo de nuevo

2403* Si el cambio sigue fallando, verifique que Claude Code pueda alcanzar su punto final de API; consulte [Network and connection errors](#network-and-connection-errors)

2404 

2384<h3 id="api-error-model-not-changed">2405<h3 id="api-error-model-not-changed">

2385 Error de API al verificar el modelo seleccionado2406 Error de API al verificar el modelo seleccionado

2386</h3>2407</h3>


2432API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2453API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2433```2454```

2434 2455 

2456La versión que la API verifica es la que reporta el binario de Claude Code que realizó la solicitud.

2457 

2435**Qué hacer:**2458**Qué hacer:**

2436 2459 

2437* Ejecute `claude update`, o actualice la aplicación de escritorio Claude, luego comience una nueva sesión2460Actualice ese binario, luego comience una nueva sesión. De dónde vino el binario decide cómo, excepto en un [entorno autohospedado](/docs/es/self-hosted-environments-deploy#pin-the-version):

2438* Para la redacción por modelo, puede seguir trabajando en la sesión actual cambiando a otro modelo con `/model`2461 

2462| El binario que realizó la solicitud | Cómo actualizarlo |

2463| :- | :- |

2464| Un Claude Code que instaló | Ejecute `claude update` |

2465| La aplicación de escritorio Claude | Actualice la aplicación |

2466| El binario que agrupa la [extensión VS Code](/docs/es/vs-code) | Actualice la extensión |

2467| El binario que agrupa un paquete Agent SDK | [Actualice el paquete SDK](/docs/es/agent-sdk/hosting#runtime-dependencies), luego reinicie su aplicación. En un [ejecutable de archivo único compilado](/docs/es/agent-sdk/typescript#compile-to-a-single-executable), reconstruyalo |

2468 

2469* Para la redacción por modelo, puede seguir trabajando en la sesión actual cambiando a otro modelo: ejecute `/model` en la CLI, llame a [`setModel()`](/docs/es/agent-sdk/typescript#query-object) en el objeto `Query` del SDK de TypeScript en modo de entrada de transmisión, o llame a [`set_model()`](/docs/es/agent-sdk/python#claudesdkclient) en el `ClaudeSDKClient` del SDK de Python

2439* Para la redacción de la política organizacional, actualice antes de continuar2470* Para la redacción de la política organizacional, actualice antes de continuar

2440 2471 

2441<h3 id="model-is-restricted-by-your-organizations-settings">2472<h3 id="model-is-restricted-by-your-organizations-settings">

fast-mode.md +2 −0

Details

72 72 

73Escribe `/fast on` en la sesión para activar el modo rápido. Se mantiene activado solo para esa sesión y no se guarda como tu valor predeterminado. Los [requisitos](#requirements) también se aplican en sesiones en la nube.73Escribe `/fast on` en la sesión para activar el modo rápido. Se mantiene activado solo para esa sesión y no se guarda como tu valor predeterminado. Los [requisitos](#requirements) también se aplican en sesiones en la nube.

74 74 

75En el navegador en [claude.ai/code](https://claude.ai/code), también puedes activar y desactivar el modo rápido desde el menú de modelos en el cuadro de mensaje. El menú muestra el interruptor cuando tu plan incluye el modo rápido y el modelo seleccionado lo admite.

76 

75<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

76 Comprender la compensación de costos78 Comprender la compensación de costos

77</h2>79</h2>

Details

312| [Computer use](/docs/es/computer-use) | ✓ | ✓ | ✗ | ✗ |312| [Computer use](/docs/es/computer-use) | ✓ | ✓ | ✗ | ✗ |

313| Dispatch ([Desktop](/docs/es/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |313| Dispatch ([Desktop](/docs/es/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |

314| [Code Review](/docs/es/code-review) | ✗ | ✗ | ✓ | ✓ |314| [Code Review](/docs/es/code-review) | ✗ | ✗ | ✓ | ✓ |

315| [Artifacts](/docs/es/artifacts) | ✓ | ✓ | ✓ | Habilitado por administrador |315| [Artifacts](/docs/es/artifacts) | ✓ | ✓ | ✓ | ✓ |

316| [Panel de análisis y métricas de contribución](/docs/es/analytics) | ✗ | ✗ | ✓ | ✓ |316| [Panel de análisis y métricas de contribución](/docs/es/analytics) | ✗ | ✗ | ✓ | ✓ |

317| [API de análisis empresarial](/docs/es/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |317| [API de análisis empresarial](/docs/es/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |

318| [Configuración administrada por servidor](/docs/es/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |318| [Configuración administrada por servidor](/docs/es/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |

Details

43 43 

44Claude Code luego inserta una rama con los archivos de flujo de trabajo que selecciona, ya configurados para usar ese secreto, y abre GitHub en su navegador con una solicitud de extracción lista para crear. Cree y fusione esa solicitud de extracción, y `@claude` funciona en el repositorio.44Claude Code luego inserta una rama con los archivos de flujo de trabajo que selecciona, ya configurados para usar ese secreto, y abre GitHub en su navegador con una solicitud de extracción lista para crear. Cree y fusione esa solicitud de extracción, y `@claude` funciona en el repositorio.

45 45 

46Para detener la configuración a mitad de camino, presione Esc. Un paso ya en progreso se termina, y ningún paso posterior comienza. El mensaje de cierre enumera lo que ya sucedió en el repositorio, como una rama insertada o un secreto guardado.

47 

46Si selecciona el flujo de trabajo de revisión, Claude publica cada revisión en la solicitud de extracción misma, como un comentario en línea en cada problema que encuentra o como un comentario de resumen cuando no encuentra ninguno. Claude omite algunas solicitudes de extracción, como borradores. El [ejemplo de flujo de trabajo de revisión](#run-a-skill) usa la misma skill y las enumera. Antes de v2.1.229, Claude escribía su revisión solo en el registro de ejecución del flujo de trabajo.48Si selecciona el flujo de trabajo de revisión, Claude publica cada revisión en la solicitud de extracción misma, como un comentario en línea en cada problema que encuentra o como un comentario de resumen cuando no encuentra ninguno. Claude omite algunas solicitudes de extracción, como borradores. El [ejemplo de flujo de trabajo de revisión](#run-a-skill) usa la misma skill y las enumera. Antes de v2.1.229, Claude escribía su revisión solo en el registro de ejecución del flujo de trabajo.

47 49 

48Para actualizar un flujo de trabajo de revisión que una versión anterior generó, haga una de las siguientes:50Para actualizar un flujo de trabajo de revisión que una versión anterior generó, haga una de las siguientes:

glossary.md +1 −1

Details

56 Artifact56 Artifact

57</h3>57</h3>

58 58 

59Una página web interactiva en vivo que Claude Code publica desde su sesión a una URL privada en claude.ai, para que pueda ver la salida visualmente o compartirla en lugar de leer texto de terminal. La página se actualiza en su lugar cuando la sesión se republica. Los artefactos que crea desde Claude Code aparecen en la misma galería que los artefactos creados en conversaciones de claude.ai. El uso compartido depende de su plan: en Pro y Max, un enlace público que cualquiera puede abrir; en Team y Enterprise, uso compartido dentro de su organización, más enlaces públicos una vez que un propietario los habilita.59Una página web interactiva en vivo que Claude Code publica desde su sesión a una URL privada en claude.ai, para que pueda ver la salida visualmente o compartirla en lugar de leer texto de terminal. La página se actualiza en su lugar cuando la sesión se republica. Los artefactos que crea desde Claude Code aparecen en la misma galería que los artefactos creados en conversaciones de claude.ai. Las opciones de uso compartido dependen de su plan: consulte [Share an artifact](/docs/es/artifacts#share-an-artifact).

60 60 

61Más información: [Share session output as artifacts](/docs/es/artifacts)61Más información: [Share session output as artifacts](/docs/es/artifacts)

62 62 

hooks.md +78 −78

Details

274 274 

275Los hooks de archivos de configuración, configuración de política administrada y plugins también se ejecutan dentro de [subagentes](/docs/es/sub-agents). Cuando un subagente llama a una herramienta, eventos de herramienta como `PreToolUse` y `PostToolUse` activan los mismos hooks configurados que en la conversación principal, y la entrada lleva los campos de entrada comunes `agent_id` y `agent_type` [](#common-input-fields) que identifican al subagente.275Los hooks de archivos de configuración, configuración de política administrada y plugins también se ejecutan dentro de [subagentes](/docs/es/sub-agents). Cuando un subagente llama a una herramienta, eventos de herramienta como `PreToolUse` y `PostToolUse` activan los mismos hooks configurados que en la conversación principal, y la entrada lleva los campos de entrada comunes `agent_id` y `agent_type` [](#common-input-fields) que identifican al subagente.

276 276 

277Los administradores empresariales pueden usar `allowManagedHooksOnly` para restringir qué hooks se ejecutan:277Los administradores pueden usar [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly) en [configuración administrada](/docs/es/managed-settings) para restringir qué hooks se ejecutan:

278 278 

279* Tus hooks de usuario, proyecto, local y plugin están bloqueados. Los hooks de plugins forzados a habilitarse en la configuración administrada `enabledPlugins` están exentos279* Tus hooks de usuario, proyecto, local y plugin están bloqueados. Los hooks de plugins forzados a habilitarse en la configuración administrada `enabledPlugins` están exentos

280* Claude Code también reduce tu configuración [`statusLine`](/docs/es/statusline), [`fileSuggestion`](/docs/es/settings-reference#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) a la configuración administrada280* Claude Code también reduce tu configuración [`statusLine`](/docs/es/statusline), [`fileSuggestion`](/docs/es/settings-reference#filesuggestion) y [`subagentStatusLine`](/docs/es/statusline#subagent-status-lines) a la configuración administrada


1169 Eventos de hooks1169 Eventos de hooks

1170</h2>1170</h2>

1171 1171 

1172Cada 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 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é coincidencias admite, la entrada JSON que recibe y cómo controlar el comportamiento a través de la salida.

1173 1173 

1174<h3 id="sessionstart">1174<h3 id="sessionstart">

1175 SessionStart1175 SessionStart


1177 1177 

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

1179 1179 

1180SessionStart 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 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`.

1181 1181 

1182El 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:

1183 1183 


1187| `resume` | `--resume`, `--continue`, o `/resume` |1187| `resume` | `--resume`, `--continue`, o `/resume` |

1188| `clear` | `/clear` |1188| `clear` | `/clear` |

1189| `compact` | Compactación automática o manual |1189| `compact` | Compactación automática o manual |

1190| `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`, `/branch`, o una conversación que [mueve al fondo](/docs/es/agent-view#from-inside-a-session) |

1191 1191 

1192Antes de v2.1.214, las sesiones bifurcadas reportaban origen `"resume"`.1192Antes de v2.1.214, las sesiones bifurcadas reportaban origen `"resume"`.

1193 1193 

1194Cuando 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 los hooks. La primera respuesta de Claude aún espera a que los hooks terminen, por lo que su contexto llega a Claude.1194Cuando 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 los hooks. La primera respuesta de Claude aún espera a que los hooks terminen, por lo que su contexto llega a Claude.

1195 1195 

1196Cuando cambia de conversaciones con `/resume` dentro de una sesión, el cambio espera a que los hooks terminen. 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 cambia de conversación con `/resume` dentro de una sesión, el cambio espera a que los hooks terminen. 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.

1197 1197 

1198La 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 terminen.1198La 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 terminen.

1199 1199 


1361 Control de decisión de Setup1361 Control de decisión de Setup

1362</h4>1362</h4>

1363 1363 

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`, stdout, stderr y el código de salida de un hook Setup aparecen en la salida de la ejecución solo como [eventos `hook_response`](/docs/es/headless#read-session-metadata) cuando 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 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`.

1365 1365 

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

1367 1367 

1368<h3 id="instructionsloaded">1368<h3 id="instructionsloaded">

1369 InstructionsLoaded1369 InstructionsLoaded


1414 1414 

1415Se 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 le permite agregar contexto adicional basado en el prompt/conversación, validar prompts o bloquear ciertos tipos de prompts.

1416 1416 

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 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 detiene la sesión. Si su hook necesita más tiempo, establezca el campo `timeout` en la entrada del hook.

1418 1418 

1419Aparte de un hook de comando que ejecuta 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, 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 ejecuta 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, 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ó.

1420 1420 

1421Un [hook de devolución de llamada del SDK del agente](/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 devolución de llamada 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 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.

1422 1422 

1423<h4 id="userpromptsubmit-input">1423<h4 id="userpromptsubmit-input">

1424 Entrada de UserPromptSubmit1424 Entrada de UserPromptSubmit

1425</h4>1425</h4>

1426 1426 

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 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 contrajo 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 tenga en cuenta esas líneas si su hook analiza el prompt.

1428 1428 

1429```json theme={null}1429```json theme={null}

1430{1430{


1488 Entrada de UserPromptExpansion1488 Entrada de UserPromptExpansion

1489</h4>1489</h4>

1490 1490 

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

1492 1492 

1493```json theme={null}1493```json theme={null}

1494{1494{


1539Use MessageDisplay para:1539Use MessageDisplay para:

1540 1540 

1541* eliminar markdown para una visualización mínima1541* eliminar markdown para una visualización mínima

1542* transformar el texto que una aplicación del SDK del agente muestra a sus usuarios1542* transformar el texto que una aplicación del Agent SDK muestra a sus usuarios

1543* 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

1544 1544 

1545Claude 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 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.


1548 1548 

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

1550 1550 

1551En ejecuciones no interactivas, incluidas consultas del SDK del agente 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, incluidas 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.

1552 1552 

1553<h4 id="messagedisplay-input">1553<h4 id="messagedisplay-input">

1554 Entrada de MessageDisplay1554 Entrada de MessageDisplay


1562| `message_id` | UUID del mensaje del asistente que se muestra. Estable en cada lote del mismo mensaje. Este no es el ID `msg_…` de la API, por lo que no se puede correlacionar con IDs de mensajes de transcripción |1562| `message_id` | UUID del mensaje del asistente que se muestra. Estable en cada lote del mismo mensaje. Este no es el ID `msg_…` de la API, por lo que no se puede correlacionar con IDs de mensajes de transcripción |

1563| `index` | Índice basado en cero de este lote dentro del mensaje |1563| `index` | Índice basado en cero de este lote dentro del mensaje |

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

1565| `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 del SDK del agente y `claude -p`, la llamada única lleva el mensaje completo |1565| `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 del Agent SDK y `claude -p`, la llamada única lleva el mensaje completo |

1566 1566 

1567```json theme={null}1567```json theme={null}

1568{1568{


1672 PreToolUse1672 PreToolUse

1673</h3>1673</h3>

1674 1674 

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).1675Se 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).

1676 1676 

1677Para 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ó, 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.

1678 1678 


1684 1684 

1685Use [control de decisión PreToolUse](#pretooluse-decision-control) para permitir, negar, preguntar o diferir la llamada de herramienta.1685Use [control de decisión PreToolUse](#pretooluse-decision-control) para permitir, negar, preguntar o diferir la llamada de herramienta.

1686 1686 

1687Un [hook de devolución de llamada del SDK del agente](/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 prioridad.1687Un [hook de devolución de llamada 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 prioridad.

1688 1688 

1689<h4 id="pretooluse-input">1689<h4 id="pretooluse-input">

1690 Entrada de PreToolUse1690 Entrada de PreToolUse


1692 1692 

1693Ademá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`.

1694 1694 

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 SDK del agente los enumera todos y dice cómo tratar uno que no reconoce. 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 reconoce. Base las decisiones de confianza en `source` en lugar de en `name` o en el prefijo de nombre de herramienta `mcp__<server>__`. El campo `mcp_server` requiere Claude Code v2.1.274 o posterior.

1696 1696 

1697Para 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:

1698 1698 

1699* Claude Code expande `~` y rutas relativas antes de que se ejecuten los hooks, por lo que un hook que coincide en 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 coincide con rutas no puede ser eludido a través de `~` o un deletreo relativo de la misma ruta

1700* 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 su hook se ejecuta bajo Git Bash donde `$PWD` se ve como `/c/project`

1701* 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

1702* 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* 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 absoluta


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

1834| `glob` | string | `"*.ts"` | Patrón glob opcional para filtrar archivos |1834| `glob` | string | `"*.ts"` | Patrón glob opcional para filtrar archivos |

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

1836| `-i` | boolean | `true` | Búsqueda insensible a mayúsculas y minúsculas |1836| `-i` | boolean | `true` | Búsqueda insensible a mayúsculas |

1837| `multiline` | boolean | `false` | Habilitar coincidencia multilínea |1837| `multiline` | boolean | `false` | Habilitar coincidencia multilínea |

1838 1838 

1839<h5 id="webfetch">1839<h5 id="webfetch">


1872| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |1872| `subagent_type` | string | `"Explore"` | Tipo de agente especializado a usar |

1873| `model` | string | `"sonnet"` | Alias de modelo opcional para anular el predeterminado |1873| `model` | string | `"sonnet"` | Alias de modelo opcional para anular el predeterminado |

1874 1874 

1875Cuando una llamada Agent en primer plano se completa, su [hook PostToolUse](#posttooluse) recibe el resultado del subagente y la 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, 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 totales de token y costo en subagentes, use los [contadores de token y costo](/docs/es/monitoring-usage#token-counter) filtrados a `query_source` `"subagent"`, ya que `totalTokens` y `usage` cubren solo la solicitud final:

1876 1876 

1877| Campo | Tipo | Ejemplo | Descripción |1877| Campo | Tipo | Ejemplo | Descripción |

1878| :- | :- | :- | :- |1878| :- | :- | :- | :- |


1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para la ejecución del subagente |1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Identificador para la ejecución del subagente |

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

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

1883| `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 utilizados en orden, con repeticiones consecutivas contraídas; se establece solo cuando el modelo fue intercambiado a mitad de ejecución. Requiere Claude Code v2.1.212 o posterior |

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 |1884| `totalTokens` | number | `12450` | Recuento de tokens de la solicitud final de la API del subagente: tokens de entrada, salida y caché combinados. Este no es un total en toda la ejecución |

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

1886| `totalToolUseCount` | number | `7` | Recuento de llamadas de herramienta que hizo el subagente |1886| `totalToolUseCount` | number | `7` | Recuento de llamadas de herramienta que realizó el subagente |

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

1888 1888 

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, 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, coincida un hook `PreToolUse` o `PostToolUse` en `SubagentHandback` y lea `tool_input.message`.

1890 1890 

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

1892 1892 

1893En una respuesta `completed`, `resolvedModel` nombra el modelo en el que comenzó el subagente, que puede diferir del valor `model` en `tool_input`, como cuando `availableModels` u otra anulación se aplica. En una respuesta `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente se movió al segundo plano, por lo que un intercambio que ocurrió antes de pasar al segundo plano se refleja allí. El comportamiento de `modelsUsed` y `resolvedModel` en tiempo de fondo requiere Claude Code v2.1.212 o posterior.1893En una respuesta `completed`, `resolvedModel` nombra el modelo en el que comenzó el subagente, que puede diferir del valor `model` en `tool_input`, como cuando `availableModels` u otra anulación se aplica. En una respuesta `async_launched`, `resolvedModel` nombra el modelo en uso cuando el agente se movió al segundo plano, por lo que un intercambio que ocurrió antes de pasar al segundo plano se refleja allí. `modelsUsed` y el comportamiento de `resolvedModel` en el momento de pasar al segundo plano requieren Claude Code v2.1.212 o posterior.

1894 1894 

1895<a id="askuserquestion" />1895<a id="askuserquestion" />

1896 1896 


1929| :- | :- |1929| :- | :- |

1930| `permissionDecision` | `"allow"` omite el aviso 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 correctamente 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 |1930| `permissionDecision` | `"allow"` omite el aviso 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 correctamente 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 |

1931| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, se escribe en el [registro de depuración](#debug-hooks) solo |1931| `permissionDecisionReason` | Para `"ask"`, se muestra al usuario pero no a Claude. Para `"deny"`, se muestra a Claude. Para `"allow"` y `"defer"`, se escribe en el [registro de depuración](#debug-hooks) solo |

1932| `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 fondo 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 auto-aprobar, 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 incluya campos sin cambios junto con los modificados. Claude Code evalúa reglas de permiso y la elegibilidad de [auto-fondo](/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 auto-aprobar, o `"ask"` para mostrar la entrada modificada al usuario. Para `"defer"`, se ignora |

1933| `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 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) |

1934 1934 

1935Cuando 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`.


1956 1956 

1957<span id="allow-with-updatedinput" />1957<span id="allow-with-updatedinput" />

1958 1958 

1959En [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` del SDK del agente. 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 [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` 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 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.

1960 1960 

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

1962 1962 


1968 Diferir una llamada de herramienta para más tarde1968 Diferir una llamada de herramienta para más tarde

1969</h4>1969</h4>

1970 1970 

1971`"defer"` es para integraciones que ejecutan `claude -p` como un subproceso y leen su salida JSON, como una aplicación del SDK del agente 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 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.

1972 1972 

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 [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 inicie 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 [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 inicie la ejecución con una. El viaje de ida y vuelta funciona así:

1974 1974 


1996 1996 

1997No 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 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.

1998 1998 

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.1999`"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.

2000 2000 

2001Si 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 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ó.

2002 2002 

2003<Note>2003<Note>

2004 Para reanudar una sesión diferida en modo 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. Si pasa ciertos otros indicadores de inicio, la ejecución reanudada no vuelve al modo plan; consulte [Reanudar en modo plan con `-p`](/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.2004 Para reanudar una sesión diferida en modo 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. Si pasa ciertas otras banderas de inicio, la ejecución reanudada no vuelve al modo plan; consulte [Reanudar en modo plan con `-p`](/docs/es/sessions#resume-in-plan-mode-with-p). Requiere Claude Code v2.1.246 o posterior.

2005 2005 

2006 Cuando reanuda con `-p`, Claude Code no restaura ningún otro modo de permiso almacenado. Inicia la ejecución en el modo de permiso que una nueva ejecución `claude -p` iniciaría, así que pase `--permission-mode` o `--dangerously-skip-permissions` nuevamente si la sesión diferida usó una. 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 en reanudar](/docs/es/sessions#permission-mode-on-resume).2006 Cuando reanuda con `-p`, Claude Code no restaura ningún otro modo de permiso almacenado. Inicia la ejecución en el modo de permiso que una nueva ejecución `claude -p` iniciaría, así que pase `--permission-mode` o `--dangerously-skip-permissions` nuevamente si la sesión diferida usó una. 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 en reanudar](/docs/es/sessions#permission-mode-on-resume).

2007</Note>2007</Note>


2015 2015 

2016Use 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.2016Use 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.

2017 2017 

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 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 sandboxed. Para obtener una señal para ese aviso, use el tipo de notificación `permission_prompt`.

2019 2019 

2020Coincide en el nombre de la herramienta, los mismos valores que PreToolUse.2020Coincide en el nombre de la herramienta, los mismos valores que PreToolUse.

2021 2021 


2023 Entrada de PermissionRequest2023 Entrada de PermissionRequest

2024</h4>2024</h4>

2025 2025 

2026Los 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). 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.

2027 2027 

2028La 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.2028La 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.

2029 2029 


2200 Anotar un resultado para el clasificador de modo automático2200 Anotar un resultado para el clasificador de modo automático

2201</h4>2201</h4>

2202 2202 

2203Devuelva `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.2203Devuelva `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 compatible 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.

2204 2204 

2205El 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:

2206 2206 


2216Cuá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 configuró el hook:

2217 2217 

2218* **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 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 aprobó o solicitó algo, el clasificador verifica esa afirmación contra sus propios mensajes en la conversación

2219* **Devoluciones de llamada del SDK del agente en proceso**: cuando una aplicación que integra Claude Code registra el hook como una [devolución de llamada 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í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 no verificada2219* **Devoluciones de llamada del Agent SDK en proceso**: cuando una aplicación que integra Claude Code registra el hook como una [devolución de llamada 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í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 no verificada

2220 2220 

2221Claude Code aplica estos límites al entregar la nota:2221Claude Code aplica estos límites al entregar la nota:

2222 2222 

2223* **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

2224* **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

2225* **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

2226* **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 otra reescritura del 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á 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 salida

2227 2227 

2228<Warning>2228<Warning>

2229 El clasificador lee 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 herramientas no confiables 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 coloca en `classifierContext` como información del anfitrión de la aplicación que aloja la sesión, así que no copie salida de herramientas no confiables 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.

2230</Warning>2230</Warning>

2231 2231 

2232<h3 id="posttoolusefailure">2232<h3 id="posttoolusefailure">


2245 Entrada de PostToolUseFailure2245 Entrada de PostToolUseFailure

2246</h4>2246</h4>

2247 2247 

2248Los 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:

2249 2249 

2250```json theme={null}2250```json theme={null}

2251{2251{


2301 PostToolBatch2301 PostToolBatch

2302</h3>2302</h3>

2303 2303 

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

2305 2305 

2306<h4 id="posttoolbatch-input">2306<h4 id="posttoolbatch-input">

2307 Entrada de PostToolBatch2307 Entrada de PostToolBatch


2333}2333}

2334```2334```

2335 2335 

2336`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 la herramienta la emitió. 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 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.

2337 2337 

2338<Note>2338<Note>

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.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 ve el modelo.

2340</Note>2340</Note>

2341 2341 

2342<h4 id="posttoolbatch-decision-control">2342<h4 id="posttoolbatch-decision-control">


2412 2412 

2413Cuando `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 negación en sí. Si su hook no devuelve JSON, o devuelve `retry: false`, la negación se mantiene y el modelo recibe el mensaje de rechazo original.2413Cuando `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 negación en sí. Si su hook no devuelve JSON, o devuelve `retry: false`, la negación se mantiene y el modelo recibe el mensaje de rechazo original.

2414 2414 

2415Claude Code ignora `retry: true` cuando el clasificador produjo [sin 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 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.2415Claude Code ignora `retry: true` cuando el clasificador produjo [sin 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 solicitud del clasificador. Para esas negaciones, Claude Code ya le dice al modelo en el mensaje de rechazo si reintentar más tarde o continuar.

2416 2416 

2417<h3 id="notification">2417<h3 id="notification">

2418 Notification2418 Notification


2424 2424 

2425| Matcher | Cuándo se dispara |2425| Matcher | Cuándo se dispara |

2426| :- | :- |2426| :- | :- |

2427| `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 su permiso para usar una herramienta o una [solicitud de red](/docs/es/sandboxing#network-isolation) de un comando sandboxed, y el aviso ha esperado aproximadamente seis segundos |

2428| `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 ha escrito desde entonces |

2429| `auth_success` | La autenticación se completa |2429| `auth_success` | La autenticación se completa |

2430| `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 ha escrito durante aproximadamente seis segundos |

2431| `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 le pide que abra una URL de navegador y no ha escrito durante aproximadamente seis segundos |

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

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

2434| `agent_needs_input` | Una sesión en segundo plano 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 un [compañero de equipo del 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 su entrada mientras [vista de agente](/docs/es/agent-view) está abierta en una terminal. También se dispara cuando una sesión de terminal le muestra una [pregunta de configuración de terminal de un compañero de equipo de agente](/docs/es/agent-teams#choose-a-display-mode) o el aviso del modo automático sobre [cargos de solicitud del clasificador](/docs/es/auto-mode-classifier-billing) y no ha escrito durante aproximadamente seis segundos |

2435| `agent_completed` | Una sesión en segundo plano termina 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 termina o falla. Se dispara solo mientras [vista de agente](/docs/es/agent-view) está abierta en una terminal |

2436| `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 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) |

2437| `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 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 se dispara `quota_auto_resume_fired` en su lugar |

2438| `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 durante una espera que Claude Code comenzó por sí solo, 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 su tarea: [`autoContinueAtUsageLimit`](/docs/es/settings-reference#autocontinueatusagelimit) se desactivó o el reinicio se movió más de 24 horas durante una espera que Claude Code inició por sí solo, 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** |

2439 2439 

2440Los 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.

2441 2441 

2442Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale`, y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.2442Los tipos `quota_auto_resume_fired`, `quota_auto_resume_stale`, y `quota_auto_resume_disabled` requieren Claude Code v2.1.234 o posterior.

2443 2443 

2444En sesiones de terminal, `permission_prompt` para una solicitud de red de un comando en sandbox requiere Claude Code v2.1.246 o posterior.2444En sesiones de terminal, `permission_prompt` para una solicitud de red de un comando sandboxed requiere Claude Code v2.1.246 o posterior.

2445 2445 

2446`agent_needs_input` para una pregunta de configuración de terminal de un compañero requiere Claude Code v2.1.248 o posterior.2446`agent_needs_input` para una pregunta de configuración de terminal de un compañero requiere Claude Code v2.1.248 o posterior.

2447 2447 


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 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 llegar a usted mientras la solicitud aún espera detrás del diálogo abierto.

2456</Note>2456</Note>

2457 2457 

2458Claude 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) del SDK del agente, 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 a la devolución de llamada [`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:

2459 2459 

2460* Espere `permission_prompt` aproximadamente seis segundos después de que Claude solicite permiso. Claude Code no lo difiere mientras escribe.2460* Espere `permission_prompt` aproximadamente seis segundos después de que Claude solicita permiso. Claude Code no lo difiere mientras escribe.

2461* Si usted o un hook [PermissionRequest](#permissionrequest) responden antes, Claude Code no ejecuta `permission_prompt`.2461* Si usted o un hook [PermissionRequest](#permissionrequest) responden antes, Claude Code no ejecuta `permission_prompt`.

2462* Establezca [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/es/env-vars) en `1` para desactivar `permission_prompt` en estas sesiones.2462* Establezca [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/es/env-vars) en `1` para desactivar `permission_prompt` en estas sesiones.

2463 2463 


2496 Entrada de Notification2496 Entrada de Notification

2497</h4>2497</h4>

2498 2498 

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` 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ó.

2500 2500 

2501```json theme={null}2501```json theme={null}

2502{2502{


2516 SubagentStart2516 SubagentStart

2517</h3>2517</h3>

2518 2518 

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 del agente](/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.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 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.

2520 2520 

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

2522 2522 


2537}2537}

2538```2538```

2539 2539 

2540Los 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, puede devolver:

2541 2541 

2542| Campo | Descripción |2542| Campo | Descripción |

2543| :- | :- |2543| :- | :- |


2566 2566 

2567Además de los [campos de entrada comunes](#common-input-fields), los hooks SubagentStop reciben `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, y `last_assistant_message`. El campo `agent_type` es el valor utilizado para filtrado de matcher. El `transcript_path` es la transcripción de la sesión principal, mientras que `agent_transcript_path` es la transcripción propia del subagente almacenada en una carpeta `subagents/` anidada. El campo `last_assistant_message` contiene el contenido de texto de la respuesta final del subagente, por lo que los hooks pueden acceder a él sin analizar el archivo de transcripción.2567Además de los [campos de entrada comunes](#common-input-fields), los hooks SubagentStop reciben `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path`, y `last_assistant_message`. El campo `agent_type` es el valor utilizado para filtrado de matcher. El `transcript_path` es la transcripción de la sesión principal, mientras que `agent_transcript_path` es la transcripción propia del subagente almacenada en una carpeta `subagents/` anidada. El campo `last_assistant_message` contiene el contenido de texto de la respuesta final del subagente, por lo que los hooks pueden acceder a él sin analizar el archivo de transcripción.

2568 2568 

2569No todos los eventos SubagentStop provienen 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 todos los eventos SubagentStop provienen 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.

2570 2570 

2571Un `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.

2572 2572 

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`.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 con `SubagentHandback` recibe como `tool_input.message`.

2574 2574 

2575Los 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 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.

2576 2576 

2577```json theme={null}2577```json theme={null}

2578{2578{


2657 TaskCompleted2657 TaskCompleted

2658</h3>2658</h3>

2659 2659 

2660Se ejecuta cuando una tarea se está marcando 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 del agente](/docs/es/agent-teams) compañero 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 una tarea se está marcando 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.

2661 2661 

2662Los hooks TaskCompleted no admiten matchers y se disparan en cada ocurrencia.2662Los hooks TaskCompleted no admiten matchers y se disparan en cada ocurrencia.

2663 2663 


2733 2733 

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

2735 2735 

2736Las matrices `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". Ambas matrices están presentes cuando el registro de tareas es alcanzable y están vacías cuando nada está en vuelo o programado.2736Las matrices `background_tasks` y `session_crons` permiten a los hooks distinguir "la sesión está hecha" de "la sesión está pausada esperando a que el trabajo de fondo la despierte". Ambas matrices están presentes cuando el registro de tareas es alcanzable y están vacías cuando nada está en vuelo o programado.

2737 2737 

2738Cada 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:

2739 2739 


2798| Campo | Descripción |2798| Campo | Descripción |

2799| :- | :- |2799| :- | :- |

2800| `decision` | `"block"` evita que Claude se detenga. Omita para permitir que Claude se detenga |2800| `decision` | `"block"` evita que Claude se detenga. Omita para permitir que Claude se detenga |

2801| `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é debería continuar |

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

2803 2803 

2804Un hook que bloquea al salir con 2 se enruta de la misma manera que `reason`: Claude recibe el mensaje stderr como la explicación de por qué debe continuar.2804Un hook que bloquea al salir con 2 se enruta de la misma manera que `reason`: Claude recibe el mensaje stderr como la explicación de por qué debería continuar.

2805 2805 

2806```json theme={null}2806```json theme={null}

2807{2807{


2810}2810}

2811```2811```

2812 2812 

2813Use `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:2813Use `additionalContext` cuando el hook está funcionando como se diseñó y dando orientación a Claude, como "ejecute 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:

2814 2814 

2815```json theme={null}2815```json theme={null}

2816{2816{


2851}2851}

2852```2852```

2853 2853 

2854Los hooks StopFailure no tienen control de decisión. Se ejecutan solo para propósitos de notificación y registro.2854Los hooks StopFailure no tienen control de decisión. Se ejecutan solo con fines de notificación y registro.

2855 2855 

2856<h3 id="teammateidle">2856<h3 id="teammateidle">

2857 TeammateIdle2857 TeammateIdle

2858</h3>2858</h3>

2859 2859 

2860Se ejecuta cuando un [equipo del agente](/docs/es/agent-teams) compañero 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 verificaciones de lint aprobadas o verificar que existan archivos de salida.2860Se 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 verificaciones de lint o verificar que existan archivos de salida.

2861 2861 

2862Los hooks TeammateIdle no admiten matchers y se disparan en cada ocurrencia.2862Los hooks TeammateIdle no admiten matchers y se disparan en cada ocurrencia.

2863 2863 


2979}2979}

2980```2980```

2981 2981 

2982Los 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 registrar esas ediciones, pero cualquier decisión de bloqueo se ignora. Esto asegura que la configuración administrada por empresa siempre tenga 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 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 registrar esas ediciones, pero cualquier decisión de bloqueo se ignora. Esto asegura que la configuración administrada por la empresa siempre tenga efecto. Claude Code no ejecuta hooks `ConfigChange` cuando llegan o se actualizan [configuración administrada por servidor](/docs/es/server-managed-settings).

2983 2983 

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

2985 2985 


3028 DirectoryAdded3028 DirectoryAdded

3029</h3>3029</h3>

3030 3030 

3031Se 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 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 agregar un directorio de trabajo a mitad de sesión con el comando `/add-dir`, o después de que un cliente del SDK agregue uno con la solicitud de control `register_repo_root`. Úselo para preparar un repositorio recién agregado, por ejemplo instalando sus dependencias.

3032 3032 

3033Claude Code no dispara este evento cuando:3033Claude Code no dispara este evento cuando:

3034 3034 


3036* Agrega un directorio en la pestaña Workspace `/permissions`3036* Agrega un directorio en la pestaña Workspace `/permissions`

3037* Agrega un directorio que ya es un directorio de trabajo o está dentro de uno3037* Agrega un directorio que ya es un directorio de trabajo o está dentro de uno

3038 3038 

3039Claude Code se 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 se dispara DirectoryAdded después de actualizar el estado de sandbox y permiso, por lo que las herramientas sandboxed ya ven el nuevo directorio cuando se ejecuta su hook. Los comandos del hook en sí se ejecutan sin sandbox.

3040 3040 

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

3042 3042 


3045| Matcher | Cuándo se dispara |3045| Matcher | Cuándo se dispara |

3046| :- | :- |3046| :- | :- |

3047| `slash_command` | Agrega un directorio con `/add-dir` |3047| `slash_command` | Agrega un directorio con `/add-dir` |

3048| `register_repo_root` | Un cliente SDK agrega un directorio con la solicitud de control `register_repo_root` |3048| `register_repo_root` | Un cliente del SDK agrega un directorio con la solicitud de control `register_repo_root` |

3049 3049 

3050<h4 id="directoryadded-input">3050<h4 id="directoryadded-input">

3051 Entrada de DirectoryAdded3051 Entrada de DirectoryAdded


3117 3117 

3118Para 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 terminaciones LF.3118Para 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 terminaciones LF.

3119 3119 

3120Para 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 inicia el observador solo cuando algo nombra un archivo para observar, por lo que semilla 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 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 cualquier otro valor, como un archivo literal nombrado `*`.3120Para 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 inicia 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 cualquier otro valor, como un archivo literal nombrado `*`.

3121 3121 

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

3123 3123 


3153| :- | :- |3153| :- | :- |

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

3155 3155 

3156Los 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 que ocurra.

3157 3157 

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

3159 3159 


3165 3165 

3166Debido 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 necesita copiar archivos de configuración local como `.env` en el nuevo worktree, hágalo dentro de su script de hook.

3167 3167 

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. 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. Consulte [Salida de WorktreeCreate](#worktreecreate-output) para saber cómo cada tipo de hook devuelve la ruta.

3169 3169 

3170Claude 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`.

3171 3171 


3233 3233 

3234Para worktrees basados en git, Claude Code maneja la limpieza automáticamente con `git worktree remove`. Si configuró un hook WorktreeCreate, emparéjelo con un hook WorktreeRemove para controlar la limpieza de los worktrees que crea:3234Para worktrees basados en git, Claude Code maneja la limpieza automáticamente con `git worktree remove`. Si configuró un hook WorktreeCreate, emparéjelo con un hook WorktreeRemove para controlar la limpieza de los worktrees que crea:

3235 3235 

3236* **Sin hook WorktreeRemove**: cuando sale de una sesión `--worktree` y elige eliminación, Claude Code vuelve a `git worktree remove --force` en la ruta que devolvió su hook WorktreeCreate, por lo que se elimina un worktree que git reconoce. Un worktree que git no reconoce, por ejemplo uno que su hook creó con un sistema de control de versiones no git, permanece en el disco. Para lo que hace eliminar una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) con un worktree creado por hook, consulte las reglas de eliminación de vista de agente.3236* **Sin hook WorktreeRemove**: cuando sale de una sesión `--worktree` y elige eliminación, Claude Code vuelve a `git worktree remove --force` en la ruta que devolvió su hook WorktreeCreate, por lo que se elimina un worktree que git reconoce. Un worktree que git no reconoce, por ejemplo uno que su hook creó con un sistema de control de versiones que no es git, permanece en el disco. Para lo que hace eliminar una [sesión en segundo plano](/docs/es/agent-view#what-deleting-a-session-removes) con un worktree creado por hook, consulte las reglas de eliminación de vista de agente.

3237* **El hook sale con 0**: el worktree se cuenta como eliminado. Claude Code no lee nada más del hook, así que asegúrese de que su hook eliminó el directorio.3237* **El hook sale con 0**: el worktree se cuenta como eliminado. Claude Code no lee nada más del hook, así que asegúrese de que su hook eliminó el directorio.

3238* **El hook sale con código no cero**: la eliminación falla si el directorio en `worktree_path` aún existe después, y el worktree permanece en el disco sin respaldo de git. Un hook que eliminó el directorio antes de salir con código no cero se cuenta como eliminado. Para cómo se reporta el fallo, consulte [entrada de WorktreeRemove](#worktreeremove-input).3238* **El hook sale con código no cero**: la eliminación falla si el directorio en `worktree_path` aún existe después, y el worktree permanece en el disco sin respaldo de git. Un hook que eliminó el directorio antes de salir con código no cero se cuenta como eliminado. Para cómo se reporta el fallo, consulte [Entrada de WorktreeRemove](#worktreeremove-input).

3239 3239 

3240Claude Code nunca elimina una rama perteneciente a un worktree creado por hook, porque solo conoce la ruta que devolvió su hook WorktreeCreate. Si su hook WorktreeCreate crea una rama, elimínela en su hook WorktreeRemove.3240Claude Code nunca elimina una rama perteneciente a un worktree creado por hook, porque solo conoce la ruta que devolvió su hook WorktreeCreate. Si su hook WorktreeCreate crea una rama, elimínela en su hook WorktreeRemove.

3241 3241 


3325 3325 

3326Se 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.3326Se 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.

3327 3327 

3328Los mismos valores de matcher se aplican como para `PreCompact`:3328Los mismos valores de matcher se aplican que para `PreCompact`:

3329 3329 

3330| Matcher | Cuándo se dispara |3330| Matcher | Cuándo se dispara |

3331| :- | :- |3331| :- | :- |


3363* El selector de modelo `Option+P` o `Alt+P`3363* El selector de modelo `Option+P` o `Alt+P`

3364* La configuración Model en `/config`3364* La configuración Model en `/config`

3365* Activar [modo rápido](/docs/es/fast-mode) cuando eso cambia el modelo de la sesión3365* Activar [modo rápido](/docs/es/fast-mode) cuando eso cambia el modelo de la sesión

3366* Una solicitud `set_model`, o un cambio de modelo en una solicitud `apply_flag_settings`, desde un anfitrión [SDK del agente](/docs/es/agent-sdk/typescript#query-object) o [Control remoto](/docs/es/remote-control)3366* 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)

3367 3367 

3368Claude Code no ejecuta hooks PreModelSwitch para cambios que hace por sí solo, como un [respaldo 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.3368Claude Code no ejecuta hooks PreModelSwitch para cambios que realiza por sí solo, como un [respaldo 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.

3369 3369 

3370Claude 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.3370Claude 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.

3371 3371 

3372Cuando 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.3372Cuando 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 debería verificar `to_model` de su entrada en lugar de confiar solo en el matcher.

3373 3373 

3374Escriba 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 al salir con código 2 y permite cualquier otro objetivo:3374Escriba 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 al salir con código 2 y permite cualquier otro objetivo:

3375 3375 


3450| `from_model` | string | ID de modelo del que cambia el cambio |3450| `from_model` | string | ID de modelo del que cambia el cambio |

3451| `to_model` | string | ID de modelo al que cambia el cambio. El matcher compara contra el nombre canónico de este modelo |3451| `to_model` | string | ID de modelo al que cambia el cambio. El matcher compara contra el nombre canónico de este modelo |

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

3453| `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 del SDK del agente o Control remoto |3453| `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 del Agent SDK o Control Remoto |

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

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

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


3510 3510 

3511Un 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.3511Un 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.

3512 3512 

3513Un 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).3513Un hook que sale con un código que no es 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).

3514 3514 

3515<h3 id="postmodelswitch">3515<h3 id="postmodelswitch">

3516 PostModelSwitch3516 PostModelSwitch


3555 Entrada de PostModelSwitch3555 Entrada de PostModelSwitch

3556</h4>3556</h4>

3557 3557 

3558Los 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 respaldo automático u otro cambio que Claude Code hizo por sí solo, y `"resume"` para el modelo restaurado cuando reanuda una sesión.3558Los 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 respaldo automático u otro cambio que Claude Code realizó por sí solo, y `"resume"` para el modelo restaurado cuando reanuda una sesión.

3559 3559 

3560`requested_model` es `null` cuando `source` es `"auto"`. Cuando `source` es `"resume"`, es la configuración de modelo guardada que Claude Code restauró.3560`requested_model` es `null` cuando `source` es `"auto"`. Cuando `source` es `"resume"`, es la configuración de modelo guardada que Claude Code restauró.

3561 3561 

hooks-guide.md +1 −1

Details

196| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL en el navegador y no has escrito durante aproximadamente seis segundos |196| `elicitation_url_dialog` | Un servidor MCP te pide que abras una URL en el navegador y no has escrito durante aproximadamente seis segundos |

197| `elicitation_complete` | Un servidor MCP reporta que una [elicitación en modo URL](/docs/es/hooks#elicitation-input) está completa |197| `elicitation_complete` | Un servidor MCP reporta que una [elicitación en modo URL](/docs/es/hooks#elicitation-input) está completa |

198| `elicitation_response` | Una respuesta de elicitación de MCP se envía de vuelta al servidor |198| `elicitation_response` | Una respuesta de elicitación de MCP se envía de vuelta al servidor |

199| `agent_needs_input` | Una sesión en segundo plano comienza a esperar tu entrada mientras la [vista de agente](/docs/es/agent-view) está abierta, o la sesión actual te hace una [pregunta de configuración de terminal de un compañero de equipo de agente](/docs/es/agent-teams#choose-a-display-mode) y no has escrito durante aproximadamente seis segundos |199| `agent_needs_input` | Una sesión en segundo plano comienza a esperar tu entrada mientras la [vista de agente](/docs/es/agent-view) está abierta. También se activa cuando una sesión de terminal te muestra una [pregunta de configuración de terminal de un compañero de equipo de agente](/docs/es/agent-teams#choose-a-display-mode) o el aviso del modo automático sobre [cargos de solicitud de clasificador](/docs/es/auto-mode-classifier-billing) y no has escrito durante aproximadamente seis segundos |

200| `agent_completed` | Una sesión en segundo plano se completa o falla. Se activa solo mientras la [vista de agente](/docs/es/agent-view) está abierta |200| `agent_completed` | Una sesión en segundo plano se completa o falla. Se activa solo mientras la [vista de agente](/docs/es/agent-view) está abierta |

201| `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 de nuevo, con la [excepción de configuración de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |201| `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 de nuevo, con la [excepción de configuración de modelo](/docs/es/interactive-mode#wait-for-a-usage-limit-to-reset) |

202| `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 activa `quota_auto_resume_fired` en su lugar |202| `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 activa `quota_auto_resume_fired` en su lugar |

managed-mcp.md +23 −6

Details

31 31 

32| Patrón | Qué hace | Configurar |32| Patrón | Qué hace | Configurar |

33| :- | :- | :- |33| :- | :- | :- |

34| **Deshabilitar MCP** | No se cargan servidores, aparte de [servidores en proceso que la aplicación que inició la sesión registra](#exclusive-control-with-managed-mcp-json) y cualquiera que [proporcione a través de `managedMcpServers`](#provide-servers-through-managed-settings) | `managed-mcp.json` con un mapa de servidores vacío |34| **Deshabilitar MCP** | No se cargan servidores excepto los pocos que [se cargan bajo control exclusivo](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` con un mapa de servidores vacío |

35| **Implementación fija** | Cada usuario obtiene los mismos servidores y no puede agregar otros | `managed-mcp.json` con los servidores que desea |35| **Implementación fija** | Cada usuario obtiene los mismos servidores y no puede agregar otros | `managed-mcp.json` con los servidores que desea |

36| **Servidores proporcionados** | Cada usuario obtiene los servidores remotos que enumera y mantiene los suyos propios | `managedMcpServers` en configuración administrada |36| **Servidores proporcionados** | Cada usuario obtiene los servidores remotos que enumera y mantiene los suyos propios | `managedMcpServers` en configuración administrada |

37| **Catálogo aprobado** | Publique una lista de servidores aprobados; los usuarios agregan los que desean, todo lo demás se bloquea | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |37| **Catálogo aprobado** | Publique una lista de servidores aprobados; los usuarios agregan los que desean, todo lo demás se bloquea | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |


53* Los servidores que el archivo define53* Los servidores que el archivo define

54* Servidores que [proporciona a través de `managedMcpServers`](#provide-servers-through-managed-settings)54* Servidores que [proporciona a través de `managedMcpServers`](#provide-servers-through-managed-settings)

55* Servidores en proceso que la aplicación que inició la sesión registra, como el servidor propio de la extensión de VS Code o los [conectores que entrega la aplicación de escritorio](/docs/es/mcp#how-connectors-reach-claude-code)55* Servidores en proceso que la aplicación que inició la sesión registra, como el servidor propio de la extensión de VS Code o los [conectores que entrega la aplicación de escritorio](/docs/es/mcp#how-connectors-reach-claude-code)

56* El servidor integrado de [Claude in Chrome](/docs/es/chrome), si [lo permite junto con el conjunto administrado](#allow-claude-in-chrome-alongside-the-managed-set)

56 57 

57Los usuarios no pueden agregar, modificar ni usar ningún otro servidor MCP, incluidos los servidores proporcionados por plugins y los servidores pasados con la [bandera CLI `--mcp-config`](/docs/es/cli-reference#cli-flags). El archivo también suprime los conectores de claude.ai que Claude Code obtiene por sí mismo a menos que [los permita junto con el conjunto administrado](#allow-claude-ai-connectors-alongside-the-managed-set).58Los usuarios no pueden agregar, modificar ni usar ningún otro servidor MCP, incluidos los servidores proporcionados por plugins y los servidores pasados con la [bandera CLI `--mcp-config`](/docs/es/cli-reference#cli-flags). El archivo también suprime los conectores de claude.ai que Claude Code obtiene por sí mismo a menos que [los permita junto con el conjunto administrado](#allow-claude-ai-connectors-alongside-the-managed-set).

58 59 


144 Deshabilitar MCP completamente145 Deshabilitar MCP completamente

145</h3>146</h3>

146 147 

147Implemente un `managed-mcp.json` que contenga un mapa de servidor vacío para bloquear cada servidor MCP aparte de [servidores en proceso que la aplicación que inició la sesión registra](#exclusive-control-with-managed-mcp-json):148Implemente un `managed-mcp.json` que contenga un mapa de servidor vacío para bloquear cada servidor MCP aparte de los que [cargan bajo control exclusivo](#exclusive-control-with-managed-mcp-json):

148 149 

149```json theme={null}150```json theme={null}

150{151{


152}153}

153```154```

154 155 

155`claude mcp add` falla con el error de política empresarial anterior. Los servidores que los usuarios habían configurado previamente dejan de cargarse la próxima vez que inician una sesión, sin advertencia de que la política es la razón. Los servidores que proporciona a través de `managedMcpServers` aún se cargan bajo un mapa vacío, así que deje esa clave sin establecer también para deshabilitar MCP completamente.156`claude mcp add` falla con el error de política empresarial anterior. Los servidores que los usuarios habían configurado previamente dejan de cargarse la próxima vez que inician una sesión, sin advertencia de que la política es la razón. Los servidores que proporciona a través de `managedMcpServers`, y cualquier otra cosa que permita junto con el conjunto administrado, aún se cargan bajo un mapa vacío, así que deje esas claves sin establecer para desactivar MCP completamente.

156 157 

157<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">158<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">

158 Permitir conectores de claude.ai junto con el conjunto administrado159 Permitir conectores de claude.ai junto con el conjunto administrado


166 167 

167Claude Code lee `allowAllClaudeAiMcps` solo desde niveles de política controlados por administrador: configuración administrada por servidor, una clave de registro plist o HKLM implementada por MDM, o un archivo `managed-settings.json` del sistema. Colocarlo en configuración de usuario o proyecto no tiene efecto, por lo que los usuarios no pueden volver a habilitar conectores que el control exclusivo suprimió.168Claude Code lee `allowAllClaudeAiMcps` solo desde niveles de política controlados por administrador: configuración administrada por servidor, una clave de registro plist o HKLM implementada por MDM, o un archivo `managed-settings.json` del sistema. Colocarlo en configuración de usuario o proyecto no tiene efecto, por lo que los usuarios no pueden volver a habilitar conectores que el control exclusivo suprimió.

168 169 

170<h3 id="allow-claude-in-chrome-alongside-the-managed-set">

171 Permitir Claude in Chrome junto con el conjunto administrado

172</h3>

173 

174De forma predeterminada, cuando implementa `managed-mcp.json`, Claude Code bloquea el servidor integrado de [Claude in Chrome](/docs/es/chrome) en sesiones de terminal. Los usuarios no reciben el [aviso de instalación de extensión](/docs/es/chrome#install-the-extension-when-claude-asks), y una sesión donde el usuario [habilitó Chrome de forma predeterminada](/docs/es/chrome#enable-chrome-by-default) se inicia sin Chrome y no imprime ninguna advertencia. Cuando un usuario que de otro modo podría ejecutar Claude in Chrome lo inicia con `claude --chrome` o `CLAUDE_CODE_ENABLE_CFC=1`, Claude Code sale al inicio con un error que nombra la configuración `allowClaudeInChromeWithManagedMcp`.

175 

176Para permitir que los usuarios ejecuten Claude in Chrome junto con los servidores en `managed-mcp.json`, establezca `"allowClaudeInChromeWithManagedMcp": true` en la configuración administrada del dispositivo. Colóquelo en una clave de registro plist o HKLM implementada por MDM, o un archivo `managed-settings.json` del sistema, cualquiera de esos que Claude Code [selecciona](/docs/es/managed-settings#precedence-within-the-managed-tier) en ese dispositivo. Requiere Claude Code v2.1.282 o posterior. Antes de v2.1.282, Claude Code ignora la configuración, y el error de inicio dice `You cannot dynamically configure MCP servers when an enterprise MCP config is present` en su lugar.

177 

178Claude Code lee la configuración desde esas fuentes de dispositivo incluso cuando [configuración administrada por servidor](/docs/es/server-managed-settings) entrega el resto de su política. Ignora la configuración en la propia configuración administrada por servidor, en el registro HKCU escribible por el usuario, y en configuración de usuario o proyecto. Una entrada [`deniedMcpServers`](#policy-based-control-with-allowlists-and-denylists) para `claude-in-chrome` aún bloquea el servidor con la configuración activada.

179 

169<h2 id="provide-servers-through-managed-settings">180<h2 id="provide-servers-through-managed-settings">

170 Proporcionar servidores a través de configuración administrada181 Proporcionar servidores a través de configuración administrada

171</h2>182</h2>


303 314 

304| Configuración | Sin establecer (predeterminado) | Matriz vacía `[]` | Poblada |315| Configuración | Sin establecer (predeterminado) | Matriz vacía `[]` | Poblada |

305| :- | :- | :- | :- |316| :- | :- | :- | :- |

306| `allowedMcpServers` | Se permiten todos los servidores | No se permite ningún servidor, aparte de [los propios de la organización](#how-a-server-is-evaluated) | Solo se permiten servidores coincidentes, aparte de [los propios de la organización](#how-a-server-is-evaluated) |317| `allowedMcpServers` | Se permiten todos los servidores | No se permite ningún servidor, aparte de [los que omiten la comprobación de lista de permitidos](#how-a-server-is-evaluated) | Solo se permiten servidores coincidentes, aparte de [los que omiten la comprobación de lista de permitidos](#how-a-server-is-evaluated) |

307| `deniedMcpServers` | No se bloquea ningún servidor | No se bloquea ningún servidor | Se bloquean servidores coincidentes |318| `deniedMcpServers` | No se bloquea ningún servidor | No se bloquea ningún servidor | Se bloquean servidores coincidentes |

308 319 

309Vea [Entradas inválidas en configuración administrada](/docs/es/managed-settings#invalid-entries-in-managed-settings) para saber qué sucede cuando una entrada falla la validación del esquema.320Vea [Entradas inválidas en configuración administrada](/docs/es/managed-settings#invalid-entries-in-managed-settings) para saber qué sucede cuando una entrada falla la validación del esquema.


3292. **Verificar la lista de bloqueados.** Un servidor que coincida con cualquier entrada de lista de bloqueados, por URL, comando o nombre, se bloquea. Nada anula una coincidencia de lista de bloqueados.3402. **Verificar la lista de bloqueados.** Un servidor que coincida con cualquier entrada de lista de bloqueados, por URL, comando o nombre, se bloquea. Nada anula una coincidencia de lista de bloqueados.

3303. **Verificar la lista de permitidos.** Si `allowedMcpServers` no está establecido en ningún lugar, cada servidor que pasó la lista de bloqueados se carga. Si está establecido, lo que el servidor debe coincidir depende de su tipo, que se muestra en la tabla a continuación.3413. **Verificar la lista de permitidos.** Si `allowedMcpServers` no está establecido en ningún lugar, cada servidor que pasó la lista de bloqueados se carga. Si está establecido, lo que el servidor debe coincidir depende de su tipo, que se muestra en la tabla a continuación.

331 342 

332 Los servidores propios de la organización omiten esta comprobación: cada entrada `managedMcpServers`, y cualquier entrada `managed-mcp.json` cuyos valores no usen expansión `${VAR}`. Los servidores integrados también la omiten, como Claude en Chrome, el servidor `ide` al que Claude Code se conecta en un IDE de VS Code o JetBrains en ejecución, y servidores que la CLI misma configura.343 Tres grupos de servidores omiten esta comprobación:

344 

345 * Los servidores propios de la organización: cada entrada `managedMcpServers`, y cualquier entrada `managed-mcp.json` cuyos valores no usen expansión `${VAR}`.

346 * Servidores integrados, como Claude en Chrome, el servidor `ide` al que Claude Code se conecta en un IDE de VS Code o JetBrains en ejecución, y servidores que la CLI misma configura.

347 * Las herramientas de Slack de una sesión de [Claude Tag](/docs/es/claude-tag): los servidores que utiliza para leer el hilo y publicar sus respuestas se cargan sin una entrada de lista de permitidos.

333 348 

334 Un servidor `managed-mcp.json` que usa expansión `${VAR}` en su comando, argumentos, `env`, URL o encabezados aún se verifica, al igual que cada servidor que un usuario, un plugin, `--mcp-config` o claude.ai añade.349 Un servidor `managed-mcp.json` que usa expansión `${VAR}` en su comando, argumentos, `env`, URL o encabezados aún se verifica. Lo mismo ocurre con cada servidor que un usuario, un plugin, o claude.ai añade, y cada servidor que un usuario pasa con `--mcp-config`.

335 350 

336| Tipo de servidor | Se permite cuando coincide |351| Tipo de servidor | Se permite cuando coincide |

337| :- | :- |352| :- | :- |


514| Restricción | Lo que ve el usuario |529| Restricción | Lo que ve el usuario |

515| :- | :- |530| :- | :- |

516| `managed-mcp.json` está presente y el usuario ejecuta `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |531| `managed-mcp.json` está presente y el usuario ejecuta `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

532| `managed-mcp.json` está presente y un usuario que de otro modo podría ejecutar Claude en Chrome ejecuta `claude --chrome` | Claude Code se cierra al iniciar con `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

517| El servidor está en una lista de bloqueo y el usuario ejecuta `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |533| El servidor está en una lista de bloqueo y el usuario ejecuta `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

518| El servidor no está en la lista de permitidos y el usuario ejecuta `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |534| El servidor no está en la lista de permitidos y el usuario ejecuta `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

519| El usuario ejecuta `claude mcp remove` en un servidor de `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |535| El usuario ejecuta `claude mcp remove` en un servidor de `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |


541| `allowedMcpServers` | Lista de permitidos de servidores permitidos | Cualquier [ámbito de configuración](/docs/es/settings#where-settings-live); [Cómo se evalúa un servidor](#how-a-server-is-evaluated) dice cómo se combinan las listas de varios ámbitos y fuentes administradas | Para aplicación, una [fuente de configuración administrada](/docs/es/admin-setup#decide-how-settings-reach-devices): configuración administrada por servidor, `managed-settings.json`, perfil MDM, o registro |557| `allowedMcpServers` | Lista de permitidos de servidores permitidos | Cualquier [ámbito de configuración](/docs/es/settings#where-settings-live); [Cómo se evalúa un servidor](#how-a-server-is-evaluated) dice cómo se combinan las listas de varios ámbitos y fuentes administradas | Para aplicación, una [fuente de configuración administrada](/docs/es/admin-setup#decide-how-settings-reach-devices): configuración administrada por servidor, `managed-settings.json`, perfil MDM, o registro |

542| `deniedMcpServers` | Lista de bloqueados de servidores bloqueados | Cualquier ámbito de configuración; [Cómo se evalúa un servidor](#how-a-server-is-evaluated) dice cómo se combinan las listas de varios ámbitos y fuentes administradas | Igual que `allowedMcpServers` |558| `deniedMcpServers` | Lista de bloqueados de servidores bloqueados | Cualquier ámbito de configuración; [Cómo se evalúa un servidor](#how-a-server-is-evaluated) dice cómo se combinan las listas de varios ámbitos y fuentes administradas | Igual que `allowedMcpServers` |

543| `allowManagedMcpServersOnly` | Bloquea la lista de permitidos solo a fuentes administradas | Solo fuentes de configuración administrada; [Las claves leídas de cada fuente de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source) dice qué fuentes administradas pueden activarla. La configuración no tiene efecto en otros ámbitos | Igual que `allowedMcpServers` |559| `allowManagedMcpServersOnly` | Bloquea la lista de permitidos solo a fuentes administradas | Solo fuentes de configuración administrada; [Las claves leídas de cada fuente de administrador](/docs/es/managed-settings#keys-read-from-every-admin-source) dice qué fuentes administradas pueden activarla. La configuración no tiene efecto en otros ámbitos | Igual que `allowedMcpServers` |

560| `allowClaudeInChromeWithManagedMcp` | Permite que el servidor Claude integrado en Chrome se ejecute junto con `managed-mcp.json` | Configuración administrada solo en el dispositivo: un perfil MDM, el registro HKLM, o `managed-settings.json`. La configuración administrada por servidor y las fuentes escribibles por el usuario no tienen efecto | MDM, GPO, administración de flota, o cualquier proceso con privilegios de administrador |

544| `allowAllClaudeAiMcps` | Carga los conectores de claude.ai que Claude Code obtiene por sí mismo junto con `managed-mcp.json`. [Un `managed-mcp.json` en el host que ejecuta una sesión en la nube aún suprime los conectores de esa sesión](#allow-claude-ai-connectors-alongside-the-managed-set) | Solo fuentes de configuración administrada; la configuración no tiene efecto en otros lugares | Igual que `allowedMcpServers` |561| `allowAllClaudeAiMcps` | Carga los conectores de claude.ai que Claude Code obtiene por sí mismo junto con `managed-mcp.json`. [Un `managed-mcp.json` en el host que ejecuta una sesión en la nube aún suprime los conectores de esa sesión](#allow-claude-ai-connectors-alongside-the-managed-set) | Solo fuentes de configuración administrada; la configuración no tiene efecto en otros lugares | Igual que `allowedMcpServers` |

545 562 

546<h2 id="related-resources">563<h2 id="related-resources">

Details

449| [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) | Lista de bloqueo de fuentes de mercado. Las fuentes bloqueadas se verifican antes de descargar, por lo que nunca tocan el sistema de archivos. Consulte [restricciones de mercado administradas](/docs/es/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/es/settings-reference#blockedmarketplaces) | Lista de bloqueo de fuentes de mercado. Las fuentes bloqueadas se verifican antes de descargar, por lo que nunca tocan el sistema de archivos. Consulte [restricciones de mercado administradas](/docs/es/plugins/org#restrict-what-users-can-install) |

450| [`channelsEnabled`](/docs/es/settings-reference#channelsenabled) | Permitir [canales](/docs/es/channels) para la organización. Consulte [controles empresariales](/docs/es/channels#enterprise-controls) para el predeterminado en cada plan |450| [`channelsEnabled`](/docs/es/settings-reference#channelsenabled) | Permitir [canales](/docs/es/channels) para la organización. Consulte [controles empresariales](/docs/es/channels#enterprise-controls) para el predeterminado en cada plan |

451| [`disableCommandPluginSources`](/docs/es/settings-reference#disablecommandpluginsources) | Cuando es `true`, bloquea completamente las [fuentes de plugins de `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), por lo que el comando declarado por el mercado nunca se ejecuta. También bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del mercado, excepto para un mercado que la configuración administrada declara a sí misma. Cuando no se establece, sigue `allowManagedHooksOnly`. Requiere Claude Code v2.1.229 o posterior, y el bloque `headersHelper` requiere v2.1.238 o posterior |451| [`disableCommandPluginSources`](/docs/es/settings-reference#disablecommandpluginsources) | Cuando es `true`, bloquea completamente las [fuentes de plugins de `command`](/docs/es/plugins/marketplace-reference#command-plugin-source), por lo que el comando declarado por el mercado nunca se ejecuta. También bloquea los comandos [`headersHelper`](/docs/es/plugins/host-marketplace#authenticate-archive-downloads) del mercado, excepto para un mercado que la configuración administrada declara a sí misma. Cuando no se establece, sigue `allowManagedHooksOnly`. Requiere Claude Code v2.1.229 o posterior, y el bloque `headersHelper` requiere v2.1.238 o posterior |

452| [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags) | Rechace los indicadores `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al inicio. En sesiones en la nube, Claude Code descarta los servidores MCP que el servidor entregó a través de `--mcp-config`, que no sean entradas `type: "sdk"` en proceso, e inicia la sesión. Requiere Claude Code v2.1.193 o posterior |452| [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags) | Rechace los indicadores `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al inicio. En sesiones en la nube, Claude Code en su lugar inicia la sesión y descarta los servidores `--mcp-config` entregados por el servidor, aparte de las excepciones que su [entrada de referencia](/docs/es/settings-reference#disablesideloadflags) enumera. Requiere Claude Code v2.1.193 o posterior |

453| [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh) | Cuando es `true`, bloquea el inicio de CLI hasta que la configuración administrada remota se obtenga recientemente y sale si la obtención falla. Consulte [aplicación de inicio cerrado](/docs/es/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh) | Cuando es `true`, bloquea el inicio de CLI hasta que la configuración administrada remota se obtenga recientemente y sale si la obtención falla. Consulte [aplicación de inicio cerrado](/docs/es/server-managed-settings#enforce-fail-closed-startup) |

454| [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) | Servidores MCP remotos proporcionados a cada usuario junto con los suyos propios. Proporciona servidores en lugar de bloquear nada. Consulte [Proporcionar servidores a través de configuración administrada](/docs/es/managed-mcp#provide-servers-through-managed-settings). Requiere Claude Code v2.1.259 o posterior |454| [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) | Servidores MCP remotos proporcionados a cada usuario junto con los suyos propios. Proporciona servidores en lugar de bloquear nada. Consulte [Proporcionar servidores a través de configuración administrada](/docs/es/managed-mcp#provide-servers-through-managed-settings). Requiere Claude Code v2.1.259 o posterior |

455| [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) | Si Claude Code aplica solo la fuente administrada de mayor prioridad o [compone cada una de ellas](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) | Si Claude Code aplica solo la fuente administrada de mayor prioridad o [compone cada una de ellas](#compose-every-managed-source) |

memory.md +6 −0

Details

115 115 

116Se permiten rutas relativas y absolutas. Las rutas relativas se resuelven en relación con el archivo que contiene la importación, no con el directorio de trabajo. Los archivos importados pueden importar recursivamente otros archivos, con una profundidad máxima de cuatro saltos.116Se permiten rutas relativas y absolutas. Las rutas relativas se resuelven en relación con el archivo que contiene la importación, no con el directorio de trabajo. Los archivos importados pueden importar recursivamente otros archivos, con una profundidad máxima de cuatro saltos.

117 117 

118Para importar un archivo cuya ruta contiene espacios, coloque una barra invertida antes de cada espacio. Sin las barras invertidas, la ruta termina en el primer espacio, incluso cuando la importación está en una línea por sí sola. Una ruta envuelta en comillas no se importa en absoluto, con o sin las barras invertidas. Esta importación carga un archivo desde una carpeta llamada `Design Docs`:

119 

120```text theme={null}

121- API conventions @Design\ Docs/api-conventions.md

122```

123 

118El análisis de importación omite espacios de código Markdown y bloques de código delimitados. Para mencionar una ruta en su CLAUDE.md sin importarla, envuélvala en backticks: escribir `` `@README` `` mantiene el texto literal, mientras que `@README` fuera de backticks importa el archivo.124El análisis de importación omite espacios de código Markdown y bloques de código delimitados. Para mencionar una ruta en su CLAUDE.md sin importarla, envuélvala en backticks: escribir `` `@README` `` mantiene el texto literal, mientras que `@README` fuera de backticks importa el archivo.

119 125 

120Para incluir un README, package.json y una guía de flujo de trabajo, haga referencia a ellos con la sintaxis `@` en cualquier lugar de su CLAUDE.md:126Para incluir un README, package.json y una guía de flujo de trabajo, haga referencia a ellos con la sintaxis `@` en cualquier lugar de su CLAUDE.md:

model-config.md +8 −10

Details

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 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.68 Sonnet 5.5 requiere Claude Code v2.1.284 o posterior, y Opus 5.5 requiere v2.1.280 o posterior. Si una solicitud 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.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


164 164 

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

166 166 

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:167Cuando cambia modelos a través del método [`setModel()`](/docs/es/agent-sdk/overview) del Agent SDK, a través de una aplicación como la [Aplicación de escritorio](/docs/es/desktop), o desde un dispositivo conectado a través de [Control remoto](/docs/es/remote-control), Claude Code verifica el valor en el cambio:

168 168 

169* un alias de modelo169* **Agent SDK o una aplicación**: con Claude Code v2.1.268 o posterior, a menos que Claude Code acepte un ID de modelo localmente, como lo hace para su [opción de modelo personalizado](#add-a-custom-model-option), confirma el ID con su proveedor la primera vez que la sesión cambia a él. La confirmación se ejecuta en cada proveedor, y un ID que su proveedor no ofrece se rechaza en el cambio en lugar de fallar en su próxima solicitud.

170* una entrada del selector `/model`170* **Control remoto**: en la API de Anthropic, Claude Code verifica el valor localmente y no envía ninguna solicitud.

171* cualquier nombre que comience con `claude-`

172* un valor que configuró usted mismo como una [opción de modelo personalizado](#add-a-custom-model-option) o en [`modelOverrides`](#override-model-ids-per-version)

173 171 

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.172Consulte [Model is not a recognized model id](/docs/es/errors#model-is-not-a-recognized-model-id) y [Model not found](/docs/es/errors#model-not-found) para los mensajes.

175 173 

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.174Si establece el modelo con la bandera `--model`, la variable de entorno `ANTHROPIC_MODEL`, o la configuración `model`, Claude Code no lo verifica por adelantado, y un valor mal escrito produce [There's an issue with the selected model](/docs/es/errors#theres-an-issue-with-the-selected-model) en la primera solicitud.

177 175 

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.176Cuando 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.

179 177 


241 Restringir la selección de modelos239 Restringir la selección de modelos

242</h2>240</h2>

243 241 

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).242Los administradores 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).

245 243 

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.244En 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.

247 245 


751| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Guardado como `alwaysThinkingEnabled` en `~/.claude/settings.json` |749| Establecer el predeterminado global | Ejecuta `/config` y alterna el modo de pensamiento. Guardado como `alwaysThinkingEnabled` en `~/.claude/settings.json` |

752| 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) |750| 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) |

753 751 

754No 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.752No puedes desactivar el pensamiento en Opus 5.5, Sonnet 5.5 o los modelos Fable. El alternador de sesión y la fila `/config` muestran `Thinking can't be turned off` para estos modelos en lugar de ofrecer el cambio, y una `alwaysThinkingEnabled: false` guardada o `MAX_THINKING_TOKENS=0` no tiene efecto allí. En estos modelos, el modelo decide por paso cuánto pensar según el nivel de esfuerzo. La configuración guardada se aplica de nuevo cuando cambias a un modelo que la acepta.

755 753 

756Claude 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.754Claude 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.

757 755 

Details

64}64}

65```65```

66 66 

67En la aplicación Claude Desktop, las sesiones de la pestaña Code leen estos ajustes administrados de las fuentes que [llegan a cada tipo de sesión de Desktop](/docs/es/desktop#managed-settings). El formulario de OpenTelemetry para Cowork bajo **Monitoring** en los [ajustes de Datos y privacidad](https://claude.ai/admin-settings/data-privacy-controls) de la consola de administrador se aplica solo a sesiones de Cowork, por lo que ni la CLI de terminal ni la pestaña Code exportan a un recopilador que establezca allí.

68 

67Claude Code ignora las [variables del exportador de OpenTelemetry](/docs/es/settings-reference#variables-claude-code-ignores-in-env) en el `.claude/settings.json` y `.claude/settings.local.json` de un repositorio, por lo que un repositorio no puede usarlas para activar la telemetría, elegir dónde va, o capturar contenido. Establécelas en los ajustes administrados, o haz que cada desarrollador las establezca en su shell o `~/.claude/settings.json`. Un repositorio aún puede desactivar una señal estableciendo su selector de exportador, como `OTEL_LOGS_EXPORTER`, en `none`, a menos que los ajustes administrados, un archivo `--settings`, o el entorno desde el que inicias Claude Code establezca esa variable.69Claude Code ignora las [variables del exportador de OpenTelemetry](/docs/es/settings-reference#variables-claude-code-ignores-in-env) en el `.claude/settings.json` y `.claude/settings.local.json` de un repositorio, por lo que un repositorio no puede usarlas para activar la telemetría, elegir dónde va, o capturar contenido. Establécelas en los ajustes administrados, o haz que cada desarrollador las establezca en su shell o `~/.claude/settings.json`. Un repositorio aún puede desactivar una señal estableciendo su selector de exportador, como `OTEL_LOGS_EXPORTER`, en `none`, a menos que los ajustes administrados, un archivo `--settings`, o el entorno desde el que inicias Claude Code establezca esa variable.

68 70 

69Claude Code no pasa variables de entorno `OTEL_*` a los subprocesos que genera, incluyendo la herramienta Bash, hooks, servidores MCP, y servidores de lenguaje. Una aplicación instrumentada con OpenTelemetry que ejecutes a través de la herramienta Bash no hereda el punto final del exportador de Claude Code ni los encabezados, así que establece esas variables directamente en el comando si esa aplicación necesita exportar su propia telemetría.71Claude Code no pasa variables de entorno `OTEL_*` a los subprocesos que genera, incluyendo la herramienta Bash, hooks, servidores MCP, y servidores de lenguaje. Una aplicación instrumentada con OpenTelemetry que ejecutes a través de la herramienta Bash no hereda el punto final del exportador de Claude Code ni los encabezados, así que establece esas variables directamente en el comando si esa aplicación necesita exportar su propia telemetría.

Details

526 * 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 marca526 * 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

527 * 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 solicita527 * 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

528 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áticamente528 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

529 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)529 4. Si el clasificador bloquea, Claude recibe la razón. 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)

530 530 

531 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:531 Al entrar en modo automático, se descartan las reglas de permitir amplias que otorgan ejecución de código arbitrario:

532 532 

permissions.md +15 −14

Details

228 Bash228 Bash

229</h3>229</h3>

230 230 

231Las reglas de Bash coinciden con el texto completo del comando, siendo `*` un comodín para cualquier texto. [Wildcard patterns](#wildcard-patterns) muestra qué comandos coinciden con cada forma de regla y dónde poner el `*`. El resto de esta sección cubre cómo Claude Code coincide con comandos compuestos y envoltorios, qué no coincide una regla, comandos de solo lectura y redirecciones.231Las reglas de Bash coinciden con el texto completo del comando, donde `*` representa cualquier texto. [Wildcard patterns](#wildcard-patterns) muestra qué comandos coinciden con cada forma de regla y dónde colocar el `*`. El resto de esta sección cubre cómo Claude Code coincide con comandos compuestos y envoltorios, qué no coincide una regla, comandos de solo lectura y redirecciones.

232 232 

233<h4 id="compound-commands">233<h4 id="compound-commands">

234 Comandos compuestos234 Comandos compuestos


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 la coincidencia de reglas de permiso, por lo que una regla como `Bash(npm *)` no lo 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 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.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 directorio fuera de sus directorios de trabajo generan su propia regla de lectura 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


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

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 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).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 cuando [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) cambia el comportamiento para rutas fuera de sus directorios de trabajo. 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. Consulte [Redirections](#redirections).283Una redirección como `ls > out.txt` agrega una verificación en el destino. Consulte [Redirections](#redirections).

284 284 


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.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 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 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).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* **Escrituras en variables de shell especiales**: un comando que establece, desestablece o itera sobre ciertas variables de shell especiales, como `PATH` o `IFS`, solicita incluso cuando el resto del comando es de solo lectura.

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* **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 295 

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:296Un `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 297 

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 `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 activa la solicitud.

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

300<Warning>301<Warning>


357 358 

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.359Para 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 360 

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.361Las 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.

361 362 

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.363Una 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 364 


452 453 

453Dos límites estrechan lo que un patrón `!` puede extraer:454Dos límites estrechan lo que un patrón `!` puede extraer:

454 455 

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/**)`.456* 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/**)`.

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

458<h4 id="symlinks">459<h4 id="symlinks">


489 Rutas que no se pueden resolver o que cambian490 Rutas que no se pueden resolver o que cambian

490</h5>491</h5>

491 492 

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).493Cuando Claude Code no puede determinar dónde conduce 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 494 

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).495Cuando 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 496 


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. |521| `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. |

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. |522| `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. |

522 523 

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.524Las 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 antes de ella. Una regla [`Artifact`](/docs/es/artifacts#disable-artifacts) hace lo mismo.

524 525 

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.526Cuando 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 antes de cada una.

526 527 

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:528Para permitir que Claude busque libremente mientras mantiene la lista de permitidos del sandbox como está, use la forma desnuda. Este `settings.json` hace eso:

528 529 


534}535}

535```536```

536 537 

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.538Cuando solicita a Claude que busque una página, busca sin una solicitud. Cuando solicita 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.

538 539 

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.540En [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) de la solicitud para que el clasificador revise.

540 541 

541<h3 id="mcp">542<h3 id="mcp">

542 MCP543 MCP


550 551 

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>`.552Si 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>`.

552 553 

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`.554En 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 completa `Bash` o `WebFetch` 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`.

554 555 

555<h3 id="agent-subagents">556<h3 id="agent-subagents">

556 Agent (subagentes)557 Agent (subagentes)


576 Cd577 Cd

577</h3>578</h3>

578 579 

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.580Las reglas `Cd` controlan a qué directorios puede moverse la sesión el comando [`/cd`](/docs/es/commands). `Cd` no es una herramienta invocable por modelo: Claude no puede llamarla, y las reglas se aplican solo cuando ejecuta `/cd` usted mismo.

580 581 

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.582Una 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.

582 583 

Details

121 121 

122En su terminal, los plugins se sincronizan solo en sesiones donde inicia sesión con su cuenta claude.ai.122En su terminal, los plugins se sincronizan solo en sesiones donde inicia sesión con su cuenta claude.ai.

123 123 

124Claude Code no descarga ni carga plugins sincronizados en estas sesiones de terminal, incluso después de que inicie sesión con `/login`:

125 

126* Una sesión donde `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, o un script `apiKeyHelper` proporciona la credencial en lugar de ese inicio de sesión

127* Una sesión que no [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching), como una donde establece `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

128* Una sesión en [modo bare](/docs/es/headless#start-faster-with-bare-mode) o una que inicia con `--safe-mode`

129* Una sesión que inicia con una lista [`--setting-sources`](/docs/es/cli-reference#cli-flags) que deja fuera `user`

130 

124Si inició sesión en una versión anterior de Claude Code, ese inicio de sesión no cubre plugins hasta que Claude Code lo renueve en segundo plano. Para obtener acceso más rápido, ejecute `/login` nuevamente. La sincronización de plugins comienza la próxima vez que inicia Claude Code.131Si inició sesión en una versión anterior de Claude Code, ese inicio de sesión no cubre plugins hasta que Claude Code lo renueve en segundo plano. Para obtener acceso más rápido, ejecute `/login` nuevamente. La sincronización de plugins comienza la próxima vez que inicia Claude Code.

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">

Details

200 200 

201El mismo botón de alternancia aparece fuera de la CLI:201El mismo botón de alternancia aparece fuera de la CLI:

202 202 

203* **Aplicación de escritorio**: **Settings > Claude Code > Enable remote control by default**.203* **Aplicación de escritorio**: **Settings > Claude Code > Connect new sessions to Remote Control**.

204* **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).204* **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).

205 205 

206Para 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.206Para 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.

Details

170 170 

171Si su host de git rechaza la credencial, o no configuró una, el runner reintenta algunas veces y luego falla la preparación del repositorio cuando el repositorio es el que la sesión empuja resultados a. Para un repositorio que la sesión solo lee, [Troubleshooting](#troubleshooting) cubre cuándo el runner lo omite en su lugar. El runner no pasa estas configuraciones al entorno de la sesión.171Si su host de git rechaza la credencial, o no configuró una, el runner reintenta algunas veces y luego falla la preparación del repositorio cuando el repositorio es el que la sesión empuja resultados a. Para un repositorio que la sesión solo lee, [Troubleshooting](#troubleshooting) cubre cuándo el runner lo omite en su lugar. El runner no pasa estas configuraciones al entorno de la sesión.

172 172 

173Mantenga cualquier programa que nombre en `GIT_SSH_COMMAND` o `GIT_ASKPASS` donde las sesiones no puedan escribir en él, de la manera que la [lista de verificación de endurecimiento](#harden-your-deployment) pide para el directorio de hooks y el script de envoltura. Lo mismo aplica para cualquier clave o archivo en la línea de comando de ese programa. El propio git del runner ejecuta ese programa cuando clona u obtiene.

174 

173Si los directorios de checkout son propiedad de un uid diferente al del proceso del runner, git se niega a operar en ellos; agregue `safe.directory`:175Si los directorios de checkout son propiedad de un uid diferente al del proceso del runner, git se niega a operar en ellos; agregue `safe.directory`:

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185El proxy requiere `--capacity 1` porque la URL del proxy es por sesión, y git 2.32 o más reciente porque git más antiguo ignora el mecanismo de configuración que el proxy usa para aislar sesiones entre sí. El runner se niega a iniciar si alguno de los requisitos no se cumple. Porque el proxy obtiene del lado de Anthropic, su host de git debe ser alcanzable desde la infraestructura de Anthropic, el mismo requisito que tienen las sesiones alojadas por Anthropic; para un host de git que solo es enrutable dentro de su red, use un [hook de ciclo de vida `checkout`](/docs/es/self-hosted-environments-configuration#checkout) en su lugar. Cada proceso de runner maneja una sesión a la vez, así que ejecute más réplicas para paralelismo. Cuando el proxy está habilitado, `--git-host-rewrite` y `--git-ssh-rewrite` no tienen efecto: la URL del proxy apunta a `api.anthropic.com`, no a su host de git.187El proxy requiere `--capacity 1` porque la URL del proxy es por sesión, y git 2.32 o más reciente porque git más antiguo ignora el mecanismo de configuración que el proxy usa para aislar sesiones entre sí. El runner se niega a iniciar si alguno de los requisitos no se cumple. Porque el proxy obtiene del lado de Anthropic, su host de git debe ser alcanzable desde la infraestructura de Anthropic, el mismo requisito que tienen las sesiones alojadas por Anthropic; para un host de git que solo es enrutable dentro de su red, use un [hook de ciclo de vida `checkout`](/docs/es/self-hosted-environments-configuration#checkout) en su lugar. Cada proceso de runner maneja una sesión a la vez, así que ejecute más réplicas para paralelismo. Cuando el proxy está habilitado, `--git-host-rewrite` y `--git-ssh-rewrite` no tienen efecto: la URL del proxy apunta a `api.anthropic.com`, no a su host de git.

186 188 

189<Warning>

190 Las [recetas de Kubernetes](#kubernetes) y [Docker Compose](#docker-compose) en esta página usan `--capacity 4`. Si agrega `--use-anthropic-git-proxy` o `CLAUDE_RUNNER_USE_GIT_PROXY=1` a una de ellas sin cambiar la capacidad a `1`, el runner sale al inicio cada vez que su orquestador lo reinicia. Establezca `--capacity 1` y ejecute más réplicas para paralelismo. [Cuando el runner sale](#when-the-runner-exits) muestra la línea que imprime el runner.

191</Warning>

192 

187El runner también reporta la opción de participación a Anthropic cuando se registra, imprimiendo `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` al inicio. Reportar la opción de participación requiere Claude Code v2.1.267 o posterior, y versiones anteriores aceptan la bandera sin reportarla o imprimir esa línea. Cada sesión en un runner que ha optado por participar luego usa git gestionado por Anthropic o la URL del proxy por sesión. Cuando una sesión usa la URL del proxy por sesión, el runner registra una línea `[runner:warn]` diciendo así.193El runner también reporta la opción de participación a Anthropic cuando se registra, imprimiendo `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` al inicio. Reportar la opción de participación requiere Claude Code v2.1.267 o posterior, y versiones anteriores aceptan la bandera sin reportarla o imprimir esa línea. Cada sesión en un runner que ha optado por participar luego usa git gestionado por Anthropic o la URL del proxy por sesión. Cuando una sesión usa la URL del proxy por sesión, el runner registra una línea `[runner:warn]` diciendo así.

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 Confíe en una autoridad de certificados privada con git gestionado por Anthropic

197</h4>

198 

199Esta sección aplica si establece `GIT_SSL_CAINFO` o `GIT_SSL_NO_VERIFY` en el entorno de un runner cuyas sesiones usan git gestionado por Anthropic. El manejo que describe requiere que el runner ejecute Claude Code v2.1.283 o posterior.

200 

201Cuando git en el runner debe confiar en una autoridad de certificados privada (CA), como la que firma un proxy de inspección TLS, los enfoques habituales funcionan de la siguiente manera:

202 

203* **Almacén de certificados del sistema**: instale su CA en el almacén de certificados del sistema del host del runner, y git confía en él sin ninguna variable.

204* **`GIT_SSL_CAINFO`**: establézcalo en un archivo PEM de sus CAs, por ejemplo `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`.

205* **`GIT_SSL_NO_VERIFY`**: no ayuda detrás de un proxy de re-firma. El clon propio del runner a través de git gestionado por Anthropic verifica certificados incluso cuando la variable está establecida, así que ese clon falla hasta que git confía en su CA a través de uno de los otros dos enfoques.

206 

207Para conexiones de git que llevan el token de una sesión a git gestionado por Anthropic, el runner aplica las dos variables de la siguiente manera. Un [hook `command`](/docs/es/self-hosted-environments-configuration#command) comienza con el entorno de la sesión, así que obtiene lo que git dentro de la sesión obtiene:

208 

209* **`GIT_SSL_CAINFO`**: lo que git verifica contra git gestionado por Anthropic depende de dónde se ejecute git:

210 * **Clon y obtenciones propios del runner**: se ejecutan sin la variable y verifican git gestionado por Anthropic contra un archivo de certificado por sesión que el runner escribe. Ese archivo contiene el paquete de CA del sistema del host del runner más los certificados de su archivo.

211 * **Git dentro de la sesión**: obtiene configuración `http.sslCAInfo` nombrando su archivo en lugar de la variable, más entradas `http.<url>.sslCAInfo` que verifican git gestionado por Anthropic contra el archivo por sesión.

212 * **Hooks `checkout` y `post-session`**: heredan la variable sin cambios.

213* **`GIT_SSL_NO_VERIFY`**: qué verificaciones de certificado permanecen desactivadas depende de dónde se ejecute git:

214 * **Clon y obtenciones propios del runner**: se ejecutan sin la variable y verifican el certificado que se les presenta.

215 * **Git dentro de la sesión**: obtiene configuración `http.sslVerify=false` en lugar de la variable, así que las verificaciones permanecen desactivadas para otros hosts. También obtiene entradas `http.<url>.sslVerify=true` que mantienen las verificaciones activadas para git gestionado por Anthropic.

216 * **Hooks `checkout` y `post-session`**: cuando la sesión tiene un repositorio en git gestionado por Anthropic, obtienen configuración `http.sslVerify=false` en lugar de la variable. También obtienen entradas `http.<url>.sslVerify=true` que mantienen las verificaciones activadas para git gestionado por Anthropic.

217 

218El archivo de certificado por sesión necesita un paquete de CA del sistema en `/etc/ssl/certs/ca-certificates.crt` o `/etc/pki/tls/certs/ca-bundle.crt` en el host del runner. También necesita un archivo `GIT_SSL_CAINFO` que el usuario del runner pueda leer, que contenga bloques `CERTIFICATE` PEM, y que tenga como máximo 1 MiB. Cuando el runner no puede construir el archivo por sesión, registra una línea `[runner:warn]` que contiene `did not build the certificate file` y la razón. Git luego usa su archivo tal como es para git gestionado por Anthropic. Corrija lo que la línea nombra.

219 

220Para cada sesión que usa git gestionado por Anthropic, el runner también registra una línea `[runner:warn]` que comienza con `governed git: GIT_SSL_CAINFO is set` o `governed git: GIT_SSL_NO_VERIFY is set`. La línea dice qué hizo el runner con esa variable para su propio git, para git dentro de la sesión, y para sus hooks de ciclo de vida. Termina con si necesita cambiar algo.

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 Reescriba URLs de git para redes privadas223 Reescriba URLs de git para redes privadas

191</h3>224</h3>


203 236 

204Anthropic no publica una imagen de runner precompilada. Construya la suya alrededor del binario `claude`, agregando cualquier cadena de herramientas que sus repositorios necesiten: tiempos de ejecución de lenguaje, compiladores, gestores de paquetes, y sidecars de [MCP](/docs/es/mcp).237Anthropic no publica una imagen de runner precompilada. Construya la suya alrededor del binario `claude`, agregando cualquier cadena de herramientas que sus repositorios necesiten: tiempos de ejecución de lenguaje, compiladores, gestores de paquetes, y sidecars de [MCP](/docs/es/mcp).

205 238 

206Las recetas a continuación usan `--capacity 4`, por lo que un contenedor sirve hasta cuatro sesiones concurrentes del mismo propietario bloqueado. Eso no proporciona el aislamiento del contenedor por sesión en la [sección de endurecimiento](#harden-your-deployment): antes de conectar un entorno a sistemas de producción, ejecute las recetas en `--capacity 1` con un contenedor por sesión, o use [runners bajo demanda](/docs/es/self-hosted-environments-configuration#on-demand-runners), que también mantienen el secreto del entorno fuera de los hosts que ejecutan sesiones.239Las recetas a continuación usan `--capacity 4`, por lo que un contenedor sirve hasta cuatro sesiones concurrentes del mismo propietario bloqueado. Eso no proporciona el aislamiento del contenedor por sesión en la [sección de endurecimiento](#harden-your-deployment): antes de conectar un entorno a sistemas de producción, ejecute las recetas en `--capacity 1` con un contenedor por sesión, o use [runners bajo demanda](/docs/es/self-hosted-environments-configuration#on-demand-runners), que también mantienen el secreto del entorno fuera de los hosts que ejecutan sesiones. Si agrega el [proxy de git de Anthropic](#use-the-anthropic-git-proxy) a una de estas recetas, también cambie `--capacity` a `1`.

207 240 

208Este Dockerfile es un punto de partida mínimo:241Este Dockerfile es un punto de partida mínimo:

209 242 


338 371 

339El servicio Compose a continuación reinicia el runner siempre que sale, lo que cubre tanto bloqueos como la salida normal después del drenaje. Una política de reinicio de Docker reinicia el mismo contenedor con su capa escribible intacta, por lo que el runner regresa en un sistema de archivos reutilizado en lugar del nuevo que la [postura de endurecimiento](#harden-your-deployment) recomienda; use esta receta para evaluación, y para producción recrear el contenedor por ejecución o use un orquestador que lo haga.372El servicio Compose a continuación reinicia el runner siempre que sale, lo que cubre tanto bloqueos como la salida normal después del drenaje. Una política de reinicio de Docker reinicia el mismo contenedor con su capa escribible intacta, por lo que el runner regresa en un sistema de archivos reutilizado en lugar del nuevo que la [postura de endurecimiento](#harden-your-deployment) recomienda; use esta receta para evaluación, y para producción recrear el contenedor por ejecución o use un orquestador que lo haga.

340 373 

374Docker espera más tiempo antes de cada reinicio de un contenedor que sigue saliendo, hasta un límite máximo, por lo que un runner que no puede iniciarse no sigue reiniciándose en un bucle cerrado bajo esta receta. [Cuando el runner sale](#when-the-runner-exits) describe qué verificar cuando eso sucede.

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452El proceso hijo de Claude Code de cada sesión ejecuta el binario propio del runner, y el runner desactiva la actualización automática dentro de las sesiones que genera, por lo que cada sesión ejecuta la versión que instaló en el host o construyó en la imagen. Una actualización a nivel de host entra en vigor la próxima vez que el runner comienza.487El proceso hijo de Claude Code de cada sesión ejecuta el binario propio del runner, y el runner desactiva la actualización automática dentro de las sesiones que genera, por lo que cada sesión ejecuta la versión que instaló en el host o construyó en la imagen. Una actualización a nivel de host entra en vigor la próxima vez que el runner comienza.

453 488 

489Un modelo que sus sesiones utilizan puede requerir una versión más reciente de Claude Code que la que ejecutan. El servidor rechaza las solicitudes para ese modelo con [Claude Code no admite este modelo](/docs/es/errors#claude-code-does-not-support-this-model). Antes de fijar una versión, compruebe [las versiones de Claude Code que los modelos requieren](/docs/es/model-config#available-models) para cada modelo que sus sesiones utilizan.

490 

454* **Para mantener una flota en una versión**: construya la imagen con una versión fijada, o en un host desnudo instale una versión específica y [desactive las actualizaciones automáticas](/docs/es/setup#disable-auto-updates)491* **Para mantener una flota en una versión**: construya la imagen con una versión fijada, o en un host desnudo instale una versión específica y [desactive las actualizaciones automáticas](/docs/es/setup#disable-auto-updates)

455* **Para actualizar**: instale la versión más reciente o reconstruya la imagen, luego reinicie los runners492* **Para actualizar**: instale la versión más reciente o reconstruya la imagen, luego reinicie los runners

456* **Plugins**: los mercados de plugins tampoco se actualizan automáticamente; establezca `FORCE_AUTOUPDATE_PLUGINS=1` en el entorno del runner para permitir que los plugins se actualicen automáticamente mientras el binario permanece fijado493* **Plugins**: los mercados de plugins tampoco se actualizan automáticamente; establezca `FORCE_AUTOUPDATE_PLUGINS=1` en el entorno del runner para permitir que los plugins se actualicen automáticamente mientras el binario permanece fijado


554 591 

555Cada proceso secundario de sesión escribe un registro de depuración separado. En caso de fallo, el runner expone la cola del registro junto con la sesión en claude.ai/code. A menos que haya iniciado el runner con [`--remove-session-state`](/docs/es/self-hosted-environments-reference#runner-cli-flags), también mantiene el registro de una sesión fallida en el disco e imprime su ruta en el registro del runner.592Cada proceso secundario de sesión escribe un registro de depuración separado. En caso de fallo, el runner expone la cola del registro junto con la sesión en claude.ai/code. A menos que haya iniciado el runner con [`--remove-session-state`](/docs/es/self-hosted-environments-reference#runner-cli-flags), también mantiene el registro de una sesión fallida en el disco e imprime su ruta en el registro del runner.

556 593 

594<h3 id="when-the-runner-exits">

595 Cuando el runner se cierra

596</h3>

597 

598No reinicie un [runner bajo demanda](/docs/es/self-hosted-environments-configuration#on-demand-runners), porque su orden de trabajo es de un solo uso. Un runner que se cierra justo después de que comienza necesita un manejo diferente al de uno que se cierra por cualquier otra razón.

599 

600* **Una salida normal**: el runner terminó sus sesiones y se drenó, alcanzó su tiempo de jubilación, o se le indicó que se detuviera. Reinícielo para que el entorno tenga capacidad nuevamente. [Runner lifecycle](/docs/es/self-hosted-environments#runner-lifecycle) describe estas salidas.

601* **Un inicio fallido**: el runner no puede iniciarse con la configuración o el host que se le proporcionó, por lo que se cierra segundos después de que comienza, y se cierra de la misma manera cada vez que lo reinicia. Reiniciarlo más rápido no ayuda. Alguien necesita leer su salida y corregir la causa.

602 

603Configure su supervisor para reiniciar el runner cada vez que se cierre, para esperar más tiempo entre reinicios cuando el runner sigue cerrándose justo después de que comienza, y para notificar a alguien cuando eso sigue sucediendo.

604 

605<h4 id="recognize-a-failed-start">

606 Reconocer un inicio fallido

607</h4>

608 

609Cuando el runner no puede iniciarse, imprime una línea que dice por qué, y luego se cierra. Para la mayoría de las causas, la línea contiene `[runner:fatal]`. Para algunas causas, la línea comienza con `error:` en su lugar, incluido cuando el runner no puede analizar sus banderas, no puede leer el secreto del entorno, o no puede crear ni escribir en el directorio base. La siguiente línea luego apunta a `--help`.

610 

611La mayoría de las líneas de registro comienzan con una marca de tiempo y `[self-hosted-runner]`, que la muestra a continuación omite. Por ejemplo, un runner iniciado con el proxy de git de Anthropic y una capacidad superior a uno imprime una línea como esta:

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617Busque la línea en la salida estándar y el error estándar del runner, en los registros del contenedor de su plataforma, o en el archivo que estableció con [`--log-file`](/docs/es/self-hosted-environments-reference#runner-cli-flags). El runner imprime una línea `error:` antes de abrir el archivo de registro, así que búsquela en la terminal o en los registros del contenedor, como [Solución de problemas](#troubleshooting) señala.

618 

619Estos también ayudan cuando lee un inicio fallido:

620 

621* **Sin línea en absoluto**: un runner que el host mata no imprime ninguno. Si la salida termina sin línea `[runner:fatal]` y sin línea `error:`, verifique si el host u su orquestador detuvo el proceso, por ejemplo por exceder un límite de memoria.

622* **El código de salida**: el runner no reserva un código de salida para errores que se repiten en cada inicio. Se cierra con el mismo código para un error de configuración, como una combinación no compatible de banderas, y para una falla que puede aclararse por sí sola, como que la API permanezca inalcanzable a través de los propios reintentos del runner. Base la decisión de esperar más tiempo en qué tan pronto se cerró el runner, y lea la salida del runner para aprender por qué.

623* **Un entorno que se ve saludable**: algunos pasos de inicio se ejecutan después de que el runner se registra con su entorno, como [`--configure-git`](#let-the-runner-configure-git) y la configuración de credenciales del proxy de git de Anthropic. Si uno de esos pasos falla, el entorno puede seguir listando ese runner durante algunos minutos después de que el proceso haya salido, y la página **Cloud environments** puede leer **Healthy** mientras ningún runner está recogiendo trabajo. Si las sesiones permanecen en cola en un entorno que se ve saludable, verifique si su supervisor está reiniciando el runner.

624 

625<h4 id="restart-with-a-wait-that-grows">

626 Reiniciar con una espera que crece

627</h4>

628 

629Cómo obtener una espera creciente depende de su supervisor.

630 

631* **Kubernetes**: el [Deployment](#kubernetes) en esta página no necesita cambios. Después de que un contenedor se cierra, el kubelet por defecto espera antes de reiniciar el contenedor, y la espera crece en cada reinicio hasta un techo. La espera comienza de nuevo una vez que el contenedor ha estado ejecutándose durante un tiempo sin cerrarse.

632 

633 El kubelet aplica la misma espera después de una salida normal cuando el contenedor se ejecutó solo brevemente. Un runner que se drena a menudo puede por lo tanto mostrar el estado `CrashLoopBackOff` también, así que lea la salida antes de concluir que el runner no puede iniciarse. El comando a continuación lee la salida de la última ejecución de un pod del Deployment:

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 Cuando la última ejecución fue un inicio fallido, la línea `[runner:fatal]` o `error:` está entre las últimas líneas de la salida. Para leer la última ejecución de otro pod, nombre ese pod en lugar de `deploy/claude-runner`.

640* **Docker y Docker Compose**: la [receta Compose](#docker-compose) en esta página no necesita cambios. Con `restart: always`, Docker espera más tiempo antes de cada reinicio de un contenedor que sigue cerrándose, hasta un techo. Reemplace `<container>` con el nombre del contenedor en el comando a continuación, que lee cuántas veces Docker ha reiniciado el contenedor:

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 El comando imprime un número. Un número que sigue aumentando significa que Docker sigue reiniciando el runner.

647* **Una unidad systemd**: por defecto systemd espera el mismo `RestartSec` antes de cada reinicio y no lo alarga, así que una unidad con `Restart=always` reinicia un runner que no puede iniciarse en ese mismo intervalo cada vez. Cuando los inicios vienen lo suficientemente rápido como para alcanzar el límite de velocidad de inicio de la unidad, cinco inicios en 10 segundos por defecto, systemd deja de reiniciar la unidad. La unidad permanece detenida hasta que alguien la inicie de nuevo, lo que systemd permite una vez que el intervalo del límite de velocidad ha pasado o después de `systemctl reset-failed`. Porque `RestartSec` se aplica a cada reinicio, un valor más largo también retrasa el reinicio después de una salida normal. Elija un valor que equilibre los dos, y alerte sobre el recuento de reinicio de la unidad.

648* **Un bucle de shell o su propio supervisor**: aplique la misma regla usted mismo. Comience con una espera de cinco segundos. Después de cada ejecución que terminó dentro de un minuto, duplique la espera para el siguiente reinicio, hasta cinco minutos. Después de una ejecución que duró un minuto o más, vuelva a cinco segundos.

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 Verificar por qué el runner sigue cerrándose

652</h4>

653 

654Cuando el runner ha salido justo después de comenzar varias veces seguidas, deténgase y verifique estos antes de reiniciarlo de nuevo.

655 

656* **La última línea `[runner:fatal]` o `error:`**: dice por qué se detuvo el runner. [Solución de problemas](#troubleshooting) enumera las causas comunes.

657* **La combinación de banderas**: el [proxy de git de Anthropic](#use-the-anthropic-git-proxy) requiere `--capacity 1`. Las recetas en esta página usan una capacidad más alta, así que bájela cuando agregue el proxy a una de ellas.

658* **Lo que el servicio de su entorno puede alcanzar**: si el runner comienza a mano y falla bajo su supervisor, compare el usuario, el directorio de inicio, el `PATH`, y el límite de memoria. `--configure-git` y el proxy de git de Anthropic necesitan git en el `PATH` y un `~/.gitconfig` escribible.

659* **El secreto del entorno**: si revocó el secreto o lo escribió mal, el runner imprime una línea que contiene `RegisterRunner auth failed`.

660* **La pestaña Activity del entorno**: abra el entorno y seleccione **Activity**. Si nuevos runners siguen apareciendo allí y ninguno recoge trabajo, su supervisor está reiniciando el runner.

661 

662Para un diagnóstico guiado en el host del runner, ejecute el [subcomando doctor](#troubleshooting).

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 Qué sigue665 Qué sigue

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108El runner sale por diseño una vez que sus sesiones activas terminan; consulte [Runner lifecycle](/docs/es/self-hosted-environments#runner-lifecycle). Para producción, implántelo bajo un orquestador que lo reinicie al salir. Consulte [Implementar en producción](/docs/es/self-hosted-environments-deploy).108El runner sale por diseño una vez que sus sesiones activas terminan; consulte [Runner lifecycle](/docs/es/self-hosted-environments#runner-lifecycle). Para producción, implántelo bajo un orquestador que lo reinicie al salir y espere más tiempo entre reinicios cuando el runner siga saliendo justo después de que inicia. Consulte [Implementar en producción](/docs/es/self-hosted-environments-deploy) y [Cuando el runner sale](/docs/es/self-hosted-environments-deploy#when-the-runner-exits).

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 Enviar un mensaje de seguimiento a una sesión en ejecución111 Enviar un mensaje de seguimiento a una sesión en ejecución

Details

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 |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 decida hacerlo | Remoto, escritorio y notificaciones | 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 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 | Managed |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| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | Permita que el servidor [Claude en Chrome](/docs/es/chrome) integrado se ejecute 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 | Managed |599| [`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 | Any file |600| [`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 | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | Lista de permitidos de qué [servidores MCP](/docs/es/mcp) pueden agregar los usuarios | MCP | Any file |


3064</h4>3065</h4>

3065 3066 

3066* Un valor aquí sobrescribe la misma variable exportada en su shell, y cuando más de un archivo de configuración establece una variable, se aplica la [más alta precedencia](/docs/es/settings#settings-precedence). [Variables que Claude Code ignora en `env`](#variables-claude-code-ignores-in-env) enumera las excepciones para la configuración del proyecto y local.3067* Un valor aquí sobrescribe la misma variable exportada en su shell, y cuando más de un archivo de configuración establece una variable, se aplica la [más alta precedencia](/docs/es/settings#settings-precedence). [Variables que Claude Code ignora en `env`](#variables-claude-code-ignores-in-env) enumera las excepciones para la configuración del proyecto y local.

3068* Cuando la aplicación Claude Desktop o un [entorno autohospedado](/docs/es/self-hosted-environments) inicia la sesión, el entorno de lanzamiento que construye tiene prioridad en su lugar: Claude Code ignora un valor de `env` de cualquier archivo de configuración para una variable que el entorno de lanzamiento ya establece. El [registro de depuración](/docs/es/debug-your-config) nombra cada variable ignorada.

3067* Para cancelar una exportación de shell, establezca la variable en `""`. Claude Code trata un valor vacío como sin establecer para la selección de proveedor, y los subprocesos heredan el valor vacío.3069* Para cancelar una exportación de shell, establezca la variable en `""`. Claude Code trata un valor vacío como sin establecer para la selección de proveedor, y los subprocesos heredan el valor vacío.

3068* `NO_COLOR` y `FORCE_COLOR` establecidos aquí llegan solo a los subprocesos. Para cambiar los colores de la interfaz propia de Claude Code, establézcalos en su shell antes de lanzar `claude`.3070* `NO_COLOR` y `FORCE_COLOR` establecidos aquí llegan solo a los subprocesos. Para cambiar los colores de la interfaz propia de Claude Code, establézcalos en su shell antes de lanzar `claude`.

3069* Los valores aquí son texto sin formato en el archivo de configuración y llegan a cada subproceso que Claude Code inicia. Para un token portador OTLP que rota, use [`otelHeadersHelper`](#otelheadershelper); para credenciales de API, use [`apiKeyHelper`](#apikeyhelper).3071* Los valores aquí son texto sin formato en el archivo de configuración y llegan a cada subproceso que Claude Code inicia. Para un token portador OTLP que rota, use [`otelHeadersHelper`](#otelheadershelper); para credenciales de API, use [`apiKeyHelper`](#apikeyhelper).


5156 5158 

5157[`allowedMcpServers`](#allowedmcpservers) y [`deniedMcpServers`](#deniedmcpservers) aún se aplican a los conectores que esta clave carga. Los conectores entregados a una [sesión en la nube](/docs/es/claude-code-on-the-web) cuyo host lleva un `managed-mcp.json`, como un ejecutor autohospedado, permanecen suprimidos. Consulte [Permitir conectores de claude.ai junto con el conjunto administrado](/docs/es/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).5159[`allowedMcpServers`](#allowedmcpservers) y [`deniedMcpServers`](#deniedmcpservers) aún se aplican a los conectores que esta clave carga. Los conectores entregados a una [sesión en la nube](/docs/es/claude-code-on-the-web) cuyo host lleva un `managed-mcp.json`, como un ejecutor autohospedado, permanecen suprimidos. Consulte [Permitir conectores de claude.ai junto con el conjunto administrado](/docs/es/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).

5158 5160 

5161<h3 id="allowclaudeinchromewithmanagedmcp">

5162 `allowClaudeInChromeWithManagedMcp`

5163</h3>

5164 

5165Permita que el servidor integrado [Claude en Chrome](/docs/es/chrome) se ejecute junto con un `managed-mcp.json` implementado. Sin esta clave, un `managed-mcp.json` implementado bloquea Claude en Chrome en sesiones de terminal. Requiere Claude Code v2.1.282 o posterior.

5166 

5167* **Scope**: [`Managed`](#scopes), solo desde la configuración administrada del dispositivo: un plist implementado por MDM o una clave de registro HKLM, o un archivo `managed-settings.json` del sistema. Claude Code lo ignora en la configuración administrada del servidor, en el registro HKCU que se puede escribir por el usuario y en la configuración de usuario o proyecto.

5168* **Type**: Boolean

5169 * `true`: el servidor integrado Claude en Chrome puede ejecutarse junto con un `managed-mcp.json` implementado

5170 * `false`: un `managed-mcp.json` implementado bloquea Claude en Chrome en sesiones de terminal

5171* **Default**: `false`, por lo que un `managed-mcp.json` implementado bloquea Claude en Chrome en sesiones de terminal

5172 

5173```json managed-settings.json theme={null}

5174{

5175 "allowClaudeInChromeWithManagedMcp": true

5176}

5177```

5178 

5179Una entrada [`deniedMcpServers`](#deniedmcpservers) para `claude-in-chrome` aún bloquea el servidor con esta clave activada. Consulte [Permitir Claude en Chrome junto con el conjunto administrado](/docs/es/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set).

5180 

5159<h3 id="allowedmcpservers">5181<h3 id="allowedmcpservers">

5160 `allowedMcpServers`5182 `allowedMcpServers`

5161</h3>5183</h3>

5162 5184 

5163Cree una lista de permitidos de los servidores MCP que las personas pueden agregar. Claude Code bloquea cualquier servidor que no coincida con una entrada dondequiera que esté definido, incluidos servidores de complementos, servidores pasados con `--mcp-config` y servidores de claude.ai.5185Cree una lista de permitidos de los servidores MCP que las personas pueden agregar. Claude Code bloquea cualquier servidor que no coincida con una entrada dondequiera que esté definido, incluidos servidores de complementos, servidores pasados con `--mcp-config` y servidores de claude.ai.

5164 5186 

5165Los servidores integrados como Claude en Chrome, el servidor `ide` al que Claude Code se conecta en un IDE [VS Code](/docs/es/vs-code#the-built-in-ide-mcp-server) o [JetBrains](/docs/es/jetbrains#the-built-in-ide-mcp-server) en ejecución, y los servidores que la CLI misma configura están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. Los servidores `type: "sdk"` en proceso están exentos de ambas listas; la [aplicación que inició la sesión](/docs/es/mcp#how-connectors-reach-claude-code) los registra.5187Los servidores integrados como Claude en Chrome, el servidor `ide` al que Claude Code se conecta en un IDE [VS Code](/docs/es/vs-code#the-built-in-ide-mcp-server) o [JetBrains](/docs/es/jetbrains#the-built-in-ide-mcp-server) en ejecución, y los servidores que la CLI misma configura están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. En Claude Code v2.1.268 o posterior, las herramientas de Slack de una sesión [Claude Tag](/docs/es/claude-tag) también están exentas de la lista de permitidos, y la lista de denegados aún se aplica a ellas. Los servidores `type: "sdk"` en proceso están exentos de ambas listas; la [aplicación que inició la sesión](/docs/es/mcp#how-connectors-reach-claude-code) los registra.

5166 5188 

5167Los servidores que su organización entrega también están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. La exención cubre cada entrada [`managedMcpServers`](#managedmcpservers) y cualquier entrada [`managed-mcp.json`](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) cuyos valores no usen expansión `${VAR}`. Consulte [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated) para el orden de verificación completo. Antes de v2.1.259, los servidores de `managed-mcp.json` también tenían que coincidir.5189Los servidores que su organización entrega también están exentos de la lista de permitidos, y la lista de denegados aún se aplica a ellos. La exención cubre cada entrada [`managedMcpServers`](#managedmcpservers) y cualquier entrada [`managed-mcp.json`](/docs/es/managed-mcp#exclusive-control-with-managed-mcp-json) cuyos valores no usen expansión `${VAR}`. Consulte [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated) para el orden de verificación completo. Antes de v2.1.259, los servidores de `managed-mcp.json` también tenían que coincidir.

5168 5190 


6303 `disableSideloadFlags`6325 `disableSideloadFlags`

6304</h3>6326</h3>

6305 6327 

6306Rechaza 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.6328Rechaza 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 inicia la sesión y descarta todas las entradas `--mcp-config` entregadas por el servidor excepto las entradas `type: "sdk"` en proceso y las herramientas de Slack de una sesión [Claude Tag](/docs/es/claude-tag). Requiere Claude Code v2.1.193 o posterior.

6307 6329 

6308* **Alcance**: [`Managed`](#scopes)6330* **Alcance**: [`Managed`](#scopes)

6309* **Tipo**: Booleano6331* **Tipo**: Booleano

6310 * `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ón6332 * `true`: Claude Code rechaza `--plugin-dir`, `--plugin-url`, `--agents` y `--mcp-config` al iniciar y sale con un error que los nombra. En sesiones en la nube, inicia la sesión y descarta todas las entradas `--mcp-config` entregadas por el servidor excepto las entradas `type: "sdk"` en proceso y las herramientas de Slack de una sesión Claude Tag

6311 * `false`: Claude Code acepta esas banderas6333 * `false`: Claude Code acepta esas banderas

6312* **Predeterminado**: `false`6334* **Predeterminado**: `false`

6313 6335 


6321 6343 

6322La 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.6344La 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.

6323 6345 

6324En 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.6346En 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 y las herramientas de Slack de una sesión Claude Tag permanecen exentas allí también. Antes de v2.1.268, tanto este descarte como el descarte de inicio también eliminaban las herramientas de Slack de una sesión Claude Tag. Antes de v2.1.239, un `--mcp-config` entregado por el servidor bloqueaba el inicio de una sesión en la nube.

6325 6347 

6326<h3 id="forceremotesettingsrefresh">6348<h3 id="forceremotesettingsrefresh">

6327 `forceRemoteSettingsRefresh`6349 `forceRemoteSettingsRefresh`

statusline.md +1 −1

Details

1178**El porcentaje de contexto muestra valores inesperados**1178**El porcentaje de contexto muestra valores inesperados**

1179 1179 

1180* Usa `used_percentage` para el estado de contexto más simple y preciso1180* Usa `used_percentage` para el estado de contexto más simple y preciso

1181* El porcentaje de contexto puede diferir de la salida `/context` debido a cuándo se calcula cada uno1181* La línea de estado reporta los conteos de la última respuesta de API, mientras que `/context` agrega una estimación para los mensajes añadidos desde esa respuesta, por lo que `/context` puede leer más alto hasta la siguiente respuesta

1182 1182 

1183**Los enlaces OSC 8 no son clickeables**1183**Los enlaces OSC 8 no son clickeables**

1184 1184 

sub-agents.md +3 −3

Details

802 - matcher: "Bash"802 - matcher: "Bash"

803 hooks:803 hooks:

804 - type: command804 - type: command

805 command: "./scripts/validate-command.sh $TOOL_INPUT"805 command: "./scripts/validate-command.sh"

806 PostToolUse:806 PostToolUse:

807 - matcher: "Edit|Write"807 - matcher: "Edit|Write"

808 hooks:808 hooks:


876 876 

877* **Lenguaje natural**: nombra el subagente en tu indicación; Claude decide si delega877* **Lenguaje natural**: nombra el subagente en tu indicación; Claude decide si delega

878* **@-mention**: garantiza que el subagente se ejecute para una tarea878* **@-mention**: garantiza que el subagente se ejecute para una tarea

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`879* **Sesión completa**: toda la sesión se ejecuta como ese subagente a través de la bandera `--agent` o la configuración `agent`

880 880 

881Para 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:

882 882 


897 897 

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

899 899 

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: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 las restricciones de herramientas y el modelo del subagente:

901 901 

902```bash theme={null}902```bash theme={null}

903claude --agent code-reviewer903claude --agent code-reviewer

Details

122 122 

123 <tr>123 <tr>

124 <td>Facturación</td>124 <td>Facturación</td>

125 <td><strong>Teams:</strong> \$150/puesto (Premium) con PAYG disponible<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Contactar ventas</a></td>125 <td><strong>Teams:</strong> suscripción por puesto con PAYG disponible, consulte <a href="https://claude.com/pricing?utm_source=claude_code&utm_medium=docs&utm_content=third_party_pricing#team-&-enterprise">precios</a><br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Contactar ventas</a></td>

126 <td>PAYG</td>126 <td>PAYG</td>

127 <td>PAYG a través de AWS</td>127 <td>PAYG a través de AWS</td>

128 <td>PAYG a través de AWS Marketplace</td>128 <td>PAYG a través de AWS Marketplace</td>

Details

445 Errores de conexión TLS o SSL445 Errores de conexión TLS o SSL

446</h3>446</h3>

447 447 

448Errores como `curl: (35) TLS connect error`, `schannel: next InitializeSecurityContext failed`, o el `Could not establish trust relationship for the SSL/TLS secure channel` de PowerShell indican fallos de protocolo de enlace TLS.448Errores como estos significan que el protocolo de enlace TLS falló:

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* El `Could not create SSL/TLS secure channel` de PowerShell

453* El `Could not establish trust relationship for the SSL/TLS secure channel` de PowerShell

449 454 

450**Soluciones:**455**Soluciones:**

451 456 

Details

52 El archivo `.heapsnapshot` contiene cada cadena en el proceso, incluyendo su conversación completa y credenciales. No lo adjunte a un problema público ni lo comparta.52 El archivo `.heapsnapshot` contiene cada cadena en el proceso, incluyendo su conversación completa y credenciales. No lo adjunte a un problema público ni lo comparta.

53</Warning>53</Warning>

54 54 

55El comando también imprime un resumen en la conversación, mostrando el tamaño del conjunto residente, montón de JS, búferes de matriz, y memoria nativa no contabilizada, más cualquier indicador de fuga que detecte, como una tasa de crecimiento de memoria alta o un número inusualmente alto de identificadores abiertos. El resumen indica si la mayoría de la memoria está en el montón de JS, que la instantánea captura, o en memoria nativa, que no lo hace.55El comando también imprime un resumen en la conversación, mostrando la memoria total del proceso, cuánta de ella está en el montón de JS, y cuánta se encuentra fuera del montón. El resumen también enumera cualquier indicador de fuga, como una tasa de crecimiento de memoria alta o un número inusualmente alto de identificadores abiertos. El resumen indica si la mayoría de la memoria está en el montón de JS, que la instantánea captura, o en memoria nativa, que no lo hace.

56 56 

57Haga una de dos cosas con la salida:57Haga una de dos cosas con la salida:

58 58 

workflows.md +1 −1

Details

91 Ver la ejecución91 Ver la ejecución

92</h3>92</h3>

93 93 

94Los flujos de trabajo se ejecutan en segundo plano, por lo que la sesión permanece receptiva mientras los agentes trabajan. Ejecute `/workflows` en cualquier momento para enumerar los flujos de trabajo en ejecución y completados, luego seleccione uno para abrir su vista de progreso.94Los flujos de trabajo se ejecutan en segundo plano, por lo que la sesión permanece receptiva mientras los agentes trabajan. Ejecute `/workflows` en cualquier momento para enumerar los flujos de trabajo en ejecución y completados, luego seleccione uno para abrir su vista de progreso. Para detener un flujo de trabajo en ejecución sin abrirlo, selecciónelo en la lista y presione `x`.

95 95 

96La vista de progreso muestra cada fase con sus recuentos de agentes, totales de tokens y tiempo transcurrido. El pie de página enumera la tecla para cada acción:96La vista de progreso muestra cada fase con sus recuentos de agentes, totales de tokens y tiempo transcurrido. El pie de página enumera la tecla para cada acción:

97 97