SpyBara
Go Premium

Documentation 2026-09-21 22:59 UTC to 2026-09-22 23:59 UTC

77 files changed +1,628 −943. View all changes and history on the product overview
2026
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

admin-setup.md +1 −1

Details

167 167 

168* [Quickstart](/docs/es/quickstart): recorrido de primera sesión desde la instalación hasta trabajar con un proyecto168* [Quickstart](/docs/es/quickstart): recorrido de primera sesión desde la instalación hasta trabajar con un proyecto

169* [Common workflows](/docs/es/common-workflows): patrones para tareas cotidianas como revisión de código, refactorización y depuración169* [Common workflows](/docs/es/common-workflows): patrones para tareas cotidianas como revisión de código, refactorización y depuración

170* [Claude 101](https://anthropic.skilljar.com/claude-101) y [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action): cursos de Anthropic Academy a su propio ritmo170* [Claude Code 101](https://academy.claude.com/courses/claude-code-101) y [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action): cursos gratuitos a su propio ritmo en [Claude Academy](https://academy.claude.com/)

171 171 

172Para problemas de inicio de sesión, dirija a los desarrolladores a [solución de problemas de autenticación](/docs/es/troubleshoot-install#login-and-authentication). Las correcciones más comunes son:172Para problemas de inicio de sesión, dirija a los desarrolladores a [solución de problemas de autenticación](/docs/es/troubleshoot-install#login-and-authentication). Las correcciones más comunes son:

173 173 

advisor.md +8 −8

Details

56* Ejecute `/advisor` con un modelo, como `/advisor opus`, para establecerlo.56* Ejecute `/advisor` con un modelo, como `/advisor opus`, para establecerlo.

57* Ejecute `/advisor off` para desactivarlo.57* Ejecute `/advisor off` para desactivarlo.

58 58 

59Claude Code no invoca un advisor guardado que la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de su organización excluya. Para usar el advisor, seleccione un modelo permitido con `/advisor`. Claude Code aún guarda un advisor que su modelo principal actual no admite. Ese advisor se activa después de que cambie a un [modelo principal compatible](#choose-an-advisor-model) con [`/model`](/docs/es/model-config#setting-your-model).59Claude Code no invoca un advisor guardado que la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de su organización excluya. Para usar el advisor, seleccione un modelo permitido con `/advisor`. Claude Code aún guarda un advisor que su modelo principal actual no admite. Ese advisor se activa después de que cambie a un [modelo principal compatible](#choose-an-advisor-model) con [`/model`](/docs/es/model-config#setting-your-model). Si la API ya rechazó el advisor guardado en la conversación actual, permanece desactivado hasta `/clear` o `/compact`, incluso después de cambiar modelos.

60 60 

61En algunos planes, Fable como advisor también necesita su [consentimiento único para facturar el uso de Fable a créditos de uso](/docs/es/model-config#fable-and-usage-credits). Para saber qué hace `/advisor fable` antes de que haya dado ese consentimiento, vea [Advisor de Fable y créditos de uso](#fable-advisor-and-usage-credits).61En algunos planes, Fable como advisor también necesita su [consentimiento único para facturar el uso de Fable a créditos de uso](/docs/es/model-config#fable-and-usage-credits). Para saber qué hace `/advisor fable` antes de que haya dado ese consentimiento, vea [Advisor de Fable y créditos de uso](#fable-advisor-and-usage-credits).

62 62 


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

99 99 

100| Modelo principal | Advisors aceptados | Notas |100| Modelo principal | Advisors aceptados | Notas |

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

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

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

104| Sonnet 5 | Fable, Opus 4.7 o posterior, Sonnet 5 | Un advisor Sonnet 4.6 se rechaza, y las solicitudes con un advisor Opus 4.6 fallan con un error de API |104| Sonnet 5 | Fable, Opus 4.7 o posterior, Sonnet 5 | Un advisor Sonnet 4.6 se rechaza, y la API rechaza un advisor Opus 4.6 |

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

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

107| Opus 5 | Fable, Opus 5 | Un advisor Opus 4.6 o Sonnet se rechaza, y las solicitudes con un advisor Opus 4.7 u Opus 4.8 fallan con un error de API |107| Opus 5.5 u Opus 5 | Fable, y Opus 5 o posterior | Un advisor Opus 4.6 o Sonnet se rechaza, y la API rechaza un advisor Opus 4.7 u Opus 4.8 |

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

109| Fable 5.1 | Fable 5.1 | Un advisor Opus o Sonnet se rechaza, y las solicitudes con un advisor Fable 5 fallan con un error de API |109| Fable 5.1 | Fable 5.1 | Un advisor Opus o Sonnet se rechaza, y la API rechaza un advisor Fable 5 |

110 110 

111Fable 5.1 requiere Claude Code v2.1.257 o posterior. Ambos modelos Fable requieren [acceso a Fable](/docs/es/model-config#work-with-fable).111Fable 5.1 requiere Claude Code v2.1.257 o posterior. Ambos modelos Fable requieren [acceso a Fable](/docs/es/model-config#work-with-fable).

112 112 

113Establezca el advisor como `fable`, `opus`, o `sonnet`. Estos alias se resuelven a la versión predeterminada integrada de Claude Code para cada familia de modelos, que avanza con nuevas versiones de Claude Code. También puede pasar un ID de modelo completo como `claude-opus-5`.113Establezca el advisor como `fable`, `opus`, o `sonnet`. Estos alias se resuelven a la versión predeterminada integrada de Claude Code para cada familia de modelos, que avanza con nuevas versiones de Claude Code. También puede pasar un ID de modelo completo como `claude-opus-5-5`.

114 114 

115Los subagentes heredan el advisor configurado y aplican la misma verificación de emparejamiento contra su propio modelo.115Los subagentes heredan el advisor configurado y aplican la misma verificación de emparejamiento contra su propio modelo.

116 116 

117Claude Code valida el emparejamiento antes de enviar una solicitud, y la API lo valida de nuevo:117Claude Code valida el emparejamiento antes de enviar una solicitud, y la API lo valida de nuevo:

118 118 

119* Para un advisor que la tabla lista como rechazado, Claude Code no lo adjunta a las solicitudes del modelo principal. La salida del comando `/advisor` y una notificación muestran esto. Los subagentes cuyo propio modelo satisface el emparejamiento aún pueden usar el advisor.119* Para un advisor que la tabla lista como rechazado, Claude Code no lo adjunta a las solicitudes del modelo principal. La salida del comando `/advisor` y una notificación muestran esto. Los subagentes cuyo propio modelo satisface el emparejamiento aún pueden usar el advisor.

120* Para un advisor que la tabla lista como fallando con un error de API, Claude Code lo adjunta y la API lo rechaza. Cada solicitud falla con `'<modelo advisor>' no puede usarse como advisor cuando el modelo de solicitud es '<modelo principal>'` hasta que cambie el advisor con `/advisor` o lo desactive.120* Para un advisor que la tabla lista como rechazado por la API, Claude Code lo adjunta y la API lo rechaza. Claude Code luego reenvía esa solicitud sin el advisor, y el resto de la conversación se ejecuta sin uno, por lo que no ve ningún error y no obtiene llamadas de advisor. Elija un advisor aceptado con `/advisor`; el cambio entra en vigor después de `/clear` o `/compact` y en nuevas sesiones.

121* Si el modelo principal o el advisor es un modelo que Claude Code no reconoce, el advisor no se adjunta.121* Si el modelo principal o el advisor es un modelo que Claude Code no reconoce, el advisor no se adjunta.

122 122 

123<h3 id="fable-advisor-and-usage-credits">123<h3 id="fable-advisor-and-usage-credits">


195 195 

196La herramienta advisor requiere todo lo siguiente:196La herramienta advisor requiere todo lo siguiente:

197 197 

198* **Solo API de Anthropic**: el advisor es una herramienta ejecutada por servidor. No está disponible en Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform o Microsoft Foundry. A través de una [puerta de enlace LLM](/docs/es/llm-gateway) configurada con `ANTHROPIC_BASE_URL`, la disponibilidad depende de si la puerta de enlace reenvía la solicitud intacta a la API de Anthropic.198* **Solo API de Anthropic**: el advisor es una herramienta ejecutada por servidor. No está disponible en Amazon Bedrock, Claude Platform en AWS, Google Cloud's Agent Platform o Microsoft Foundry. A través de una [puerta de enlace LLM](/docs/es/llm-gateway) configurada con `ANTHROPIC_BASE_URL`, la disponibilidad depende de si la puerta de enlace reenvía la solicitud intacta a la API de Anthropic. Si la puerta de enlace o su upstream no reconoce la herramienta advisor, consulte [Reintento automático y reenvío de errores](/docs/es/llm-gateway-protocol#automatic-retry-and-error-forwarding) para ver cómo responde Claude Code.

199* **Modelo principal admitido**: Fable, Opus 4.6 o posterior, Sonnet 4.6 o posterior, o Haiku 4.5. Consulte [Elegir un modelo advisor](#choose-an-advisor-model) para saber qué advisors acepta cada uno.199* **Modelo principal admitido**: Fable, Opus 4.6 o posterior, Sonnet 4.6 o posterior, o Haiku 4.5. Consulte [Elegir un modelo advisor](#choose-an-advisor-model) para saber qué advisors acepta cada uno.

200* **Obtención de indicadores de características**: Claude Code activa el advisor a través de un indicador de características que obtiene de Anthropic. En una sesión donde se establece una variable que desactiva la obtención de indicadores, como `DISABLE_TELEMETRY`, el advisor permanece desactivado. Consulte [Características que necesitan obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching).200* **Obtención de indicadores de características**: Claude Code activa el advisor a través de un indicador de características que obtiene de Anthropic. En una sesión donde se establece una variable que desactiva la obtención de indicadores, como `DISABLE_TELEMETRY`, el advisor permanece desactivado. Consulte [Características que necesitan obtención de indicadores de características](/docs/es/env-vars#features-that-need-feature-flag-fetching).

201 201 

Details

189TypeScript también tiene `applyFlagSettings()` y `updateSettings()`:189TypeScript también tiene `applyFlagSettings()` y `updateSettings()`:

190 190 

191* **`applyFlagSettings()`**: aplica configuración en tiempo de ejecución, como en `await session.applyFlagSettings({ effortLevel: "high" })`. El método toma claves de archivo de configuración en lugar de campos de opciones, así que consulta la [referencia de `applyFlagSettings()`](/docs/es/agent-sdk/typescript#applyflagsettings) para el esquema y para qué claves tienen efecto durante la sesión.191* **`applyFlagSettings()`**: aplica configuración en tiempo de ejecución, como en `await session.applyFlagSettings({ effortLevel: "high" })`. El método toma claves de archivo de configuración en lugar de campos de opciones, así que consulta la [referencia de `applyFlagSettings()`](/docs/es/agent-sdk/typescript#applyflagsettings) para el esquema y para qué claves tienen efecto durante la sesión.

192* **`updateSettings()`**: escribe un conjunto permitido de claves en el archivo de configuración local del proyecto, como en `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`. Las claves escritas tienen efecto en la siguiente solicitud de la sesión y persisten para sesiones posteriores que cargan configuración `local`. La fila del método en la [tabla de métodos](/docs/es/agent-sdk/typescript#methods) nombra las claves permitidas y el piso de versión.192* **`updateSettings()`**: escribe una clave permitida en un archivo de configuración. La [referencia de `updateSettings()`](/docs/es/agent-sdk/typescript#updatesettings) nombra la clave que cada fuente acepta y el piso de versión.

193 * Pasa `"localSettings"` para escribir el archivo de configuración local del proyecto, como en `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`. La clave escrita tiene efecto en la siguiente solicitud de la sesión y persiste para sesiones posteriores que cargan configuración `local`.

194 * Pasa `"userSettings"` para escribir `effortLevel`, la única clave que esa fuente acepta. Claude Code la guarda como el nivel de esfuerzo predeterminado para el modelo actual de la sesión, y el esfuerzo de la sesión en ejecución no cambia.

193 195 

194El ejemplo a continuación ejecuta una sesión de dos turnos, cambia la configuración entre los turnos e imprime el modelo que respondió cada turno. En TypeScript, la transmisión de solicitud mantiene el segundo mensaje hasta que los setters se hayan ejecutado, y el segundo turno se ejecuta en el nuevo modelo.196El ejemplo a continuación ejecuta una sesión de dos turnos, cambia la configuración entre los turnos e imprime el modelo que respondió cada turno. En TypeScript, la transmisión de solicitud mantiene el segundo mensaje hasta que los setters se hayan ejecutado, y el segundo turno se ejecuta en el nuevo modelo.

195 197 

Details

37 37 

38* **Llamada `query()`:** una invocación de la función `query()` del SDK. Una única llamada puede involucrar múltiples pasos: Claude responde, utiliza herramientas, obtiene resultados y responde nuevamente. Cada llamada produce un mensaje [`result`](/docs/es/agent-sdk/typescript#sdkresultmessage) al final, excepto en [modo de entrada de transmisión](/docs/es/agent-sdk/streaming-vs-single-mode), donde una llamada `query()` lleva múltiples turnos de usuario y cada turno emite su propio mensaje `result`.38* **Llamada `query()`:** una invocación de la función `query()` del SDK. Una única llamada puede involucrar múltiples pasos: Claude responde, utiliza herramientas, obtiene resultados y responde nuevamente. Cada llamada produce un mensaje [`result`](/docs/es/agent-sdk/typescript#sdkresultmessage) al final, excepto en [modo de entrada de transmisión](/docs/es/agent-sdk/streaming-vs-single-mode), donde una llamada `query()` lleva múltiples turnos de usuario y cada turno emite su propio mensaje `result`.

39* **Paso:** un único ciclo de solicitud/respuesta dentro de una llamada `query()`. Cada paso produce mensajes del asistente con uso de tokens.39* **Paso:** un único ciclo de solicitud/respuesta dentro de una llamada `query()`. Cada paso produce mensajes del asistente con uso de tokens.

40* **Sesión:** una serie de llamadas `query()` vinculadas por un ID de sesión (usando la opción `resume`). Cada llamada `query()` dentro de una sesión reporta su propio costo de forma independiente.40* **Sesión:** una serie de llamadas `query()` vinculadas por un ID de sesión a través de la opción `resume`. Una llamada reanudada reporta el gasto total de la sesión, no solo el de esa llamada. Consulte [Acumular costos en múltiples llamadas](#accumulate-costs-across-multiple-calls) para ver cómo se transfieren los totales.

41 41 

42El siguiente diagrama muestra el flujo de mensajes de una única llamada `query()`, con el uso de tokens reportado en cada paso y la estimación acumulativa al final:42El siguiente diagrama muestra el flujo de mensajes de una única llamada `query()`, con el uso de tokens reportado en cada paso y la estimación acumulativa al final:

43 43 


51 </Step>51 </Step>

52 52 

53 <Step title="El mensaje de resultado proporciona la estimación acumulativa">53 <Step title="El mensaje de resultado proporciona la estimación acumulativa">

54 Cuando se completa la llamada `query()`, el SDK emite un mensaje de resultado con `total_cost_usd` y `usage` acumulativo, tipado como [`SDKResultMessage`](/docs/es/agent-sdk/typescript#sdkresultmessage) en TypeScript y [`ResultMessage`](/docs/es/agent-sdk/python#resultmessage) en Python. Si realiza múltiples llamadas `query()`, por ejemplo en una sesión de múltiples turnos, cada resultado refleja solo el costo de esa llamada individual. Si solo necesita el total estimado, puede ignorar el uso por paso y leer este único valor.54 Cuando se completa la llamada `query()`, el SDK emite un mensaje de resultado con `total_cost_usd` y `usage` acumulativo, tipado como [`SDKResultMessage`](/docs/es/agent-sdk/typescript#sdkresultmessage) en TypeScript y [`ResultMessage`](/docs/es/agent-sdk/python#resultmessage) en Python. Si solo necesita el total estimado, puede ignorar el uso por paso y leer este único valor.

55 

56 Si realiza múltiples llamadas `query()` independientes, cada resultado refleja solo el costo de esa llamada individual. Una llamada que reanuda una sesión también cuenta el gasto anterior de la sesión.

55 57 

56 En modo de entrada de transmisión, cada turno emite su propio mensaje de resultado. Consulte [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode) para saber cómo leer totales de llamadas en ese modo.58 En modo de entrada de transmisión, cada turno emite su propio mensaje de resultado. Consulte [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode) para saber cómo leer totales de llamadas en ese modo.

57 </Step>59 </Step>


64En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), una llamada `query()` lleva múltiples turnos de usuario y cada turno emite su propio mensaje de resultado. Los campos de resultado difieren en alcance:66En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), una llamada `query()` lleva múltiples turnos de usuario y cada turno emite su propio mensaje de resultado. Los campos de resultado difieren en alcance:

65 67 

66* **`usage`**: cubre solo ese turno, y dentro de él solo el bucle principal del agente, no ningún subagente que haya ejecutado.68* **`usage`**: cubre solo ese turno, y dentro de él solo el bucle principal del agente, no ningún subagente que haya ejecutado.

67* **`total_cost_usd` y `modelUsage`, o `model_usage` en Python**: llevan el total acumulado para toda la llamada hasta ahora.69* **`total_cost_usd` y `modelUsage`, o `model_usage` en Python**: llevan el total acumulado para toda la llamada hasta ahora, más cualquier gasto restaurado cuando la llamada reanudó una sesión.

68 70 

69En una llamada donde su aplicación nunca envía `/clear`, `/reset` o `/new`, lea el resultado más reciente para los totales de llamada en lugar de sumar entre resultados.71En una llamada donde su aplicación nunca envía `/clear`, `/reset` o `/new`, lea el resultado más reciente para los totales de llamada en lugar de sumar entre resultados.

70 72 


78 80 

79En TypeScript, el SDK también emite un [`SDKConversationResetMessage`](/docs/es/agent-sdk/typescript#sdkconversationresetmessage) en cada reinicio, por lo que puede detectar reinicios desde la secuencia. En Python, el SDK asimismo emite un `ConversationResetMessage`. Antes de Python SDK v0.2.137, el iterador de Python descartaba ese mensaje, por lo que en esas versiones cuente los reinicios usted mismo a partir de los turnos `/clear` que su aplicación envía.81En TypeScript, el SDK también emite un [`SDKConversationResetMessage`](/docs/es/agent-sdk/typescript#sdkconversationresetmessage) en cada reinicio, por lo que puede detectar reinicios desde la secuencia. En Python, el SDK asimismo emite un `ConversationResetMessage`. Antes de Python SDK v0.2.137, el iterador de Python descartaba ese mensaje, por lo que en esas versiones cuente los reinicios usted mismo a partir de los turnos `/clear` que su aplicación envía.

80 82 

81`maxBudgetUsd` (TypeScript) o `max_budget_usd` (Python) se compara con el mismo total acumulado, por lo que un `/clear` también reinicia el presupuesto.83`maxBudgetUsd` (TypeScript) o `max_budget_usd` (Python) cuenta solo el gasto de la llamada misma: los totales restaurados de una sesión reanudada no cuentan en su contra, y un `/clear` reinicia el presupuesto.

82 84 

83<h2 id="get-the-total-cost-of-a-query">85<h2 id="get-the-total-cost-of-a-query">

84 Obtener el costo total de una consulta86 Obtener el costo total de una consulta

85</h2>87</h2>

86 88 

87El mensaje de resultado, tipado como [`SDKResultMessage`](/docs/es/agent-sdk/typescript#sdkresultmessage) en TypeScript y [`ResultMessage`](/docs/es/agent-sdk/python#resultmessage) en Python, marca el final del bucle del agente para una llamada `query()`. Incluye `total_cost_usd`, el costo estimado acumulativo en todos los pasos de esa llamada. En Python el campo se tipea como opcional, así que verifique que no sea `None` antes de leerlo. Los resultados de éxito y error llevan ambos, aunque el resultado final de un [bloqueo de sesión](#recover-totals-after-a-session-crash) puede llevarlo en cero.89El mensaje de resultado, tipado como [`SDKResultMessage`](/docs/es/agent-sdk/typescript#sdkresultmessage) en TypeScript y [`ResultMessage`](/docs/es/agent-sdk/python#resultmessage) en Python, marca el final del bucle del agente para una llamada `query()`. Incluye `total_cost_usd`, el costo estimado acumulativo en todos los pasos de esa llamada. Una llamada que reanuda una sesión también cuenta el gasto anterior de la sesión. Se aplican dos advertencias cuando lee el valor:

90 

91* En Python el campo se tipea como opcional, así que verifique que no sea `None` antes de leerlo.

92* Los resultados de éxito y error llevan ambos, aunque el resultado final de un [bloqueo de sesión](#recover-totals-after-a-session-crash) puede llevarlo en cero.

88 93 

89Si utiliza sesiones para hacer múltiples llamadas `query()`, cada resultado refleja solo el costo de esa llamada individual. En modo de entrada de transmisión, lea los totales de llamadas como se describe en [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode).94En modo de entrada de transmisión, lea los totales de llamadas como se describe en [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode).

90 95 

91Los tres campos a nivel de resultado difieren en lo que cuentan cuando el agente genera [subagentes](/docs/es/agent-sdk/subagents). Use `modelUsage`, o `model_usage` en Python, para contabilidad de tokens de árbol completo; el campo `usage` subestima tan pronto como ocurre anidamiento.96Los tres campos a nivel de resultado difieren en lo que cuentan cuando el agente genera [subagentes](/docs/es/agent-sdk/subagents). Use `modelUsage`, o `model_usage` en Python, para contabilidad de tokens de árbol completo; el campo `usage` subestima tan pronto como ocurre anidamiento.

92 97 


232 Acumular costos en múltiples llamadas237 Acumular costos en múltiples llamadas

233</h2>238</h2>

234 239 

235Cada llamada a `query()` devuelve su propio `total_cost_usd`. El SDK no proporciona un total a nivel de sesión, por lo que si su aplicación realiza múltiples llamadas a `query()`, por ejemplo en una sesión de múltiples turnos o entre diferentes usuarios, acumule los totales usted mismo. En modo de entrada de transmisión, lea el total de cada llamada como se describe en [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode). Para una llamada que terminó en un bloqueo, consulte [Recuperar totales después de un bloqueo de sesión](#recover-totals-after-a-session-crash).240Cada llamada a `query()` devuelve `total_cost_usd` en sus resultados. La forma en que combine los valores depende de si las llamadas comparten una sesión:

241 

242* **Llamadas independientes, sin opción `resume` o `continue`**: cada resultado cubre solo su propia llamada, por lo que debe sumar los totales usted mismo, como hacen los ejemplos a continuación.

243* **Llamadas que reanudan la misma sesión**: Claude Code guarda los totales de la sesión en su [transcripción](/docs/es/sessions#where-transcripts-are-stored) cuando el proceso se cierra normalmente y los restaura cuando una llamada posterior reanuda o bifurca la sesión. Cada resultado ya incluye el gasto anterior de la sesión. Lea el resultado más reciente para el total de la sesión; sumar resultados cuenta dos veces el gasto restaurado. Antes de v2.1.277, una sesión que reanudaba a través del SDK o `claude -p` iniciaba sus totales en cero, por lo que cada resultado de llamada cubría solo esa llamada.

244 

245En modo de entrada de transmisión, lea el total de cada llamada como se describe en [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode). Para una llamada que terminó en un bloqueo, consulte [Recuperar totales después de un bloqueo de sesión](#recover-totals-after-a-session-crash).

236 246 

237Los siguientes ejemplos ejecutan dos llamadas a `query()` secuencialmente, agregan el `total_cost_usd` de cada llamada a un total acumulado e imprimen tanto el costo por llamada como el costo combinado:247Los siguientes ejemplos ejecutan dos llamadas a `query()` secuencialmente, agregan el `total_cost_usd` de cada llamada a un total acumulado e imprimen tanto el costo por llamada como el costo combinado:

238 248 


338 348 

339Cuando el proceso de Claude Code se bloquea, emite un resultado final `error_during_execution` y sale, tanto en modo de entrada de un solo disparo como en modo de entrada de transmisión. Ese resultado puede llevar `usage`, `total_cost_usd` y `modelUsage` puestos a cero, así que recupere los totales de la llamada de lo que llegó antes. El paso 1 recupera los totales completos siempre que exista un resultado anterior; la alternativa en el paso 2 recupera solo los tokens de entrada y caché del bucle principal.349Cuando el proceso de Claude Code se bloquea, emite un resultado final `error_during_execution` y sale, tanto en modo de entrada de un solo disparo como en modo de entrada de transmisión. Ese resultado puede llevar `usage`, `total_cost_usd` y `modelUsage` puestos a cero, así que recupere los totales de la llamada de lo que llegó antes. El paso 1 recupera los totales completos siempre que exista un resultado anterior; la alternativa en el paso 2 recupera solo los tokens de entrada y caché del bucle principal.

340 350 

3411. Use el resultado del turno anterior al bloqueo. En modo de entrada de transmisión, contiene el total acumulado desde el inicio de la llamada o desde el último [`/clear`](#track-costs-in-streaming-input-mode). Vaya al paso 2 en su lugar cuando ese resultado no pueda ayudarle:3511. Use el resultado del turno anterior al bloqueo. En modo de entrada de transmisión, contiene el total acumulado descrito en [Rastrear costos en modo de entrada de transmisión](#track-costs-in-streaming-input-mode). Vaya al paso 2 en su lugar cuando ese resultado no pueda ayudarle:

342 * La llamada fue de un solo disparo, así que no existe resultado anterior.352 * La llamada fue de un solo disparo, así que no existe resultado anterior.

343 * El bloqueo ocurrió en el primer turno.353 * El bloqueo ocurrió en el primer turno.

344 * El turno anterior al bloqueo fue el `/clear` mismo, así que su resultado cubre solo el reinicio.354 * El turno anterior al bloqueo fue el `/clear` mismo, así que su resultado cubre solo el reinicio.

Details

10 10 

11Esta página cubre el autohospedaje en su propia infraestructura. Para Dockerfiles e manifiestos de Kubernetes implementables, consulte el [hosting cookbook](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting).11Esta página cubre el autohospedaje en su propia infraestructura. Para Dockerfiles e manifiestos de Kubernetes implementables, consulte el [hosting cookbook](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting).

12 12 

13Si no necesita control de infraestructura, aislamiento personalizado o su propio plano de datos, considere [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) en su lugar: una API REST alojada donde Anthropic ejecuta el agente y el sandbox, por lo que su aplicación envía eventos y transmite resultados sin necesidad de infraestructura de alojamiento para operar.13Si no necesita ejecutar el bucle del agente en su propia infraestructura, considere [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) en su lugar. Anthropic aloja el bucle del agente, y su aplicación envía eventos y recibe resultados transmitidos a través de los SDK de cliente o la API REST. La ejecución de herramientas se ejecuta en un sandbox en la nube administrado por Anthropic o en un [sandbox autohospedado](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) en su propia infraestructura.

14 14 

15<h2 id="the-subprocess-model">15<h2 id="the-subprocess-model">

16 El modelo de subproceso16 El modelo de subproceso

Details

44 Personalizar el comportamiento del agente44 Personalizar el comportamiento del agente

45</h2>45</h2>

46 46 

47`append` y una cadena de indicación personalizada cada uno cambian la indicación del sistema directamente, y un estilo de salida cambia las instrucciones que Claude Code da a Claude para cada respuesta. CLAUDE.md toma un camino diferente: el SDK lo lee e inyecta su contenido en la conversación como contexto del proyecto, por lo que forma el comportamiento junto con cualquier indicación del sistema que elija. [Skills](/docs/es/agent-sdk/skills), [hooks](/docs/es/agent-sdk/hooks), y [permissions](/docs/es/agent-sdk/permissions) también forman el comportamiento fuera de la indicación del sistema y se cubren en sus propias páginas.47`append` y una cadena de prompt personalizada cada uno cambian el prompt del sistema directamente, y un estilo de salida cambia las instrucciones que Claude Code le da a Claude para cada respuesta. CLAUDE.md toma un camino diferente: el SDK lo lee e inyecta su contenido en la conversación como contexto del proyecto, por lo que forma el comportamiento junto con cualquier prompt del sistema que elija. [Skills](/docs/es/agent-sdk/skills), [hooks](/docs/es/agent-sdk/hooks) y [permissions](/docs/es/agent-sdk/permissions) también forman el comportamiento fuera del prompt del sistema y se tratan en sus propias páginas.

48 48 

49<h3 id="claude-md-files-for-project-level-instructions">49<h3 id="claude-md-files-for-project-level-instructions">

50 Archivos CLAUDE.md para instrucciones a nivel de proyecto50 Archivos CLAUDE.md para instrucciones a nivel de proyecto

51</h3>51</h3>

52 52 

53Los archivos CLAUDE.md proporcionan a Claude contexto e instrucciones persistentes del proyecto. El SDK inyecta su contenido en la conversación y deja la indicación del sistema sin tocar, por lo que funcionan con cualquier configuración de indicación del sistema. Para saber qué poner en CLAUDE.md, dónde colocarlo y cómo escribir instrucciones efectivas, consulte [Cuándo agregar a CLAUDE.md](/docs/es/memory#when-to-add-to-claude-md) y el resto de [Cómo Claude recuerda su proyecto](/docs/es/memory). Esta sección cubre lo específico del SDK: cómo se carga CLAUDE.md.53Los archivos CLAUDE.md le dan a Claude contexto e instrucciones persistentes del proyecto. El SDK inyecta su contenido en la conversación y deja el prompt del sistema sin tocar, por lo que funcionan con cualquier configuración de prompt del sistema. Para saber qué poner en CLAUDE.md, dónde colocarlo y cómo escribir instrucciones efectivas, consulte [When to add to CLAUDE.md](/docs/es/memory#when-to-add-to-claude-md) y el resto de [How Claude remembers your project](/docs/es/memory). Esta sección cubre lo específico del SDK: cómo se carga CLAUDE.md.

54 54 

55El SDK lee CLAUDE.md cuando la fuente de configuración coincidente está habilitada: `'project'` carga `CLAUDE.md` o `.claude/CLAUDE.md` desde el directorio de trabajo, y `'user'` carga `~/.claude/CLAUDE.md`. Las opciones predeterminadas de `query()` habilitan ambas fuentes, por lo que CLAUDE.md se carga automáticamente. Si establece `settingSources` en TypeScript o `setting_sources` en Python explícitamente, incluya las fuentes que necesita. La carga de CLAUDE.md se controla mediante fuentes de configuración, no por el preset `claude_code`.55El SDK lee CLAUDE.md cuando la fuente de configuración coincidente está habilitada: `'project'` carga `CLAUDE.md` o `.claude/CLAUDE.md` desde el directorio de trabajo, y `'user'` carga `~/.claude/CLAUDE.md`. Las opciones predeterminadas de `query()` habilitan ambas fuentes, por lo que CLAUDE.md se carga automáticamente. Si establece `settingSources` en TypeScript o `setting_sources` en Python explícitamente, incluya las fuentes que necesita. La carga de CLAUDE.md se controla mediante fuentes de configuración, no por el preset `claude_code`.

56 56 


58 Cargar CLAUDE.md con el SDK58 Cargar CLAUDE.md con el SDK

59</h4>59</h4>

60 60 

61Para cargar CLAUDE.md, establezca `settingSources` para incluir el nivel donde vive su CLAUDE.md. El ejemplo a continuación carga un CLAUDE.md a nivel de proyecto junto con el preset `claude_code`, por lo que Claude tiene tanto la indicación del agente de codificación como las convenciones de su proyecto:61Para cargar CLAUDE.md, establezca `settingSources` para incluir el nivel donde mantiene su CLAUDE.md. El ejemplo a continuación carga un CLAUDE.md a nivel de proyecto junto con el preset `claude_code`, por lo que Claude tiene tanto el prompt del agente de codificación como las convenciones de su proyecto:

62 62 

63<CodeGroup>63<CodeGroup>

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


110 ```110 ```

111</CodeGroup>111</CodeGroup>

112 112 

113Cuando ejecuta cualquiera de los ejemplos, el SDK transmite mensajes mientras Claude trabaja: un mensaje de inicialización del sistema, mensajes del asistente, mensajes del usuario que llevan resultados de herramientas, y un mensaje de resultado final con el resultado de la sesión.113Cuando ejecuta cualquiera de los ejemplos, el SDK transmite mensajes mientras Claude trabaja: un mensaje de inicialización del sistema, mensajes del asistente, mensajes del usuario que llevan resultados de herramientas y un mensaje de resultado final con el resultado de la sesión.

114 114 

115CLAUDE.md es persistente en todas las sesiones de un proyecto, se comparte con su equipo a través de git, y se descubre automáticamente sin cambios de código. No se carga si pasa un array `settingSources` vacío.115CLAUDE.md es persistente en todas las sesiones de un proyecto, se comparte con su equipo a través de git y se descubre automáticamente sin cambios de código. No se carga si pasa una matriz `settingSources` vacía.

116 116 

117<h3 id="output-styles-for-persistent-configurations">117<h3 id="output-styles-for-persistent-configurations">

118 Estilos de salida para configuraciones persistentes118 Estilos de salida para configuraciones persistentes

119</h3>119</h3>

120 120 

121Los estilos de salida son configuraciones guardadas de instrucciones que cambian el rol, tono y formato de salida de Claude. Se almacenan como archivos markdown y se pueden reutilizar en sesiones y proyectos.121Los estilos de salida son conjuntos guardados de instrucciones que cambian el rol, el tono y el formato de salida de Claude. Se almacenan como archivos markdown y se pueden reutilizar en sesiones y proyectos.

122 122 

123<h4 id="create-an-output-style">123<h4 id="create-an-output-style">

124 Crear un estilo de salida124 Crear un estilo de salida

125</h4>125</h4>

126 126 

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

128 128 

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

130 130 

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

132 132 

133```markdown ~/.claude/output-styles/code-reviewer.md theme={null}133```markdown ~/.claude/output-styles/code-reviewer.md theme={null}

134---134---


168 Agregar al preset `claude_code`168 Agregar al preset `claude_code`

169</h3>169</h3>

170 170 

171Puede usar el preset de Claude Code con una propiedad `append` para agregar sus instrucciones personalizadas mientras preserva toda la funcionalidad integrada.171Puede usar el preset Claude Code con una propiedad `append` para agregar sus instrucciones personalizadas mientras preserva toda la funcionalidad integrada.

172 172 

173<CodeGroup>173<CodeGroup>

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


222</CodeGroup>222</CodeGroup>

223 223 

224<h4 id="improve-prompt-caching-across-users-and-machines">224<h4 id="improve-prompt-caching-across-users-and-machines">

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

226</h4>226</h4>

227 227 

228De forma predeterminada, dos sesiones que usan el mismo preset `claude_code` y texto `append` aún no pueden compartir una entrada de caché de indicación si se ejecutan desde diferentes directorios de trabajo. Esto se debe a que el preset incrusta contexto por sesión en la indicación del sistema antes de su texto `append`: el directorio de trabajo, si es un repositorio de git, la plataforma, el shell activo, la versión del SO, y rutas de memoria automática. Cualquier diferencia en ese contexto produce una indicación del sistema diferente y un error de caché. El contenido de CLAUDE.md no afecta el caché de indicación del sistema porque el SDK lo inyecta en la conversación, no en la indicación del sistema.228De forma predeterminada, dos sesiones que usan el mismo preset `claude_code` y texto `append` aún no pueden compartir una entrada de caché de prompt si se ejecutan desde directorios de trabajo diferentes. Esto se debe a que el preset incrusta contexto por sesión en el prompt del sistema antes de su texto `append`: el directorio de trabajo, si es un repositorio de git, la plataforma, el shell activo, la versión del SO y las rutas de memoria automática. Cualquier diferencia en ese contexto produce un prompt del sistema diferente y una falta de caché. El contenido de CLAUDE.md no afecta el caché del prompt del sistema porque el SDK lo inyecta en la conversación, no en el prompt del sistema.

229 229 

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

231 231 

232<Note>232<Note>

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

234</Note>234</Note>

235 235 

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

237 237 

238<CodeGroup>238<CodeGroup>

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


279 ```279 ```

280</CodeGroup>280</CodeGroup>

281 281 

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

283 283 

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

285 285 

286<h3 id="custom-system-prompts">286<h3 id="custom-system-prompts">

287 Indicaciones del sistema personalizadas287 Prompts del sistema personalizados

288</h3>288</h3>

289 289 

290Puede proporcionar una cadena personalizada como `systemPrompt` para reemplazar completamente la predeterminada con sus propias instrucciones.290Puede proporcionar una cadena personalizada como `systemPrompt` para reemplazar completamente la predeterminada con sus propias instrucciones.


346 ```346 ```

347</CodeGroup>347</CodeGroup>

348 348 

349En Python, cargue una indicación personalizada grande desde un archivo con `system_prompt={"type": "file", "path": "..."}` en lugar de pasarla como una cadena. El SDK de Python pasa una indicación de cadena como un argumento de línea de comandos al subproceso CLI, por lo que una indicación que excede el límite de longitud de argumento del SO falla en el desove del proceso antes de que se envíe cualquier solicitud de API. En Linux el error es `Argument list too long`. Consulte [`SystemPromptFile`](/docs/es/agent-sdk/python#systempromptfile) para los umbrales de plataforma y el comportamiento de Windows.349En Python, cargue un prompt personalizado grande desde un archivo con `system_prompt={"type": "file", "path": "..."}` en lugar de pasarlo como una cadena. El SDK de Python pasa un prompt de cadena como un argumento de línea de comandos al subproceso CLI, por lo que un prompt que excede el límite de longitud de argumento del SO falla en el spawn del proceso antes de que se envíe cualquier solicitud de API. En Linux el error es `Argument list too long`. Consulte [`SystemPromptFile`](/docs/es/agent-sdk/python#systempromptfile) para los umbrales de plataforma y el comportamiento de Windows.

350 350 

351<h4 id="cache-the-static-part-of-a-custom-prompt">351<h4 id="cache-the-static-part-of-a-custom-prompt">

352 Almacenar en caché la parte estática de una indicación personalizada352 Almacenar en caché la parte estática de un prompt personalizado

353</h4>353</h4>

354 354 

355En el SDK de TypeScript, puede pasar una indicación personalizada como una matriz de cadenas en lugar de una cadena, con el marcador `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre la parte estática y el resto. Úselo cuando su indicación combine instrucciones que son iguales en cada solicitud con contexto que cambia por solicitud, como el cliente o el ticket que maneja el agente. Cuando pasa ambas partes como una cadena, un cambio en la parte por solicitud cambia toda la indicación del sistema, por lo que las instrucciones estáticas pierden el caché también. La forma de matriz no está disponible en el SDK de Python; [`ClaudeAgentOptions`](/docs/es/agent-sdk/python#claudeagentoptions) enumera las formas que `system_prompt` acepta.355En el SDK de TypeScript, puede pasar un prompt personalizado como una matriz de cadenas en lugar de una cadena, con el marcador `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` entre la parte estática y el resto. Úselo cuando su prompt combine instrucciones que son iguales en cada solicitud con contexto que cambia por solicitud, como el cliente o el ticket que maneja el agente. Cuando pasa ambas partes como una cadena, un cambio en la parte por solicitud cambia todo el prompt del sistema, por lo que las instrucciones estáticas también pierden el caché. La forma de matriz no está disponible en el SDK de Python; [`ClaudeAgentOptions`](/docs/es/agent-sdk/python#claudeagentoptions) enumera las formas que `system_prompt` acepta.

356 356 

357<Note>357<Note>

358 El SDK divide la indicación solo cuando llama a la API de Claude directamente o se ejecuta en [Claude Platform on AWS](/docs/es/claude-platform-on-aws). En todas las demás configuraciones, como Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o una [puerta de enlace LLM](/docs/es/llm-gateway-connect), y siempre que establezca [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities), el SDK envía toda la indicación como un bloque, igual que pasar una cadena.358 Claude Code divide el prompt solo cuando llama a la API de Claude directamente o se ejecuta en [Claude Platform on AWS](/docs/es/claude-platform-on-aws). En todas las demás configuraciones, como Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o una [LLM gateway](/docs/es/llm-gateway-connect), envía todo el prompt como un bloque, igual que pasar una cadena. Lo mismo sucede siempre que establezca [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities).

359</Note>359</Note>

360 360 

361Para dividir la indicación, importe `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` desde `@anthropic-ai/claude-agent-sdk` y páselo como su propio elemento de matriz entre las dos partes. El SDK envía las cadenas antes del marcador como un bloque de texto y las cadenas después como un segundo bloque, cada uno con su propio punto de ruptura de caché. En el ejemplo a continuación, un agente de soporte carga sus instrucciones de triaje desde un archivo y recibe detalles sobre un ticket en cada solicitud, por lo que las instrucciones permanecen almacenadas en caché mientras los detalles del ticket cambian:361Para dividir el prompt, importe `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` de `@anthropic-ai/claude-agent-sdk` y páselo como su propio elemento de matriz entre las dos partes. El SDK envía las cadenas antes del marcador como un bloque de texto y las cadenas después como un segundo bloque, cada uno con su propio punto de ruptura de caché. En el ejemplo a continuación, un agente de soporte carga sus instrucciones de clasificación desde un archivo y recibe detalles sobre un ticket en cada solicitud, por lo que las instrucciones permanecen almacenadas en caché mientras los detalles del ticket cambian:

362 362 

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

364import { readFile } from "node:fs/promises";364import { readFile } from "node:fs/promises";


379}379}

380```380```

381 381 

382[Rastrear tokens de caché](/docs/es/agent-sdk/cost-tracking#track-cache-tokens) describe los campos `cache_creation_input_tokens` y `cache_read_input_tokens` en cada mensaje de resultado.382[Track cache tokens](/docs/es/agent-sdk/cost-tracking#track-cache-tokens) describe los campos `cache_creation_input_tokens` y `cache_read_input_tokens` en cada mensaje de resultado.

383 383 

384El SDK ensambla los bloques de la matriz de la siguiente manera:384El SDK ensambla los bloques de la matriz de la siguiente manera:

385 385 


387* Si incluye el marcador más de una vez, el primero es la división y el SDK elimina los demás.387* Si incluye el marcador más de una vez, el primero es la división y el SDK elimina los demás.

388* Si deja el marcador fuera, el SDK une todas las cadenas en un bloque, igual que pasar una cadena.388* Si deja el marcador fuera, el SDK une todas las cadenas en un bloque, igual que pasar una cadena.

389 389 

390Con las banderas [`--system-prompt` o `--system-prompt-file`](/docs/es/cli-reference#system-prompt-flags) de la CLI, el prompt es una cadena, por lo que no hay matriz para llevar el marcador. Incluya una línea que contenga solo `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` entre las partes estáticas y por solicitud en su lugar. Claude Code divide el prompt en la primera línea de este tipo en los mismos dos bloques y elimina esa línea. Requiere Claude Code v2.1.275 o posterior.

391 

392En el SDK, prefiera la forma de matriz, que lleva el límite sin una línea de marcador.

393 

390<h3 id="change-the-prompt-of-an-existing-session">394<h3 id="change-the-prompt-of-an-existing-session">

391 Cambiar la indicación de una sesión existente395 Cambiar el prompt de una sesión existente

392</h3>396</h3>

393 397 

394De forma predeterminada, si pasa un `append` o indicación personalizada diferente cuando regresa a una sesión con `resume` o `continue`, Claude no la ve en el siguiente turno. Claude Code registra la indicación del sistema en la primera solicitud de una sesión y reutiliza ese registro hasta que la sesión se compacta. El nuevo texto entra en vigor después de esa compactación, o en una nueva sesión.398De forma predeterminada, si pasa un `append` o prompt personalizado diferente cuando regresa a una sesión con `resume` o `continue`, Claude no lo ve en el siguiente turno. Claude Code registra el prompt del sistema en la primera solicitud de una sesión y reutiliza ese registro hasta que la sesión se compacta. El nuevo texto entra en vigor después de esa compactación, o en una nueva sesión.

395 399 

396<h4 id="update-claude’s-instructions-mid-session">400<h4 id="update-claude’s-instructions-mid-session">

397 Actualizar las instrucciones de Claude a mitad de sesión401 Actualizar las instrucciones de Claude a mitad de sesión

398</h4>402</h4>

399 403 

400Si las instrucciones que pone en la indicación del sistema necesitan cambiar mientras una sesión se está ejecutando, por ejemplo porque su usuario cambió el agente a un modo de solo lectura o editó su configuración en su aplicación, envíe las nuevas instrucciones en la conversación en lugar de cambiar `systemPrompt`:404Si las instrucciones que pone en el prompt del sistema necesitan cambiar mientras se ejecuta una sesión, por ejemplo porque su usuario cambió el agente a un modo de solo lectura o editó su configuración en su aplicación, envíe las nuevas instrucciones en la conversación en lugar de cambiar `systemPrompt`:

401 405 

402* **En su siguiente mensaje**: incluya las nuevas instrucciones en el siguiente mensaje del usuario que envíe.406* **En su siguiente mensaje**: incluya las nuevas instrucciones en el siguiente mensaje del usuario que envíe.

403* **Desde un hook**: devuelva [`additionalContext`](/docs/es/hooks#add-context-for-claude) desde un callback de hook `UserPromptSubmit` o `PostToolUse` [hook callback](/docs/es/agent-sdk/hooks#outputs), escrito como una declaración factual como "El espacio de trabajo ahora es de solo lectura". El SDK inserta el texto en la conversación en el punto donde se activó el hook, por lo que la indicación registrada permanece sin cambios.407* **Desde un hook**: devuelva [`additionalContext`](/docs/es/hooks#add-context-for-claude) de un callback de hook `UserPromptSubmit` o `PostToolUse` [hook callback](/docs/es/agent-sdk/hooks#outputs), escrito como una declaración fáctica como "The workspace is now read-only". El SDK inserta el texto en la conversación en el punto donde se activó el hook, por lo que el prompt registrado permanece sin cambios.

404 408 

405<h4 id="turn-recording-off-while-you-iterate-on-wording">409<h4 id="turn-recording-off-while-you-iterate-on-wording">

406 Desactivar la grabación mientras itera en la redacción410 Desactivar el registro mientras itera en la redacción

407</h4>411</h4>

408 412 

409Mientras itera en la redacción de la indicación y desea que cada edición llegue a una sesión que reanuda, establezca `snapshot` en false en la forma de objeto de la indicación del sistema. Claude Code luego reconstruye la indicación en cada solicitud. El campo está disponible en las formas preset y personalizada de [`systemPrompt`](/docs/es/agent-sdk/typescript#options) en TypeScript y de [`system_prompt`](/docs/es/agent-sdk/python#systempromptpreset) en Python, y requiere `@anthropic-ai/claude-agent-sdk` v0.3.257 o posterior, o `claude-agent-sdk` v0.2.153 o posterior.413Mientras itera en la redacción del prompt y desea que cada edición llegue a una sesión que reanuda, establezca `snapshot` en false en la forma de objeto del prompt del sistema. Claude Code luego reconstruye el prompt en cada solicitud. El campo está disponible en las formas preset y personalizada de [`systemPrompt`](/docs/es/agent-sdk/typescript#options) en TypeScript y de [`system_prompt`](/docs/es/agent-sdk/python#systempromptpreset) en Python, y requiere `@anthropic-ai/claude-agent-sdk` v0.3.257 o posterior, o `claude-agent-sdk` v0.2.153 o posterior.

410 414 

411Mantenga la grabación activada en producción. Con la grabación desactivada, un `append` o indicación personalizada diferente en una sesión reanudada llega a Claude en el siguiente turno, y esa solicitud no puede reutilizar el [caché de indicación](/docs/es/prompt-caching#how-the-cache-is-organized) de la sesión. Donde la API impone [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), Claude también pierde su pensamiento de turnos anteriores.415Mantenga el registro activado en producción. Con el registro desactivado, un `append` o prompt personalizado diferente en una sesión reanudada llega a Claude en el siguiente turno, y esa solicitud no puede reutilizar el [prompt cache](/docs/es/prompt-caching#how-the-cache-is-organized) de la sesión. Donde la API impone [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), Claude también pierde su pensamiento de turnos anteriores.

412 416 

413Fuera de [sesiones en la nube](/docs/es/cloud-environments), si inicia Claude Code en [modo bare](/docs/es/headless#start-faster-with-bare-mode) pasando `--bare` a través de `extraArgs` o estableciendo `CLAUDE_CODE_SIMPLE=1`, la grabación se desactiva a menos que establezca `snapshot: true`.417Fuera de [cloud sessions](/docs/es/cloud-environments), si inicia Claude Code en [bare mode](/docs/es/headless#start-faster-with-bare-mode) pasando `--bare` a través de `extraArgs` o estableciendo `CLAUDE_CODE_SIMPLE=1`, el registro permanece desactivado a menos que establezca `snapshot: true`.

414 418 

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

416 420 

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

418 Comparación de los cuatro enfoques422 Comparación de los cuatro enfoques

Details

12 Comparar el Agent SDK con otras herramientas de Claude12 Comparar el Agent SDK con otras herramientas de Claude

13</h2>13</h2>

14 14 

15El Agent SDK, la CLI, el Client SDK y los Managed Agents se adaptan a diferentes necesidades. Utilice la tabla para encontrar el que coincida con lo que está construyendo.15El Agent SDK, la CLI, el Client SDK y los Managed Agents difieren en quién ejecuta el agente, qué viene integrado y cómo acceder a él. Encuentre la fila que coincida con cómo desea construir y ejecutar el suyo.

16 16 

17| Si está... | Utilice | Por qué |17| Desea | Utilice | Lo que obtiene |

18| ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |18| ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

19| Construyendo un agente sin implementar el bucle de herramientas usted mismo | **Agent SDK** | Una biblioteca de Python o TypeScript que ejecuta el bucle del agente por usted. |19| Integrar el agente de Claude Code en su propia aplicación Python o TypeScript, en un proceso que usted opera | **Agent SDK** | Una biblioteca que ejecuta el binario de Claude Code, con las [capacidades](#capabilities) de Claude Code, como herramientas integradas, permisos, sesiones y hooks. |

20| Realizando desarrollo interactivo o ejecutando tareas puntuales desde una terminal | [**Claude Code CLI**](/docs/es/overview) | La interfaz de terminal, construida para uso interactivo diario. |20| Realizar desarrollo interactivo o ejecutar tareas puntuales desde una terminal | [**Claude Code CLI**](/docs/es/overview) | La interfaz de terminal, construida para uso interactivo diario. |

21| Llamando a la API directamente e implementando el bucle de herramientas usted mismo | [**Client SDK**](https://platform.claude.com/docs/en/api/client-sdks) | Acceso directo a la API de Anthropic en lugar de a Claude Code. Usted implementa el bucle de herramientas. |21| Llamar a la API de Claude directamente desde su propio código | [**Client SDK**](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) | Acceso directo a la API de Claude desde cualquiera de los lenguajes del Client SDK. Usted escribe el bucle de herramientas usted mismo, o deja que el [ejecutor de herramientas](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-runner) beta del Client SDK lo impulse. |

22| Ejecutando agentes de larga duración o asincronos sin gestionar su propia infraestructura de sandbox o sesión | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | API REST alojada, un producto separado del Agent SDK. Anthropic ejecuta el agente y el sandbox. |22| Tener que Anthropic aloje el agente, configurado a través de la API de Claude | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | Un arnés de agente alojado que ejecuta el bucle del agente, con sesiones en un sandbox en la nube administrado por Anthropic o un [sandbox autohospedado](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) en su propia infraestructura. Úselo desde el [SDK para su lenguaje](https://platform.claude.com/docs/en/managed-agents/quickstart#install-the-sdk), la CLI `ant`, o la API REST. |

23 23 

24El SDK está disponible como biblioteca solo para Python y TypeScript. Para impulsar el mismo bucle de agente desde otro idioma, [ejecute la CLI como un subproceso](/docs/es/headless) con la bandera `-p` y `--output-format json`.24Para impulsar el mismo bucle de agente desde un lenguaje distinto a Python o TypeScript, [ejecute la CLI como un subproceso](/docs/es/headless) con la bandera `-p` y `--output-format json`.

25 25 

26<h2 id="capabilities">26<h2 id="capabilities">

27 Capacidades27 Capacidades

Details

1487Utilice con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.1487Utilice con el campo `betas` en `ClaudeAgentOptions` para habilitar características beta.

1488 1488 

1489<Warning>1489<Warning>

1490 La beta `context-1m-2025-08-07` se retiró a partir del 30 de abril de 2026. Pasar este encabezado con Claude Sonnet 4.5 o Sonnet 4 no tiene efecto, y las solicitudes que exceden la ventana de contexto estándar de 200k tokens devuelven un error. Para usar una ventana de contexto de 1M tokens, migre a [Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, o Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.1490 La beta `context-1m-2025-08-07` se retiró a partir del 30 de abril de 2026. Pasar este encabezado con Claude Sonnet 4.5 o Sonnet 4 no tiene efecto, y las solicitudes que exceden la ventana de contexto estándar de 200k tokens devuelven un error. Para usar una ventana de contexto de 1M tokens, migre a [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, o Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.

1491</Warning>1491</Warning>

1492 1492 

1493<h3 id="mcpsdkserverconfig">1493<h3 id="mcpsdkserverconfig">


1711| `error` | [`AssistantMessageError`](#assistantmessageerror) ` \| None` | Tipo de error si la respuesta encontró un error |1711| `error` | [`AssistantMessageError`](#assistantmessageerror) ` \| None` | Tipo de error si la respuesta encontró un error |

1712| `usage` | `dict[str, Any] \| None` | Uso de token por mensaje (mismas claves que [`ResultMessage.usage`](#resultmessage)) |1712| `usage` | `dict[str, Any] \| None` | Uso de token por mensaje (mismas claves que [`ResultMessage.usage`](#resultmessage)) |

1713| `message_id` | `str \| None` | ID de mensaje de API. Múltiples mensajes de un turno comparten el mismo ID |1713| `message_id` | `str \| None` | ID de mensaje de API. Múltiples mensajes de un turno comparten el mismo ID |

1714| `stop_reason` | `str \| None` | Razón de parada de la API (por ejemplo `end_turn`, `tool_use`) |1714| `stop_reason` | `str \| None` | Razón de parada de la API (por ejemplo, `end_turn`, `tool_use`) |

1715| `session_id` | `str \| None` | ID de la sesión a la que pertenece este mensaje |1715| `session_id` | `str \| None` | ID de la sesión a la que pertenece este mensaje |

1716| `uuid` | `str \| None` | Identificador único del mensaje dentro de la transcripción de sesión |1716| `uuid` | `str \| None` | Identificador único del mensaje dentro de la transcripción de sesión |

1717 1717 


1799 1799 

1800El dict `model_usage` asigna nombres de modelo a uso por modelo. Cubre cada llamada de modelo realizada a través de la canalización de consulta: el bucle principal, subagentes y llamadas internas como compactación y agentes de Workflow. Las llamadas auxiliares fuera de esa canalización, como el clasificador de permisos y solicitudes de conteo de tokens, se excluyen de `model_usage`. Trate `model_usage` como una estimación, no como un estado de facturación.1800El dict `model_usage` asigna nombres de modelo a uso por modelo. Cubre cada llamada de modelo realizada a través de la canalización de consulta: el bucle principal, subagentes y llamadas internas como compactación y agentes de Workflow. Las llamadas auxiliares fuera de esa canalización, como el clasificador de permisos y solicitudes de conteo de tokens, se excluyen de `model_usage`. Trate `model_usage` como una estimación, no como un estado de facturación.

1801 1801 

1802En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), `model_usage` y `total_cost_usd` son acumulativos entre turnos, así que lea el resultado más reciente en lugar de sumar entre resultados. Vea [Rastrear costos en modo de entrada de streaming](/docs/es/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para reiniciaciones y [Recuperar totales después de un bloqueo de sesión](/docs/es/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) para resultados puestos a cero.1802En [modo de entrada de streaming](/docs/es/agent-sdk/streaming-vs-single-mode), `model_usage` y `total_cost_usd` son acumulativos entre turnos, así que lea el resultado más reciente en lugar de sumar entre resultados. Una llamada que reanuda una sesión también cuenta los [totales restaurados de las llamadas anteriores de la sesión](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Vea [Rastrear costos en modo de entrada de streaming](/docs/es/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) para reiniciaciones y [Recuperar totales después de un bloqueo de sesión](/docs/es/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) para resultados puestos a cero.

1803 1803 

1804Cada valor en `model_usage` es un TypedDict `ModelUsage`, importado vía `from claude_agent_sdk.types import ModelUsage`. Sus claves usan camelCase porque el SDK pasa el valor sin modificar desde el proceso CLI subyacente, coincidiendo con el tipo TypeScript [`ModelUsage`](/docs/es/agent-sdk/typescript#modelusage):1804Cada valor en `model_usage` es un TypedDict `ModelUsage`, importado vía `from claude_agent_sdk.types import ModelUsage`. Sus claves usan camelCase porque el SDK pasa el valor sin modificar desde el proceso CLI subyacente, coincidiendo con el tipo TypeScript [`ModelUsage`](/docs/es/agent-sdk/typescript#modelusage):

1805 1805 


2923 "command": str | None, # Shell script; each stdout line is an event, exit ends the watch2923 "command": str | None, # Shell script; each stdout line is an event, exit ends the watch

2924 "ws": dict | None, # WebSocket source: {"url": str, "protocols": list[str] | None}; each text frame is an event2924 "ws": dict | None, # WebSocket source: {"url": str, "protocols": list[str] | None}; each text frame is an event

2925 "description": str, # Short description shown in notifications2925 "description": str, # Short description shown in notifications

2926 "timeout_ms": int | None, # Kill after this deadline (default 300000, max 3600000)2926 "timeout_ms": int | None, # Deadline in milliseconds (default 300000, max 3600000; the effective deadline is at most 1800000)

2927 "persistent": bool | None, # Run for the lifetime of the session; stop with TaskStop

2928}2927}

2929```2928```

2930 2929 


2933```python theme={null}2932```python theme={null}

2934{2933{

2935 "taskId": str, # ID of the background monitor task2934 "taskId": str, # ID of the background monitor task

2936 "timeoutMs": int, # Timeout deadline in milliseconds (0 when persistent)2935 "timeoutMs": int, # The watch's effective deadline in milliseconds

2937 "persistent": bool | None, # True when running until TaskStop or session end2936 "persistent": bool | None, # False: every watch has a deadline

2938}2937}

2939```2938```

2940 2939 


3350 TaskOutput3349 TaskOutput

3351</h3>3350</h3>

3352 3351 

3353**Nombre de herramienta:** `TaskOutput`. El nombre anterior `BashOutput` aún se acepta como alias.3352Eliminado en Claude Code v2.1.277. Anteriormente recuperaba salida de una tarea en ejecución o completada, con `BashOutput` aceptado como alias; Claude lee el archivo de salida de una tarea en segundo plano con `Read` en su lugar.

3354 3353 

3355<Note>`TaskOutput` está deprecado; prefiera `Read` en la ruta del archivo de salida de la tarea. Los esquemas a continuación siguen siendo válidos para hooks y manejadores de permisos que encuentren la herramienta.</Note>3354Una entrada `disallowed_tools` o una regla de denegación que aún nombre cualquiera de estos nombres se ignora sin una advertencia.

3356 

3357**Entrada:**

3358 

3359```python theme={null}

3360{

3361 "task_id": str, # The task ID to get output from

3362 "block": bool, # Whether to wait for completion (default True)

3363 "timeout": int, # Max wait time in ms (default 30000)

3364}

3365```

3366 

3367**Salida:**

3368 

3369```python theme={null}

3370{

3371 "retrieval_status": "success" | "timeout" | "not_ready", # Whether the output was retrieved

3372 "task": dict | None, # Task details: task_id, task_type, status, description, output, plus type-specific fields such as exitCode

3373}

3374```

3375 3355 

3376<h3 id="taskstop">3356<h3 id="taskstop">

3377 TaskStop3357 TaskStop


3629```3609```

3630 3610 

3631| Propiedad | Tipo | Predeterminado | Descripción |3611| Propiedad | Tipo | Predeterminado | Descripción |

3632| :-------------------------- | :---------------------------------------------------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3612| :-------------------------- | :---------------------------------------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3633| `enabled` | `bool` | `False` | Habilitar modo sandbox para ejecución de comandos |3613| `enabled` | `bool` | `False` | Habilitar modo sandbox para ejecución de comandos |

3634| `autoAllowBashIfSandboxed` | `bool` | `True` | Aprobar automáticamente comandos bash cuando sandbox está habilitado |3614| `autoAllowBashIfSandboxed` | `bool` | `True` | Aprobar automáticamente comandos bash cuando sandbox está habilitado |

3635| `excludedCommands` | `list[str]` | `[]` | Comandos que siempre evitan restricciones de sandbox (por ejemplo, `["docker"]`). Estos se ejecutan sin sandbox automáticamente sin participación del modelo |3615| `excludedCommands` | `list[str]` | `[]` | Comandos que evitan restricciones de sandbox, como `["docker *"]`. Estos se ejecutan sin sandbox automáticamente sin participación del modelo; [`sandbox.excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) cubre cuándo se aplica una entrada |

3636| `allowUnsandboxedCommands` | `bool` | `True` | Permitir que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es `True`, el modelo puede establecer `dangerouslyDisableSandbox` en entrada de herramienta, que vuelve al [sistema de permisos](#permissions-fallback-for-unsandboxed-commands) |3616| `allowUnsandboxedCommands` | `bool` | `True` | Permitir que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es `True`, el modelo puede establecer `dangerouslyDisableSandbox` en entrada de herramienta, que vuelve al [sistema de permisos](#permissions-fallback-for-unsandboxed-commands) |

3637| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | Configuración de sandbox específica de red |3617| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | Configuración de sandbox específica de red |

3638| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | Configurar qué violaciones de sandbox ignorar |3618| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | Configurar qué violaciones de sandbox ignorar |


3737 Respaldo de permisos para comandos sin sandbox3717 Respaldo de permisos para comandos sin sandbox

3738</h3>3718</h3>

3739 3719 

3740Cuando `allowUnsandboxedCommands` está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo `dangerouslyDisableSandbox: True` en la entrada de la herramienta. Estas solicitudes vuelven al sistema de permisos existente, lo que significa que se invocará su controlador `can_use_tool`, permitiéndole implementar lógica de autorización personalizada. Los comandos listados en `excludedCommands` en su lugar evitan el sandbox automáticamente, sin participación del modelo; consulte [`SandboxSettings`](#sandboxsettings).3720Cuando `allowUnsandboxedCommands` está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo `dangerouslyDisableSandbox: True` en la entrada de la herramienta. Estas solicitudes vuelven al sistema de permisos existente, lo que significa que se invocará su controlador `can_use_tool`, permitiéndole implementar lógica de autorización personalizada.

3721 

3722Sus entradas de `excludedCommands` en su lugar evitan el sandbox sin participación del modelo; [`sandbox.excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) cubre cuándo se aplica una entrada.

3741 3723 

3742El siguiente ejemplo registra cada solicitud sin sandbox y la deniega a menos que su propia lógica de autorización la permita:3724El siguiente ejemplo registra cada solicitud sin sandbox y la deniega a menos que su propia lógica de autorización la permita:

3743 3725 

Details

747 747 

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

749 749 

750* **Use prompting explícito**: mencione el subagente por nombre en su prompt, por ejemplo "Use el agente code-reviewer para..."750* **Use prompting explícito**: mencione el subagente por nombre en su prompt, por ejemplo "Use el agente code-reviewer para verificar el módulo de autenticación"

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

752 752 

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

Details

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

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

311| `message` | `unknown` | Carga útil de mensaje sin procesar de la transcripción |311| `message` | `unknown` | Carga útil de mensaje sin procesar de la transcripción |

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

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

314 314 

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


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

505| `fallbackModel` | `string` | `undefined` | Modelo a usar si el principal falla. Acepta una lista separada por comas. Para el orden y el límite, vea [Fallback model chains](/docs/es/model-config#fallback-model-chains). Para orientación, vea [Choose a model](/docs/es/agent-sdk/configuration#choose-a-model) |505| `fallbackModel` | `string` | `undefined` | Modelo a usar si el principal falla. Acepta una lista separada por comas. Para el orden y el límite, vea [Fallback model chains](/docs/es/model-config#fallback-model-chains). Para orientación, vea [Choose a model](/docs/es/agent-sdk/configuration#choose-a-model) |

506| `forkSession` | `boolean` | `false` | Cuando se reanuda con `resume`, bifurque a un nuevo ID de sesión en lugar de continuar la sesión original |506| `forkSession` | `boolean` | `false` | Cuando se reanuda con `resume`, bifurque a un nuevo ID de sesión en lugar de continuar la sesión original |

507| `forwardSubagentText` | `boolean` | `false` | Reenvíe bloques de texto y pensamiento de subagentes como mensajes de asistente y usuario con `parent_tool_use_id` establecido, para que los consumidores puedan renderizar una transcripción anidada. Sin esta opción, Claude Code emite bloques `tool_use` y `tool_result` de subagentes pero no texto o pensamiento. Los mensajes de subagentes en cada profundidad de anidamiento se reenvían en Claude Code v2.1.219 y posterior; antes de v2.1.219, solo aparecían mensajes de subagentes de profundidad 1 |507| `forwardSubagentText` | `boolean` | `false` | Reenvíe bloques de texto y pensamiento de subagentes como mensajes de asistente y usuario con `parent_tool_use_id` establecido, para que los consumidores puedan renderizar una transcripción anidada. Sin esta opción, Claude Code emite bloques `tool_use` y `tool_result` de subagentes pero no texto o pensamiento. Los mensajes de subagentes en cada profundidad de anidamiento se reenvían en Claude Code v2.1.219 y posterior; antes de v2.1.219, solo aparecían mensajes de subagentes de profundidad 1. Los mensajes de subagentes que un skill bifurcado genera, y de skills bifurcados anidados, requieren v2.1.275 o posterior |

508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Devoluciones de llamada de hooks para eventos |508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Devoluciones de llamada de hooks para eventos |

509| `includeHookEvents` | `boolean` | `false` | Incluya eventos del ciclo de vida de hooks en la transmisión de mensajes como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), y [`SDKHookResponseMessage`](#sdkhookresponsemessage). Los eventos del ciclo de vida para hooks `SessionStart` y `Setup` siempre se incluyen y no necesitan esta opción. Algunos eventos de hooks, como `Notification`, `SessionEnd`, `PreCompact`, y `PostCompact`, nunca producen un `SDKHookStartedMessage`, incluso con esta opción. Para esos eventos, Claude Code aún emite un `SDKHookProgressMessage` mientras un hook de comando que se ejecuta durante más de un segundo produce salida, y emite un `SDKHookResponseMessage` solo cuando un hook [que se ejecuta en segundo plano](/docs/es/hooks#run-hooks-in-the-background) finaliza |509| `includeHookEvents` | `boolean` | `false` | Incluya eventos del ciclo de vida de hooks en la transmisión de mensajes como [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), y [`SDKHookResponseMessage`](#sdkhookresponsemessage). Los eventos del ciclo de vida para hooks `SessionStart` y `Setup` siempre se incluyen y no necesitan esta opción. Algunos eventos de hooks, como `Notification`, `SessionEnd`, `PreCompact`, y `PostCompact`, nunca producen un `SDKHookStartedMessage`, incluso con esta opción. Para esos eventos, Claude Code aún emite un `SDKHookProgressMessage` mientras un hook de comando que se ejecuta durante más de un segundo produce salida, y emite un `SDKHookResponseMessage` solo cuando un hook [que se ejecuta en segundo plano](/docs/es/hooks#run-hooks-in-the-background) finaliza |

510| `includePartialMessages` | `boolean` | `false` | Incluya eventos de mensaje parcial |510| `includePartialMessages` | `boolean` | `false` | Incluya eventos de mensaje parcial |


525| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita la persistencia de sesión en disco. Las sesiones no se pueden reanudar más tarde |525| `persistSession` | `boolean` | `true` | Cuando es `false`, deshabilita la persistencia de sesión en disco. Las sesiones no se pueden reanudar más tarde |

526| `planModeInstructions` | `string` | `undefined` | Instrucciones de flujo de trabajo personalizado para Plan Mode. Cuando `permissionMode` es `'plan'`, esta cadena reemplaza el cuerpo de flujo de trabajo de Plan Mode predeterminado. La CLI aún lo envuelve con el preámbulo de cumplimiento de solo lectura y el pie de página del protocolo ExitPlanMode |526| `planModeInstructions` | `string` | `undefined` | Instrucciones de flujo de trabajo personalizado para Plan Mode. Cuando `permissionMode` es `'plan'`, esta cadena reemplaza el cuerpo de flujo de trabajo de Plan Mode predeterminado. La CLI aún lo envuelve con el preámbulo de cumplimiento de solo lectura y el pie de página del protocolo ExitPlanMode |

527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Cargue plugins personalizados desde rutas locales. Vea [Plugins](/docs/es/agent-sdk/plugins) para detalles |527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Cargue plugins personalizados desde rutas locales. Vea [Plugins](/docs/es/agent-sdk/plugins) para detalles |

528| `projectConfigRoot` | `string` | `undefined` | Ruta absoluta del checkout de confianza del que `cwd` es un worktree. Claude Code lee la configuración del proyecto, `.mcp.json`, y los comandos, agentes, skills, flujos de trabajo, rutinas y estilos de salida del proyecto `.claude/` desde este directorio en lugar de `cwd`, y establece `CLAUDE_PROJECT_DIR` en él. Los hooks, scripts auxiliares como `apiKeyHelper`, y servidores MCP de stdio comienzan con este directorio como su directorio de trabajo. Los archivos `CLAUDE.md` y `.claude/rules/` aún se cargan desde `cwd`. Requiere Claude Code v2.1.275 o posterior |

528| `promptSuggestions` | `boolean` | `false` | Habilite sugerencias de mensaje. Después de un turno, Claude Code emite un mensaje `prompt_suggestion` que lleva un mensaje de usuario predicho siguiente. Claude Code no genera sugerencia para algunos turnos, como cuando su cuenta está cerca o en su límite de uso. Vea [When Claude Code skips suggestions](/docs/es/interactive-mode#when-claude-code-skips-suggestions) |529| `promptSuggestions` | `boolean` | `false` | Habilite sugerencias de mensaje. Después de un turno, Claude Code emite un mensaje `prompt_suggestion` que lleva un mensaje de usuario predicho siguiente. Claude Code no genera sugerencia para algunos turnos, como cuando su cuenta está cerca o en su límite de uso. Vea [When Claude Code skips suggestions](/docs/es/interactive-mode#when-claude-code-skips-suggestions) |

529| `resume` | `string` | `undefined` | ID de sesión a reanudar |530| `resume` | `string` | `undefined` | ID de sesión a reanudar |

530| `resumeDropsTurn` | `string` | `undefined` | Con `resumeSessionAt`: el UUID del mensaje del turno que la reanudación truncada intenta descartar. Claude Code rechaza la reanudación cuando el rango descartado contiene algo no atribuible a ese turno, como mensajes en cola absorbidos o notificaciones de tareas, y nombra el indicador `--resume-drops-turn` en el mensaje de rechazo. Solo el Agent SDK y las reanudaciones en modo de impresión leen el par. Requiere Claude Code v2.1.223 o posterior |531| `resumeDropsTurn` | `string` | `undefined` | Con `resumeSessionAt`: el UUID del mensaje del turno que la reanudación truncada intenta descartar. Claude Code rechaza la reanudación cuando el rango descartado contiene algo no atribuible a ese turno, como mensajes en cola absorbidos o notificaciones de tareas, y nombra el indicador `--resume-drops-turn` en el mensaje de rechazo. Solo el Agent SDK y las reanudaciones en modo de impresión leen el par. Requiere Claude Code v2.1.223 o posterior |


600 : Settings[K] | null;601 : Settings[K] | null;

601 }): Promise<void>;602 }): Promise<void>;

602 updateSettings(603 updateSettings(

603 source: 'localSettings',604 source: 'localSettings' | 'userSettings',

604 settings: Record<string, unknown>,605 settings: Record<string, unknown>,

605 ): Promise<void>;606 ): Promise<void>;

606 initializationResult(): Promise<SDKControlInitializeResponse>;607 initializationResult(): Promise<SDKControlInitializeResponse>;


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

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

623 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;624 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;

625 readMcpResource(serverName: string, uri: string): Promise<SDKControlMcpReadResourceResponse>;

624 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;626 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;

625 stopTask(taskId: string): Promise<void>;627 stopTask(taskId: string): Promise<void>;

626 close(): void;628 close(): void;


639| `setModel()` | Cambia el modelo (solo disponible en modo de entrada de transmisión). Pasar `undefined` o la cadena `"default"` reinicia al [modelo predeterminado de Claude Code](/docs/es/model-config) |641| `setModel()` | Cambia el modelo (solo disponible en modo de entrada de transmisión). Pasar `undefined` o la cadena `"default"` reinicia al [modelo predeterminado de Claude Code](/docs/es/model-config) |

640| `setMaxThinkingTokens()` | *Deprecado:* Use la opción `thinking` en su lugar. Cambia los tokens de pensamiento máximos. Pasar `null` reinicia el pensamiento al valor predeterminado de la sesión: se borra una anulación a mitad de sesión, y el pensamiento permanece desactivado para sesiones que lo tienen deshabilitado |642| `setMaxThinkingTokens()` | *Deprecado:* Use la opción `thinking` en su lugar. Cambia los tokens de pensamiento máximos. Pasar `null` reinicia el pensamiento al valor predeterminado de la sesión: se borra una anulación a mitad de sesión, y el pensamiento permanece desactivado para sesiones que lo tienen deshabilitado |

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

642| `updateSettings(source, settings)` | Fusiona la configuración en el archivo de configuración local del proyecto, `.claude/settings.local.json`; entran en vigor en la siguiente solicitud. Acepta solo `source: 'localSettings'` y un conjunto de claves permitidas, actualmente `outputStyle`, con valores de cadena; no se admite la eliminación de una clave. Rechaza en transportes remotos y en sesiones cuyas [`settingSources`](#options) excluyen `local`. Requiere TypeScript SDK v0.3.257 o posterior, que incluye Claude Code v2.1.257 |644| `updateSettings(source, settings)` | Escribe una clave permitida en el archivo de configuración local del proyecto o en su archivo de configuración de usuario, para que el valor persista para sesiones posteriores. Vea [`updateSettings()`](#updatesettings). Requiere TypeScript SDK v0.3.257 o posterior, que incluye Claude Code v2.1.257 |

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

644| `reinitialize()` | Reenvía la solicitud de control `initialize` a la CLI en ejecución y devuelve un resultado nuevo en lugar del resultado de primera conexión en caché. Úselo después de una brecha de transporte, como reconectarse a una sesión después de una desconexión, para que las solicitudes de permiso pendientes lleguen a su devolución de llamada `canUseTool` nuevamente. Haga que la devolución de llamada sea idempotente por ID de solicitud, porque una solicitud cuya respuesta se perdió se envía nuevamente. Requiere Claude Code v2.1.195 o posterior |646| `reinitialize()` | Reenvía la solicitud de control `initialize` a la CLI en ejecución y devuelve un resultado nuevo en lugar del resultado de primera conexión en caché. Úselo después de una brecha de transporte, como reconectarse a una sesión después de una desconexión, para que las solicitudes de permiso pendientes lleguen a su devolución de llamada `canUseTool` nuevamente. Haga que la devolución de llamada sea idempotente por ID de solicitud, porque una solicitud cuya respuesta se perdió se envía nuevamente. Requiere Claude Code v2.1.195 o posterior |

645| `supportedCommands()` | Devuelve comandos disponibles. Desde Agent SDK v0.3.216 la lista refleja cambios de comandos a mitad de sesión; vea [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |647| `supportedCommands()` | Devuelve comandos disponibles. Desde Agent SDK v0.3.216 la lista refleja cambios de comandos a mitad de sesión; vea [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

646| `supportedModels()` | Devuelve modelos disponibles con información de visualización |648| `supportedModels()` | Devuelve modelos disponibles con información de visualización |

647| `supportedAgents()` | Devuelve subagentes disponibles como [`AgentInfo`](#agentinfo)`[]` |649| `supportedAgents()` | Devuelve subagentes disponibles como [`AgentInfo`](#agentinfo)`[]` |

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

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

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

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


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

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

655| `setMcpServers(servers)` | Reemplace dinámicamente el conjunto de servidores MCP para esta sesión. Se resuelve con un [`McpSetServersResult`](#mcpsetserversresult) que nombra qué servidores se agregaron y eliminaron, y cualquier error |657| `setMcpServers(servers)` | Reemplace dinámicamente el conjunto de servidores MCP para esta sesión. Se resuelve con un [`McpSetServersResult`](#mcpsetserversresult) que nombra qué servidores se agregaron y eliminaron, y cualquier error |

658| `readMcpResource(serverName, uri)` | *Alpha.* Lee un recurso MCP Apps `ui://` de un servidor MCP conectado para que su aplicación pueda renderizar el widget de una herramienta. Se resuelve con un [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Requiere TypeScript Agent SDK v0.3.280 o posterior |

656| `streamInput(stream)` | Transmita mensajes de entrada a la consulta para conversaciones de múltiples turnos |659| `streamInput(stream)` | Transmita mensajes de entrada a la consulta para conversaciones de múltiples turnos |

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

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


673 676 

674Los valores se escriben en la capa de configuración de marca, la misma capa que la opción `settings` en línea de `query()` completa al inicio. Esta es la misma capa que la [sección de precedencia en la página](#settings-precedence) llama opciones programáticas.677Los valores se escriben en la capa de configuración de marca, la misma capa que la opción `settings` en línea de `query()` completa al inicio. Esta es la misma capa que la [sección de precedencia en la página](#settings-precedence) llama opciones programáticas.

675 678 

676Las llamadas sucesivas fusionan superficialmente las claves de nivel superior. Una segunda llamada con `{ permissions: {...} }` reemplaza el objeto `permissions` completo de la llamada anterior en lugar de fusionarse profundamente en él. Para borrar una clave de la capa de marca, pase `null` para esa clave. La mayoría de las claves luego recurren a fuentes de menor precedencia. Un `model` borrado se reinicia al [modelo predeterminado de Claude Code](/docs/es/model-config), incluso cuando un archivo de configuración establece `model`. Pasar `undefined` no tiene efecto porque la serialización JSON lo elimina.679Las llamadas sucesivas fusionan superficialmente las claves de nivel superior. Una segunda llamada con `{ permissions: {...} }` reemplaza el objeto `permissions` completo de la llamada anterior en lugar de fusionarse profundamente en él.

680 

681Para borrar una clave que estableció con `applyFlagSettings()`, pase `null` para esa clave. La mayoría de las claves luego recurren primero a un valor que la opción `settings` de `query()` estableció al inicio, luego a fuentes de menor precedencia. Un `model` borrado se reinicia al [modelo predeterminado de Claude Code](/docs/es/model-config), incluso cuando un archivo de configuración establece `model`. Pasar `undefined` no tiene efecto porque la serialización JSON lo elimina.

682 

683Tres claves además de `model` reinician el estado de la sesión en lugar de recurrir:

684 

685* `effortLevel: null` devuelve la sesión al nivel de esfuerzo predeterminado del modelo, no a la opción `effort` de `query()` o un `effortLevel` de un archivo de configuración.

686* `agent: null` ejecuta el hilo principal sin agente, comenzando con el siguiente turno, en lugar de restaurar la opción `agent` de `query()` o un `agent` de un archivo de configuración. Si el agente borrado había aplicado su propio modelo, la sesión vuelve al modelo que resolvió al inicio.

687* `ultracode: null` desactiva ultracode, como lo hace `false`, en lugar de restaurar un valor `ultracode` de un archivo de configuración. La sesión mantiene su nivel de esfuerzo actual, así que pase `effortLevel` en la misma llamada para cambiarlo.

677 688 

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

679 690 


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

696</Note>707</Note>

697 708 

709<h4 id="updatesettings">

710 `updateSettings()`

711</h4>

712 

713Escribe una clave permitida en un archivo de configuración en disco, para que el valor persista para sesiones posteriores que carguen esa fuente. Cada fuente acepta una clave, con un valor de cadena:

714 

715* **`"localSettings"`**: acepta `outputStyle` y lo fusiona en el archivo de configuración local del proyecto, `.claude/settings.local.json`. El nuevo estilo entra en vigor en la siguiente solicitud de la sesión.

716* **`"userSettings"`**: acepta `effortLevel` y lo guarda como el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) predeterminado para el modelo actual de la sesión, bajo [`modelSettings`](/docs/es/settings-reference#modelsettings) en su archivo de configuración de usuario. Pasar `max` no escribe nada, porque `max` es solo de sesión. La sesión en ejecución mantiene su nivel de esfuerzo actual de cualquier forma, así que llame a [`applyFlagSettings()`](#applyflagsettings) cuando también quiera cambiar eso. Esta fuente requiere TypeScript SDK v0.3.277 o posterior, que incluye Claude Code v2.1.277.

717 

718La llamada rechaza cuando la solicitud lleva cualquier otra clave, cuando la sesión se ejecuta sobre un transporte remoto, y cuando las [`settingSources`](#options) de la sesión excluyen la fuente que nombra. No se admite la eliminación de una clave.

719 

698<h3 id="warmquery">720<h3 id="warmquery">

699 `WarmQuery`721 `WarmQuery`

700</h3>722</h3>


942 964 

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

944 966 

967<h3 id="sdkcontrolmcpreadresourceresponse">

968 `SDKControlMcpReadResourceResponse`

969</h3>

970 

971Tipo de retorno de [`readMcpResource()`](#query-object), que lleva el resultado `resources/read` del servidor MCP. Requiere TypeScript Agent SDK v0.3.280 o posterior.

972 

973```typescript theme={null}

974type SDKControlMcpReadResourceResponse = {

975 contents: {

976 uri: string;

977 mimeType?: string;

978 text?: string;

979 blob?: string;

980 _meta?: Record<string, unknown>;

981 }[];

982};

983```

984 

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

986 

987Cada entrada `contents` es un elemento de contenido tal como el servidor lo envió. `blob` contiene datos base64 para un elemento binario, y `_meta` es el `_meta` del elemento, donde un servidor MCP Apps pone el `ui.csp` y `ui.permissions` del recurso. El contenido es HTML de terceros no confiable, así que renderícelo en un sandbox.

988 

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

946 `AgentDefinition`990 `AgentDefinition`

947</h3>991</h3>


1268Para información completa sobre la creación y uso de plugins, vea [Plugins](/docs/es/agent-sdk/plugins).1312Para información completa sobre la creación y uso de plugins, vea [Plugins](/docs/es/agent-sdk/plugins).

1269 1313 

1270<h2 id="message-types">1314<h2 id="message-types">

1271 Tipos de Mensaje1315 Tipos de Mensajes

1272</h2>1316</h2>

1273 1317 

1274<h3 id="sdkmessage">1318<h3 id="sdkmessage">


1328 type: "assistant";1372 type: "assistant";

1329 uuid: UUID;1373 uuid: UUID;

1330 session_id: string;1374 session_id: string;

1331 message: BetaMessage; // Del SDK de Anthropic1375 message: BetaMessage; // From Anthropic SDK

1332 parent_tool_use_id: string | null;1376 parent_tool_use_id: string | null;

1333 error?: SDKAssistantMessageError;1377 error?: SDKAssistantMessageError;

1334 aborted?: true;1378 aborted?: true;


1339};1383};

1340```1384```

1341 1385 

1342El campo `message` es un [`BetaMessage`](https://platform.claude.com/docs/es/api/messages/create) del SDK de Anthropic. Incluye campos como `id`, `content`, `model`, `stop_reason` y `usage`.1386El campo `message` es un [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create) del SDK de Anthropic. Incluye campos como `id`, `content`, `model`, `stop_reason` y `usage`.

1343 1387 

1344`SDKAssistantMessageError` es uno de: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'`, o `'unknown'`. Cuatro de estos valores significan más de lo que sus nombres dicen:1388`SDKAssistantMessageError` es uno de: `'authentication_failed'`, `'oauth_org_not_allowed'`, `'account_on_hold'`, `'billing_error'`, `'rate_limit'`, `'overloaded'`, `'invalid_request'`, `'model_not_found'`, `'server_error'`, `'max_output_tokens'`, `'cloud_credential_error'`, o `'unknown'`. Cuatro de estos valores significan más de lo que sus nombres dicen:

1345 1389 


1348* `'account_on_hold'`: [su cuenta está en espera](/docs/es/errors#your-account-is-on-hold)1392* `'account_on_hold'`: [su cuenta está en espera](/docs/es/errors#your-account-is-on-hold)

1349* `'cloud_credential_error'`: Claude Code no pudo obtener credenciales de AWS o Google Cloud utilizables en la máquina en la que se ejecuta, por lo que ninguna solicitud llegó al proveedor de nube. La causa habitual es un inicio de sesión en la nube que expiró o nunca se completó en esa máquina, aunque un servicio de credenciales brevemente inaccesible reporta el mismo valor. Consulte [No se pudieron cargar las credenciales de AWS o Google Cloud](/docs/es/errors#could-not-load-aws-or-google-cloud-credentials). Requiere TypeScript Agent SDK v0.3.267 o posterior, que incluye Claude Code v2.1.2671393* `'cloud_credential_error'`: Claude Code no pudo obtener credenciales de AWS o Google Cloud utilizables en la máquina en la que se ejecuta, por lo que ninguna solicitud llegó al proveedor de nube. La causa habitual es un inicio de sesión en la nube que expiró o nunca se completó en esa máquina, aunque un servicio de credenciales brevemente inaccesible reporta el mismo valor. Consulte [No se pudieron cargar las credenciales de AWS o Google Cloud](/docs/es/errors#could-not-load-aws-or-google-cloud-credentials). Requiere TypeScript Agent SDK v0.3.267 o posterior, que incluye Claude Code v2.1.267

1350 1394 

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

1352 1396 

1353Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer mensaje del asistente del turno, bajo las condiciones en [`user_message_uuid`](#user_message_uuid).1397Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer mensaje del asistente del turno, bajo las condiciones en [`user_message_uuid`](#user_message_uuid).

1354 1398 

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

1356 1400 

1357`context_usage` es una copia estructurada del informe `/context`, escrita como [`SDKContextUsage`](#sdkcontextusage), y requiere Agent SDK v0.3.232 o posterior. Cuando envía `/context` como un aviso, Claude Code entrega el informe como un mensaje del asistente cuyo `message.content` contiene la tabla de markdown, y adjunta `context_usage` a ese mismo mensaje. Claude Code no establece el campo en ningún otro mensaje del asistente, y las versiones anteriores entregan la tabla `/context` sin él, así que lea el desglose del campo cuando esté presente y recurra al texto de markdown cuando no lo esté.1401`context_usage` es una copia estructurada del informe `/context`, escrita como [`SDKContextUsage`](#sdkcontextusage), y requiere Agent SDK v0.3.232 o posterior. Cuando envía `/context` como un prompt, Claude Code entrega el informe como un mensaje del asistente cuyo `message.content` contiene la tabla de markdown, y adjunta `context_usage` a ese mismo mensaje. Claude Code no establece el campo en ningún otro mensaje del asistente, y las versiones anteriores entregan la tabla `/context` sin él, así que lea el desglose del campo cuando esté presente y recurra al texto de markdown cuando no lo esté.

1358 1402 

1359<h3 id="sdkusermessage">1403<h3 id="sdkusermessage">

1360 `SDKUserMessage`1404 `SDKUserMessage`


1367 type: "user";1411 type: "user";

1368 uuid?: UUID;1412 uuid?: UUID;

1369 session_id?: string;1413 session_id?: string;

1370 message: MessageParam; // Del SDK de Anthropic1414 message: MessageParam; // From Anthropic SDK

1415 pasted_content?: MessageParam["content"][];

1371 parent_tool_use_id: string | null;1416 parent_tool_use_id: string | null;

1372 isSynthetic?: boolean;1417 isSynthetic?: boolean;

1373 shouldQuery?: boolean;1418 shouldQuery?: boolean;

1374 tool_use_result?: unknown;1419 tool_use_result?: unknown;

1375 origin?: SDKMessageOrigin;1420 origin?: SDKMessageOrigin;

1421 inline_pastes?: string[];

1376};1422};

1377```1423```

1378 1424 

1379Establezca `shouldQuery` en `false` para añadir el mensaje a la transcripción sin activar un turno del asistente. El mensaje se mantiene y se fusiona en el siguiente mensaje de usuario que sí activa un turno. Use esto para inyectar contexto, como la salida de un comando que ejecutó fuera de banda, sin gastar una llamada de modelo en él.1425Establezca `pasted_content` para enviar contenido que el usuario pegó en su interfaz de prompt en lugar de escribir, una entrada por pegado, cada una una cadena o una matriz de bloques de contenido. Claude Code añade el texto de cada entrada después del texto escrito, en orden, y puede envolver cada pegado en etiquetas `<pasted_content>`. Los bloques que no sean texto se ignoran, así que envíe imágenes y documentos en `message.content`. Requiere Agent SDK v0.3.277 o posterior.

1426 

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

1428 

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

1380 1430 

1381En un mensaje que lleva un bloque `tool_result`, `tool_use_result` es el objeto de salida estructurada de la herramienta en lugar del texto enviado al modelo. Su forma depende de la herramienta nombrada por el bloque `tool_use` coincidente, por lo que el campo se escribe como `unknown`; las formas integradas se enumeran en [Tipos de Salida de Herramienta](#tool-output-types).1431Para la herramienta `Agent`, `tool_use_result` es [`AgentOutput`](#agent-2). En un resultado `completed`, `content` contiene el informe del subagente sin el ID del agente y el tráiler de uso que Claude Code añade al texto `tool_result`, así que renderice desde `tool_use_result` en lugar de analizar ese texto.

1382 1432 

1383Para la herramienta `Agent`, `tool_use_result` es [`AgentOutput`](#agent-2). En un resultado `completed`, `content` contiene el informe del subagente sin el ID del agente y el remolque de uso que Claude Code añade al texto `tool_result`, así que renderice desde `tool_use_result` en lugar de analizar ese texto.1433Para una herramienta MCP cuyo resultado contiene bloques `resource_link`, `tool_use_result` es un objeto con una matriz `resourceLinks` de entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude recibe cada enlace como una línea de texto en el bloque `tool_result`, así que lea `resourceLinks` para renderizar los archivos que el servidor devolvió en lugar de analizar ese texto. Claude Code omite `resourceLinks` cuando el resultado no tiene enlaces y en resultados de subagentes, mantiene como máximo 50 enlaces por resultado, y deja de añadir enlaces una vez que la matriz alcanza 64 KiB de JSON serializado. `resourceLinks` requiere Agent SDK v0.3.257 o posterior.

1384 1434 

1385Para una herramienta MCP cuyo resultado contiene bloques `resource_link`, `tool_use_result` es un objeto con un array `resourceLinks` de entradas [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude recibe cada enlace como una línea de texto en el bloque `tool_result`, así que lea `resourceLinks` para renderizar los archivos que el servidor devolvió en lugar de analizar ese texto. Claude Code omite `resourceLinks` cuando el resultado no tiene enlaces y en resultados de subagentes, mantiene como máximo 50 enlaces por resultado, y deja de añadir enlaces una vez que el array alcanza 64 KiB de JSON serializado. `resourceLinks` requiere Agent SDK v0.3.257 o posterior.1435Establezca `inline_pastes` para indicar a Claude Code qué partes de `message.content` el usuario pegó en lugar de escribir, una cadena por pegado. El texto del prompt permanece donde el usuario lo puso. Claude Code puede envolver cada pegado listado en etiquetas `<pasted_content>` donde se encuentra, para que Claude pueda distinguir el material pegado de las propias palabras del usuario. Solo los pegados en el último bloque de texto del prompt se envuelven. Requiere TypeScript Agent SDK v0.3.280 o posterior.

1386 1436 

1387<h3 id="sdkusermessagereplay">1437<h3 id="sdkusermessagereplay">

1388 `SDKUserMessageReplay`1438 `SDKUserMessageReplay`


1404};1454};

1405```1455```

1406 1456 

1407Un turno de usuario inyectado desde fuera de la sesión, uno cuyo [`origin`](#sdkmessageorigin) es `peer` o `channel`, llega a la transmisión como una reproducción ya sea que se entregó durante un turno activo o inició un nuevo turno mientras la sesión estaba inactiva. Antes de v2.1.207, un turno inyectado entregado mientras la sesión estaba inactiva no producía ningún mensaje en la transmisión y solo aparecía cuando volvía a leer la transcripción.1457Un turno de usuario inyectado desde fuera de la sesión, uno cuyo [`origin`](#sdkmessageorigin) es `peer` o `channel`, llega a la transmisión como una reproducción ya sea que se entregara durante un turno activo o iniciara un nuevo turno mientras la sesión estaba inactiva. Antes de v2.1.207, un turno inyectado entregado mientras la sesión estaba inactiva no producía ningún mensaje en la transmisión y solo aparecía cuando volvía a leer la transcripción.

1408 1458 

1409<h3 id="sdkresultmessage">1459<h3 id="sdkresultmessage">

1410 `SDKResultMessage`1460 `SDKResultMessage`


1480Varios campos en el resultado llevan detalles de diagnóstico más allá de `subtype`:1530Varios campos en el resultado llevan detalles de diagnóstico más allá de `subtype`:

1481 1531 

1482* `api_error_status`: el código de estado HTTP del error de API que terminó la conversación. Ausente o `null` cuando el turno terminó sin un error de API.1532* `api_error_status`: el código de estado HTTP del error de API que terminó la conversación. Ausente o `null` cuando el turno terminó sin un error de API.

1483* `ttft_ms`: tiempo hasta el primer token en milisegundos, medido cuando llega el primer mensaje completo del asistente. Presente solo en el brazo de éxito.1533* `ttft_ms`: tiempo hasta el primer token en milisegundos, medido cuando llega el primer mensaje del asistente completo. Presente solo en el brazo de éxito.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1498 1548 

1499Use el código de razón para explicar por qué el modo rápido está desactivado en su propia interfaz de usuario en lugar de volver a derivar la disponibilidad. Cada código nombra la verificación que bloqueó el modo rápido:1549Use el código de razón para explicar por qué el modo rápido está desactivado en su propia interfaz en lugar de volver a derivar la disponibilidad. Cada código nombra la verificación que bloqueó el modo rápido:

1500 1550 

1501| Código de razón | Significado |1551| Código de razón | Significado |

1502| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |1552| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |


1505| `extra_usage_disabled` | Los créditos de uso están desactivados para la cuenta |1555| `extra_usage_disabled` | Los créditos de uso están desactivados para la cuenta |

1506| `network_error` | La [verificación de disponibilidad](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) no pudo alcanzar `api.anthropic.com` |1556| `network_error` | La [verificación de disponibilidad](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) no pudo alcanzar `api.anthropic.com` |

1507| `unknown` | Claude Code no pudo determinar la disponibilidad |1557| `unknown` | Claude Code no pudo determinar la disponibilidad |

1508| `not_first_party` | La sesión usa un proveedor que no es la API de Anthropic |1558| `not_first_party` | La sesión utiliza un proveedor que no es la API de Anthropic |

1509| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/es/env-vars) está establecido |1559| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/es/env-vars) está establecido |

1510| `model_not_allowed` | El modelo Opus de modo rápido no está en la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de la organización |1560| `model_not_allowed` | El modelo Opus de modo rápido no está en la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de la organización |

1511| `sdk_opt_in_required` | La sesión no ha optado por el modo rápido: pase `fastMode: true` en la opción [`settings`](#options) o a través de [`applyFlagSettings()`](#applyflagsettings) |1561| `sdk_opt_in_required` | La sesión no ha optado por el modo rápido: pase `fastMode: true` en la opción [`settings`](#options) o a través de [`applyFlagSettings()`](#applyflagsettings) |


1513 1563 

1514El mismo par de campos aparece en [`SDKSystemMessage`](#sdksystemmessage) y en [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), para que pueda leer el estado del modo rápido antes del primer turno.1564El mismo par de campos aparece en [`SDKSystemMessage`](#sdksystemmessage) y en [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), para que pueda leer el estado del modo rápido antes del primer turno.

1515 1565 

1516El campo `origin` reenvía el [`SDKMessageOrigin`](#sdkmessageorigin) del mensaje de usuario que activó este resultado. Cuando el SDK inyecta un turno de seguimiento sintético, como para una tarea de fondo finalizada, el `SDKResultMessage` resultante lleva `origin: { kind: "task-notification" }`. Las rutinas cuyo disparador se activó y los mensajes verificados por el servidor de sus otras sesiones llegan con este tipo también, cada uno con el `subkind` descrito en [Subtipos de notificación de tarea](#task-notification-subkinds). Verifique `kind` para distinguir los resultados que responden a su aviso de los seguimientos inyectados antes de enrutarlos o suprimirlos.1566El campo `origin` reenvía el [`SDKMessageOrigin`](#sdkmessageorigin) del mensaje del usuario que activó este resultado. Cuando el SDK inyecta un turno de seguimiento sintético, como para una tarea de fondo terminada, el `SDKResultMessage` resultante lleva `origin: { kind: "task-notification" }`. Las rutinas cuyo disparador se activó y los mensajes verificados por el servidor de sus otras sesiones llegan con este tipo también, cada uno con el `subkind` descrito en [Subtipos de notificación de tarea](#task-notification-subkinds). Verifique `kind` para distinguir los resultados que responden a su prompt de los seguimientos inyectados antes de enrutarlos o suprimirlos. Si su aplicación [declara ejecuciones programadas](#declare-a-scheduled-run), sus resultados también llevan `kind: "task-notification"`, así que no suprima solo en `kind`.

1517 1567 

1518El campo está ausente para los resultados emitidos antes de cualquier turno de usuario, como errores de inicio.1568Cuando varias finalizaciones de tareas de fondo se ponen en cola juntas, Claude Code puede responderlas en un turno en lugar de uno cada una. Cada finalización aún produce su propio resultado con este origen. Todos excepto el último de los completados que Claude Code responde juntos producen resultados vacíos con `num_turns: 0`, en orden, y el resultado del último lleva el turno que responde a todos ellos.

1519 1569 

1520Cuando un hook `PreToolUse` devuelve `permissionDecision: "defer"`, el resultado tiene `stop_reason: "tool_deferred"` y `deferred_tool_use` lleva el `id`, `name` e `input` de la herramienta pendiente. Lea este campo para mostrar la solicitud en su propia interfaz de usuario, luego reanude con el mismo `session_id` para continuar. Consulte [Diferir una llamada de herramienta para más tarde](/docs/es/hooks#defer-a-tool-call-for-later) para el viaje completo.1570El campo está ausente para resultados emitidos antes de cualquier turno de usuario, como errores de inicio.

1571 

1572Cuando un hook `PreToolUse` devuelve `permissionDecision: "defer"`, el resultado tiene `stop_reason: "tool_deferred"` y `deferred_tool_use` lleva el `id`, `name` e `input` de la herramienta pendiente. Lea este campo para mostrar la solicitud en su propia interfaz, luego reanude con el mismo `session_id` para continuar. Consulte [Diferir una llamada de herramienta para más tarde](/docs/es/hooks#defer-a-tool-call-for-later) para el viaje completo.

1521 1573 

1522<h4 id="user_message_uuid">1574<h4 id="user_message_uuid">

1523 `user_message_uuid`1575 `user_message_uuid`

1524</h4>1576</h4>

1525 1577 

1526El `uuid` del [`SDKUserMessage`](#sdkusermessage) que inició el turno, repetido para que pueda hacer coincidir la respuesta de Claude Code con el mensaje que envió. Claude Code lo repite solo si establece `uuid` en ese mensaje. El campo es opcional en `SDKUserMessage`, y un aviso de cadena pasado a `query()` no lleva ninguno.1578El `uuid` del [`SDKUserMessage`](#sdkusermessage) que el turno está respondiendo, repetido para que pueda hacer coincidir la respuesta de Claude Code con el mensaje que envió. Claude Code repite un `uuid` solo si establece uno en el mensaje. El campo es opcional en `SDKUserMessage`, y un prompt de cadena pasado a `query()` no lleva ninguno.

1527 1579 

1528Cuál de sus mensajes responde un turno depende de cómo comenzó el turno:1580Qué mensaje de los suyos responde un turno depende de cómo comenzó el turno:

1529 1581 

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

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

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

1533 1585 

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

1535 1587 

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

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

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

1539 1591 

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

1541 1593 

1542* Marcos de respuesta que no sean esas primeras respuestas1594* Marcos de respuesta que no sean esas primeras respuestas

1543* Marcos de subagentes1595* Marcos de subagente

1544* Turnos que responden ningún mensaje con un `uuid`: el turno respondió un mensaje que envió sin uno, o Claude Code inició el turno él mismo y no recogió ningún mensaje regular que tenga uno1596* Turnos que no responden ningún mensaje con un `uuid`: el turno respondió un mensaje que envió sin uno, o Claude Code inició el turno por sí mismo y no recogió ningún mensaje regular que tenga uno

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

1546 1598 

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

1548 `user_message_uuids`1600 `user_message_uuids`


1552 1604 

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

1554 1606 

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

1556 1608 

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

1558 1610 

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

1560 `queued_turn_count`1612 `queued_turn_count`


1562 1614 

1563El número de mensajes que envió con [`origin: { kind: "human" }`](#sdkmessageorigin) que aún están esperando en la cola de comandos cuando Claude Code produjo el resultado. Requiere Agent SDK v0.3.242 o posterior.1615El número de mensajes que envió con [`origin: { kind: "human" }`](#sdkmessageorigin) que aún están esperando en la cola de comandos cuando Claude Code produjo el resultado. Requiere Agent SDK v0.3.242 o posterior.

1564 1616 

1565Lo que `0` y un campo ausente le dicen:1617Qué significan `0` y un campo ausente:

1566 1618 

1567* **`0`**: Claude Code no cuenta los mensajes que envió sin esa `origin`, y no cuenta notificaciones de tareas, así que un turno aún puede seguir.1619* **`0`**: Claude Code no cuenta los mensajes que envió sin ese `origin`, y no cuenta notificaciones de tareas, así que un turno aún puede seguir.

1568* **Ausente**: el resultado final que Claude Code emite después de un bloqueo o error fatal de inicio omite el campo, y [puede llevar totales puestos a cero](/docs/es/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).1620* **Ausente**: el resultado final que Claude Code emite después de un bloqueo o error de inicio fatal omite el campo, y [puede llevar totales puestos a cero](/docs/es/agent-sdk/cost-tracking#recover-totals-after-a-session-crash).

1569 1621 

1570<h4 id="startup_failure_reason">1622<h4 id="startup_failure_reason">

1571 `startup_failure_reason`1623 `startup_failure_reason`

1572</h4>1624</h4>

1573 1625 

1574Por qué Claude Code se negó a iniciar, para que su aplicación pueda ofrecer la solución en lugar de un reintento. Claude Code lo establece en el resultado `error_during_execution` que escribe antes de salir en un fallo de inicio conocido. Ese resultado lleva totales puestos a cero, y su array `errors` lleva el mismo texto que stderr. El campo está ausente en todos los otros resultados. Requiere Agent SDK v0.3.274 o posterior.1626Por qué Claude Code se negó a iniciar, para que su aplicación pueda ofrecer la solución en lugar de un reintento. Claude Code lo establece en el resultado `error_during_execution` que escribe antes de salir en un fallo de inicio conocido. Ese resultado lleva totales puestos a cero, y su matriz `errors` lleva el mismo texto que stderr. El campo está ausente en cada otro resultado. Requiere Agent SDK v0.3.274 o posterior.

1575 1627 

1576Establezca `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` en `1` en [`env`](#options) para recibir este resultado para cada valor `SDKStartupFailureReason`. Sin esa variable, Claude Code escribe el resultado solo para estos fallos, y el resto termina con salida stderr, una salida no cero, y ningún mensaje de resultado:1628Establezca `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` en `1` en [`env`](#options) para recibir este resultado para cada valor `SDKStartupFailureReason`. Sin esa variable, Claude Code escribe el resultado solo para estos fallos, y el resto termina con salida stderr, una salida distinta de cero, y ningún mensaje de resultado:

1577 1629 

1578* Un resumen que Claude Code detiene porque no puede [devolver la sesión a su worktree](/docs/es/worktrees#the-session-resumes-outside-its-worktree), con `worktree_unverified` o `worktree_resume_refused`. Esa sección dice qué error lleva qué valor.1630* Una reanudación que Claude Code detiene porque no puede [devolver la sesión a su árbol de trabajo](/docs/es/worktrees#the-session-resumes-outside-its-worktree), con `worktree_unverified` o `worktree_resume_refused`. Esa sección dice qué error lleva qué valor.

1579* Una [`continue`](#options) rechazada de una conversación que una sesión de fondo mantiene, con `session_held_by_background`. Para una [`resume`](#options) rechazada de tal conversación, Claude Code escribe el resultado solo cuando la variable está establecida.1631* Una [`continue`](#options) rechazada de una conversación que una sesión de fondo mantiene, con `session_held_by_background`. Para una [`resume`](#options) rechazada de tal conversación, Claude Code escribe el resultado solo cuando la variable está establecida.

1580 1632 

1581```typescript theme={null}1633```typescript theme={null}


1601Cada valor nombra un rechazo:1653Cada valor nombra un rechazo:

1602 1654 

1603| Valor | Qué detuvo la sesión |1655| Valor | Qué detuvo la sesión |

1604| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1656| :------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

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

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

1608| `managed_settings_invalid` | La configuración de política administrada no pudo leerse, o el pin no nombra ninguna organización |1660| `managed_settings_invalid` | La configuración de política administrada no pudo leerse, o el pin no nombra ninguna organización |


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

1612| `proxy_invalid` | Una configuración de proxy no es una URL completa |1664| `proxy_invalid` | Una configuración de proxy no es una URL completa |

1613| `temp_dir_unusable` | El directorio temporal por usuario no es seguro o no pudo crearse |1665| `temp_dir_unusable` | El directorio temporal por usuario no es seguro o no pudo crearse |

1614| `cwd_unavailable` | El directorio de trabajo fue eliminado, movido, o no puede leerse |1666| `cwd_unavailable` | El directorio de trabajo fue eliminado, movido o no se puede leer |

1615| `shell_tool_missing` | En Windows, no hay herramienta de shell disponible: Git Bash falta, y PowerShell falta o está desactivado con `CLAUDE_CODE_USE_POWERSHELL_TOOL` |1667| `shell_tool_missing` | En Windows, no hay herramienta de shell disponible: Git Bash falta, y PowerShell falta o está desactivado con `CLAUDE_CODE_USE_POWERSHELL_TOOL` |

1616| `session_held_by_background` | La conversación a reanudar o continuar se ejecuta como una [sesión de fondo](/docs/es/agent-view) |1668| `session_held_by_background` | La conversación a reanudar o continuar se ejecuta como una [sesión de fondo](/docs/es/agent-view) |

1617| `worktree_resume_refused` | El worktree de la sesión falló sus verificaciones de seguridad, o el resumen se lanzó desde dentro de él. `errors` dice si ejecutar el mismo resumen nuevamente continúa sin el worktree |1669| `worktree_resume_refused` | El árbol de trabajo de la sesión falló sus verificaciones de seguridad, o la reanudación se lanzó desde dentro de él. `errors` dice si ejecutar la misma reanudación nuevamente continúa sin el árbol de trabajo |

1618| `worktree_unverified` | El worktree de la sesión no pudo verificarse ahora, y reintentar puede tener éxito |1670| `worktree_unverified` | El árbol de trabajo de la sesión no pudo verificarse ahora, y reintentar puede tener éxito |

1619| `cli_version_too_old` | Esta versión de Claude Code está por debajo del mínimo que Anthropic requiere |1671| `cli_version_too_old` | Esta versión de Claude Code está por debajo del mínimo que Anthropic requiere |

1620| `bypass_root` | Se solicitó el modo de permisos de derivación mientras se ejecutaba como root |1672| `bypass_root` | Se solicitó el modo de permisos de derivación mientras se ejecutaba como root |

1621 1673 


1656};1708};

1657```1709```

1658 1710 

1659`fast_mode_state` reporta el estado [modo rápido](/docs/es/fast-mode) de la sesión. Cuando algo bloquea el modo rápido, `fast_mode_disabled_reason` nombra la verificación que lo bloqueó; el campo requiere Claude Code v2.1.219 o posterior. Para los códigos de razón y sus significados, consulte [`fast_mode_disabled_reason`](#sdkresultmessage) en el mensaje de resultado.1711`fast_mode_state` reporta el estado del [modo rápido](/docs/es/fast-mode) de la sesión. Cuando algo bloquea el modo rápido, `fast_mode_disabled_reason` nombra la verificación que lo bloqueó; el campo requiere Claude Code v2.1.219 o posterior. Para los códigos de razón y sus significados, consulte [`fast_mode_disabled_reason`](#sdkresultmessage) en el mensaje de resultado.

1660 1712 

1661`terminal_slash_commands` nombra las entradas en `slash_commands` cuya interfaz está vinculada a la terminal local, como `exit`. Puede enviarlas como cualquier otra entrada en `slash_commands`; el campo existe para que un cliente remoto o móvil pueda ocultarlas de sus menús de comandos. El campo está presente solo cuando no está vacío, y requiere Agent SDK v0.3.229 o posterior.1713`terminal_slash_commands` nombra las entradas en `slash_commands` cuya interfaz está vinculada a la terminal local, como `exit`. Puede enviarlas como cualquier otra entrada en `slash_commands`; el campo existe para que un cliente remoto o móvil pueda ocultarlas de sus menús de comandos. El campo está presente solo cuando no está vacío, y requiere Agent SDK v0.3.229 o posterior.

1662 1714 

1663*1715*

1664 1716 

1665`source` en cada entrada `mcp_servers`: de dónde provino la definición del servidor, con los mismos valores que [`McpServerStatus`](#mcpserverstatus)'s `source`. Requiere Agent SDK v0.3.274 o posterior.1717`source` en cada entrada `mcp_servers`: de dónde proviene la definición del servidor, con los mismos valores que [`McpServerStatus`](#mcpserverstatus)'s `source`. Requiere Agent SDK v0.3.274 o posterior.

1666 1718 

1667*1719*

1668 1720 

1669`effort`: el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) que Claude Code envía en la siguiente solicitud de la sesión, o `null` cuando no envía ninguno. Claude Code establece el campo solo en el mensaje de inicio que envía a clientes [Control Remoto](/docs/es/remote-control), y lo omite del mensaje de inicio que su aplicación lee. Requiere Agent SDK v0.3.234 o posterior.1721`effort`: el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) que Claude Code envía en la siguiente solicitud de la sesión, o `null` cuando no envía ninguno. Claude Code establece el campo solo en el mensaje de inicialización que envía a clientes de [Control Remoto](/docs/es/remote-control), y lo omite del mensaje de inicialización que su aplicación lee. Requiere Agent SDK v0.3.234 o posterior.

1670 1722 

1671El array `capabilities` nombra los comportamientos de protocolo que esta CLI implementa, para que pueda detectar características en lugar de comparar cadenas `claude_code_version`. Es un conjunto abierto: ignore los valores que no reconozca, y verifique la capacidad específica cuyo comportamiento depende. El campo requiere Claude Code v2.1.205 o posterior y está ausente en CLI anteriores.1723La matriz `capabilities` nombra los comportamientos del protocolo que implementa este CLI, para que pueda detectar características en lugar de comparar cadenas `claude_code_version`. Es un conjunto abierto: ignore los valores que no reconozca, y verifique la capacidad específica cuyo comportamiento depende. El campo requiere Claude Code v2.1.205 o posterior y está ausente en CLI anteriores.

1672 1724 

1673| Capacidad | Significado |1725| Capacidad | Significado |

1674| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1726| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

1677 1729 

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

1679 `SDKPartialAssistantMessage`1731 `SDKPartialAssistantMessage`

1680</h3>1732</h3>

1681 1733 

1682Mensaje parcial de transmisión (solo cuando `includePartialMessages` es true). El campo `parent_tool_use_id` siempre es `null`: los eventos de transmisión se emiten solo para la sesión principal. Para la atribución de subagentes, use mensajes completos, que llevan `parent_tool_use_id`, o habilite [`forwardSubagentText`](#options) para recibir texto y pensamiento de subagentes como mensajes completos.1734Mensaje parcial de transmisión (solo cuando `includePartialMessages` es true). El campo `parent_tool_use_id` siempre es `null`: los eventos de transmisión se emiten solo para la sesión principal. Para atribución de subagente, use mensajes completos, que llevan `parent_tool_use_id`, o habilite [`forwardSubagentText`](#options) para recibir texto y pensamiento de subagente como mensajes completos.

1683 1735 

1684```typescript theme={null}1736```typescript theme={null}

1685type SDKPartialAssistantMessage = {1737type SDKPartialAssistantMessage = {

1686 type: "stream_event";1738 type: "stream_event";

1687 event: BetaRawMessageStreamEvent; // Del SDK de Anthropic1739 event: BetaRawMessageStreamEvent; // From Anthropic SDK

1688 parent_tool_use_id: string | null;1740 parent_tool_use_id: string | null;

1689 uuid: UUID;1741 uuid: UUID;

1690 session_id: string;1742 session_id: string;

1691 ttft_ms?: number; // Tiempo hasta el primer token en ms, presente solo en eventos message_start1743 ttft_ms?: number; // Time to first token in ms, present only on message_start events

1692 user_message_uuid?: string;1744 user_message_uuid?: string;

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

1694};1746};

1695```1747```

1696 1748 

1697Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer evento de transmisión que no es ping del turno, y de nuevo cuando el mensaje que el turno está respondiendo cambia, bajo las condiciones en [`user_message_uuid`](#user_message_uuid).1749Claude Code establece `user_message_uuid` y `user_message_uuids` en el primer evento de transmisión que no es ping del turno, y nuevamente cuando el mensaje que el turno está respondiendo cambia, bajo las condiciones en [`user_message_uuid`](#user_message_uuid).

1698 1750 

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

1700 `SDKCompactBoundaryMessage`1752 `SDKCompactBoundaryMessage`


1719 `SDKInformationalMessage`1771 `SDKInformationalMessage`

1720</h3>1772</h3>

1721 1773 

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

1723 1775 

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

1725type SDKInformationalMessage = {1777type SDKInformationalMessage = {


1738 `SDKWorkerShuttingDownMessage`1790 `SDKWorkerShuttingDownMessage`

1739</h3>1791</h3>

1740 1792 

1741Se emite en el desmontaje elegante del worker para que los clientes remotos puedan mostrar por qué el worker desapareció en lugar de esperar el tiempo de espera del latido. El `reason` es una cadena corta en snake\_case establecida por la CLI del host, como `"host_exit"` o `"remote_control_disabled"`. Actúe sobre esto solo cuando transmita en vivo. Una sesión reanudada reproduce instancias pasadas de este mensaje, así que ignórelas en ese caso.1793Emitido en el desmontaje gracioso del trabajador para que los clientes remotos puedan mostrar por qué el trabajador salió en lugar de esperar el tiempo de espera del latido. La `reason` es una cadena corta en snake\_case establecida por el CLI del host, como `"host_exit"` o `"remote_control_disabled"`. Actúe sobre esto solo cuando transmita en vivo. Una sesión reanudada reproduce instancias pasadas de este mensaje, así que ignórelas en ese caso.

1742 1794 

1743```typescript theme={null}1795```typescript theme={null}

1744type SDKWorkerShuttingDownMessage = {1796type SDKWorkerShuttingDownMessage = {


1754 `SDKPluginInstallMessage`1806 `SDKPluginInstallMessage`

1755</h3>1807</h3>

1756 1808 

1757Evento de progreso de instalación de plugin. Se emite cuando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/es/env-vars) está establecido, para que su aplicación Agent SDK pueda rastrear la instalación de plugins del mercado antes del primer turno. Los estados `started` y `completed` cierran la instalación general. Los estados `installed` y `failed` reportan mercados individuales e incluyen `name`.1809Evento de progreso de instalación de plugin. Emitido cuando [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/es/env-vars) está establecido, para que su aplicación Agent SDK pueda rastrear la instalación de plugin del mercado antes del primer turno. Los estados `started` y `completed` cierran la instalación general. Los estados `installed` y `failed` reportan mercados individuales e incluyen `name`.

1758 1810 

1759```typescript theme={null}1811```typescript theme={null}

1760type SDKPluginInstallMessage = {1812type SDKPluginInstallMessage = {


1772 `SDKPermissionDeniedMessage`1824 `SDKPermissionDeniedMessage`

1773</h3>1825</h3>

1774 1826 

1775Evento de transmisión emitido cuando el sistema de permisos deniega una llamada de herramienta sin un aviso interactivo. Úselo para renderizar la denegación en su interfaz de usuario a medida que sucede, en lugar de solo observar el resultado de la herramienta `is_error` que sigue. Qué denegaciones reporta depende de cómo la ejecución maneja los avisos de permisos:1827Evento de transmisión emitido cuando el sistema de permisos deniega una llamada de herramienta sin un prompt interactivo. Úselo para renderizar la denegación en su interfaz a medida que sucede, en lugar de solo observar el resultado de herramienta `is_error` que sigue. Qué denegaciones reporta depende de cómo la ejecución maneja los prompts de permiso:

1776 1828 

1777* **Con una devolución de llamada [`canUseTool`](#canusetool)** y el [`permissionPrompts: 'host'`](#options) predeterminado: los avisos de permisos van a su devolución de llamada, y este evento reporta las denegaciones que Claude Code decide por su cuenta sin llamarla.1829* **Con una devolución de llamada [`canUseTool`](#canusetool) y el [`permissionPrompts: 'host'`](#options) predeterminado**: los prompts de permiso van a su devolución de llamada, y este evento reporta las denegaciones que Claude Code decide por sí solo sin llamarla.

1778*1830*

1779 1831 

1780**Sin ninguno**: una ejecución `-p` desnuda, o `query()` que no establece ni `canUseTool` ni `permissionPromptToolName`, deniega cualquier llamada de herramienta que habría solicitado, y este evento reporta esas denegaciones así como las que Claude Code decide por su cuenta. Antes de v2.1.223, Claude Code no emitía este evento en ejecuciones sin una devolución de llamada.1832**Sin ninguno**: una ejecución `-p` desnuda, o `query()` que no establece ni `canUseTool` ni `permissionPromptToolName`, deniega cualquier llamada de herramienta que habría solicitado, y este evento reporta esas denegaciones así como las que Claude Code decide por sí solo. Antes de v2.1.223, Claude Code no emitía este evento en ejecuciones sin una devolución de llamada.

1781 1833 

1782* **Con una herramienta de aviso MCP**, establecida con `permissionPromptToolName` o el indicador [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), y el `permissionPrompts: 'host'` predeterminado: Claude Code no emite este evento en absoluto, ni siquiera para las denegaciones de reglas que decide por su cuenta.1834* **Con una herramienta de prompt MCP**, establecida con `permissionPromptToolName` o la bandera [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags), y el `permissionPrompts: 'host'` predeterminado: Claude Code no emite este evento en absoluto, ni siquiera para las denegaciones de regla que decide por sí solo.

1783*1835*

1784 1836 

1785**Con [`permissionPrompts: 'none'`](#options)**: Claude Code deniega las llamadas que habrían solicitado, incluso cuando `canUseTool` o una herramienta de aviso MCP también está establecida, y este evento reporta esas denegaciones así como las que Claude Code decide por su cuenta. Requiere Claude Code v2.1.259 o posterior.1837**Con [`permissionPrompts: 'none'`](#options)**: Claude Code deniega las llamadas que habrían solicitado, incluso cuando `canUseTool` o una herramienta de prompt MCP también está establecida, y este evento reporta esas denegaciones así como las que Claude Code decide por sí solo. Requiere Claude Code v2.1.259 o posterior.

1786 1838 

1787En cada configuración, este evento omite cualquier denegación decidida en la ruta del hook `PreToolUse`, ya sea que el hook denegara la llamada en sí o una regla de denegación anulara la decisión de permitir o preguntar del hook. El evento también es de mejor esfuerzo: ocasionalmente Claude Code registra una denegación sin emitir este evento, así que `permission_denials` en el [mensaje de resultado](#sdkresultmessage) es el registro autorizado.1839En cada configuración, este evento omite cualquier denegación decidida en la ruta del hook `PreToolUse`, ya sea que el hook denegara la llamada por sí solo o una regla de denegación anulara la decisión de permitir o preguntar del hook. El evento también es de mejor esfuerzo: ocasionalmente Claude Code registra una denegación sin emitir este evento, así que `permission_denials` en el [mensaje de resultado](#sdkresultmessage) es el registro autorizado.

1788 1840 

1789```typescript theme={null}1841```typescript theme={null}

1790type SDKPermissionDeniedMessage = {1842type SDKPermissionDeniedMessage = {


1807| `tool_use_id` | `string` | ID del bloque `tool_use` que esta denegación responde |1859| `tool_use_id` | `string` | ID del bloque `tool_use` que esta denegación responde |

1808| `agent_id` | `string` | ID del subagente cuando la llamada denegada se originó dentro de un subagente. Refleja el campo en `can_use_tool` para enrutamiento del lado del host |1860| `agent_id` | `string` | ID del subagente cuando la llamada denegada se originó dentro de un subagente. Refleja el campo en `can_use_tool` para enrutamiento del lado del host |

1809| `decision_reason_type` | `string` | Discriminador para el componente que decidió, como `"rule"`, `"mode"`, `"classifier"`, o `"asyncAgent"` |1861| `decision_reason_type` | `string` | Discriminador para el componente que decidió, como `"rule"`, `"mode"`, `"classifier"`, o `"asyncAgent"` |

1810| `decision_reason` | `string` | Razón legible por humanos del componente que decide, cuando está disponible |1862| `decision_reason` | `string` | Razón legible por humanos del componente que decidió, cuando está disponible |

1811| `message` | `string` | Mensaje de rechazo devuelto al modelo en el `tool_result` |1863| `message` | `string` | Mensaje de rechazo devuelto al modelo en el `tool_result` |

1812 1864 

1813<h3 id="sdkpermissiondenial">1865<h3 id="sdkpermissiondenial">


1865};1917};

1866```1918```

1867 1919 

1868La tabla lista lo que Claude Code pone en cada campo. Los campos de `model` a través de `over_limit` describen la sesión en su conjunto, y los campos de colección atribuyen tokens a elementos individuales.1920La tabla enumera lo que Claude Code pone en cada campo. Los campos de `model` a `over_limit` describen la sesión en su conjunto, y los campos de colección atribuyen tokens a elementos individuales.

1869 1921 

1870| Campo | Tipo | Descripción |1922| Campo | Tipo | Descripción |

1871| ---------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1923| ---------------- | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1872| `model` | `string` | El modelo del bucle principal para el cual Claude Code calculó el uso, no el de un subagente |1924| `model` | `string` | El modelo del bucle principal para el cual Claude Code calculó el uso, no el de un subagente |

1873| `total_tokens` | `number` | La estimación de Claude Code de los tokens en uso. No se fija a la ventana, así que puede exceder `raw_max_tokens` cuando la sesión está sobre el límite |1925| `total_tokens` | `number` | La estimación de Claude Code de los tokens en uso. No se fija a la ventana, por lo que puede exceder `raw_max_tokens` cuando la sesión está sobre el límite |

1874| `raw_max_tokens` | `number` | La ventana de contexto del modelo, o la [ventana de auto-compactación](/docs/es/model-config#context-window-and-auto-compaction) más baja cuando se aplica una, como la que establece o el límite de 200K que Claude Code aplica a algunos modelos con una ventana de 1M de tokens. Claude Code mide `total_tokens` contra esta ventana |1926| `raw_max_tokens` | `number` | La ventana de contexto del modelo, o la [ventana de auto-compactación](/docs/es/model-config#context-window-and-auto-compaction) más baja cuando se aplica una, como la que estableció o el límite de 200K que Claude Code aplica a algunos modelos con una ventana de 1M de tokens. Claude Code mide `total_tokens` contra esta ventana |

1875| `percentage` | `number` | `total_tokens` como un porcentaje redondeado de `raw_max_tokens`, así que puede exceder 100 cuando la sesión está sobre el límite |1927| `percentage` | `number` | `total_tokens` como un porcentaje redondeado de `raw_max_tokens`, por lo que puede exceder 100 cuando la sesión está sobre el límite |

1876| `over_limit` | `object` | Presente solo cuando `total_tokens` excede `raw_max_tokens`. `tokens_over` es la cantidad sobre, y `kind` dice cómo Claude Code resolvió la ventana |1928| `over_limit` | `object` | Presente solo cuando `total_tokens` excede `raw_max_tokens`. `tokens_over` es la cantidad sobre, y `kind` dice cómo Claude Code resolvió la ventana |

1877| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | Una entrada por fila del desglose de uso por categoría |1929| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | Una entrada por fila del desglose de uso por categoría |

1878| `mcp_tools` | `object[]` | Tokens atribuidos a cada herramienta MCP, con su nombre de cable, como `mcp__linear__create_issue`, y su `server_name` |1930| `mcp_tools` | `object[]` | Tokens atribuidos a cada herramienta MCP, con su nombre de cable, como `mcp__linear__create_issue`, y su `server_name` |

1879| `memory_files` | `object[]` | Tokens atribuidos a cada archivo de memoria cargado, con su `path` y una etiqueta de origen como `Project` o `User` en `type` |1931| `memory_files` | `object[]` | Tokens atribuidos a cada archivo de memoria cargado, con su `path` y una etiqueta de fuente como `Project` o `User` en `type` |

1880| `agents` | `object[]` | Tokens atribuidos a cada definición de subagente personalizado, con un identificador de origen como `projectSettings`, `userSettings`, o `plugin`. Los subagentes integrados no se enumeran |1932| `agents` | `object[]` | Tokens atribuidos a cada definición de subagente personalizado, con un identificador de fuente como `projectSettings`, `userSettings`, o `plugin`. Los subagentes integrados no se enumeran |

1881| `skills` | `object[]` | Tokens atribuidos a cada habilidad en el listado de habilidades, con un identificador de origen y, para habilidades de plugin, el nombre del plugin en `plugin_name`. Ausente cuando ninguna habilidad contribuye tokens |1933| `skills` | `object[]` | Tokens atribuidos a cada habilidad en la lista de habilidades, con un identificador de fuente y, para habilidades de plugin, el nombre del plugin en `plugin_name`. Ausente cuando ninguna habilidad contribuye tokens |

1882 1934 

1883`over_limit.kind` registra cómo Claude Code resolvió la ventana, no si la API acepta la siguiente solicitud:1935`over_limit.kind` registra cómo Claude Code resolvió la ventana, no si la API acepta la siguiente solicitud:

1884 1936 

1885* `hard_limit`: la ventana es lo que Claude Code cree que es el límite propio del modelo, pasado el cual la API rechaza solicitudes1937* `hard_limit`: la ventana es lo que Claude Code cree que es el límite propio del modelo, más allá del cual la API rechaza solicitudes

1886* `compaction_window`: la ventana es una ventana de política de compactación, que puede o no coincidir con el límite del modelo1938* `compaction_window`: la ventana es una ventana de política de compactación, que puede o no coincidir con el límite del modelo

1887 1939 

1888Claude Code evoluciona el tipo de manera aditiva, añadiendo nuevos datos como campos opcionales en lugar de remodelar los existentes. Lea los campos que conoce e ignore cualquiera que no reconozca.1940Claude Code evoluciona el tipo de manera aditiva, añadiendo nuevos datos como campos opcionales en lugar de remodelar los existentes. Lea los campos que conoce e ignore cualquiera que no reconozca.


1901};1953};

1902```1954```

1903 1955 

1904La tabla lista lo que Claude Code pone en cada campo de una fila.1956La tabla enumera lo que Claude Code pone en cada campo de una fila.

1905 1957 

1906| Campo | Tipo | Descripción |1958| Campo | Tipo | Descripción |

1907| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- |1959| -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------- |

1908| `name` | `string` | El nombre para mostrar de la fila como `/context` lo imprime, como `Messages`. Clasifique las filas por `kind`, no por nombre |1960| `name` | `string` | El nombre de visualización de la fila como `/context` lo imprime, como `Messages`. Clasifique las filas por `kind`, no por nombre |

1909| `tokens` | `number` | El conteo de tokens de la fila. Las filas pueden llevar cero tokens |1961| `tokens` | `number` | El recuento de tokens de la fila. Las filas pueden llevar cero tokens |

1910| `kind` | `string` | Lo que representa la fila: `used`, `free`, `buffer`, o `deferred` |1962| `kind` | `string` | Lo que representa la fila: `used`, `free`, `buffer`, o `deferred` |

1911 1963 

1912Cada valor `kind` dice qué son los tokens de la fila:1964Cada valor `kind` dice qué son los tokens de la fila:


1914* `used`: contenido que ocupa la ventana de contexto1966* `used`: contenido que ocupa la ventana de contexto

1915* `free`: la ventana restante1967* `free`: la ventana restante

1916* `buffer`: la reserva de compactación1968* `buffer`: la reserva de compactación

1917* `deferred`: esquemas de herramientas que Claude Code mantiene fuera de la ventana y excluye del cálculo de uso, listados para conciencia1969* `deferred`: esquemas de herramientas que Claude Code mantiene fuera de la ventana y excluye del cálculo de uso, enumerados para conciencia

1918 1970 

1919<h3 id="sdkmessageorigin">1971<h3 id="sdkmessageorigin">

1920 `SDKMessageOrigin`1972 `SDKMessageOrigin`

1921</h3>1973</h3>

1922 1974 

1923Procedencia de un mensaje con rol de usuario. Esto aparece como `origin` en [`SDKUserMessage`](#sdkusermessage) y se reenvía al [`SDKResultMessage`](#sdkresultmessage) correspondiente para que pueda saber qué activó un turno determinado.1975Procedencia de un mensaje de rol de usuario. Esto aparece como `origin` en [`SDKUserMessage`](#sdkusermessage) y se reenvía al [`SDKResultMessage`](#sdkresultmessage) correspondiente para que pueda saber qué activó un turno dado.

1924 1976 

1925```typescript theme={null}1977```typescript theme={null}

1926type SDKMessageOrigin =1978type SDKMessageOrigin =


1939 | {1991 | {

1940 kind: "task-notification";1992 kind: "task-notification";

1941 subkind?: "scheduled-trigger" | "peer-send-message";1993 subkind?: "scheduled-trigger" | "peer-send-message";

1994 fireReason?: string;

1942 }1995 }

1943 | { kind: "coordinator" }1996 | { kind: "coordinator" }

1944 | { kind: "auto-continuation" }1997 | { kind: "auto-continuation" }


1947 2000 

1948| `kind` | Significado |2001| `kind` | Significado |

1949| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2002| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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

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

1956| `unclassified` | Turno inyectado cuyo origen no pudo determinarse. Requiere Claude Code v2.1.223 o posterior. Cuando Claude Code recibe un [`SDKUserMessage`](#sdkusermessage) con `isSynthetic: true` y no puede clasificarlo como ningún otro `kind`, establece este tipo a medida que el mensaje llega y enmarca el turno al modelo como una fuente que no es del usuario en lugar de tratarlo como entrada humana. Su aplicación no debe establecer este valor. |2009| `unclassified` | Turno inyectado cuyo origen no pudo determinarse. Requiere Claude Code v2.1.223 o posterior. Cuando Claude Code recibe un [`SDKUserMessage`](#sdkusermessage) con `isSynthetic: true` y no puede clasificarlo como ningún otro `kind`, establece este tipo a medida que llega el mensaje y enmarca el turno al modelo como una fuente no usuario en lugar de tratarlo como entrada humana. Su aplicación no debe establecer este valor. |

1957 2010 

1958<h3 id="task-notification-subkinds">2011<h3 id="task-notification-subkinds">

1959 Subtipos de notificación de tarea2012 Subtipos de notificación de tarea

1960</h3>2013</h3>

1961 2014 

1962Cuando Claude Code entrega una notificación de tarea en una sesión, establece `subkind` en la `origin` de la notificación solo si los servidores de Anthropic verificaron de dónde provino esa notificación. `subkind` requiere Claude Code v2.1.213 o posterior, y toma uno de dos valores:2015Cuando Claude Code entrega una notificación de tarea en una sesión, establece `subkind` en el `origin` de la notificación si los servidores de Anthropic verificaron de dónde provino esa notificación. También establece `subkind` cuando su aplicación [declara el mensaje como una ejecución programada](#declare-a-scheduled-run) por sí misma, lo que requiere TypeScript Agent SDK v0.3.280 o posterior. `subkind` requiere Claude Code v2.1.213 o posterior, y toma uno de dos valores:

2016 

2017* `scheduled-trigger`: la notificación es un prompt almacenado de una [rutina](/docs/es/routines), entregado porque uno de los disparadores de la rutina se activó: su horario, su [disparador de API](/docs/es/routines#add-an-api-trigger), su [disparador de GitHub](/docs/es/routines#add-a-github-trigger), o **Ejecutar ahora**. Un prompt que su aplicación [declara como una ejecución programada](#declare-a-scheduled-run) también lleva este valor. Claude Code enmarca estos al modelo como la tarea asignada de la sesión, con un aviso diferente del [aviso que otras notificaciones de tarea llevan](#sdktasknotificationmessage).

2018*

2019 

2020`peer-send-message`: la notificación es un mensaje que otra de sus sesiones envió con la herramienta `send_message` del lado del servidor que [sesiones en la nube](/docs/es/claude-code-on-the-web) usan para mensajearse entre sí, no la [herramienta `SendMessage` entre sesiones](/docs/es/cross-session-messaging), y los servidores de Anthropic verificaron que ambas sesiones pertenecen al mismo grupo privado de sesiones. Requiere Claude Code v2.1.224 o posterior. Una entrega `send_message` que los servidores no verificaron de esa manera no obtiene ningún subkind.

2021 

2022Cada otra notificación de tarea no tiene `subkind`. Eso incluye [actividad de PR](/docs/es/claude-code-on-the-web#how-claude-responds-to-pr-activity) entregada en una sesión y eventos de fondo como una tarea terminada. Los mensajes de la [herramienta `SendMessage` entre sesiones](/docs/es/cross-session-messaging) no son notificaciones de tarea en absoluto: ya sea que provengan de una sesión en la misma máquina o a través de servidores de Anthropic desde otra máquina, Claude Code les da `kind: "peer"` y los [campos de origen de par](#peer-origin-fields).

1963 2023 

1964* `scheduled-trigger`: la notificación es un aviso almacenado de una [rutina](/docs/es/routines), entregado porque uno de los disparadores de la rutina se activó: su horario, su [disparador de API](/docs/es/routines#add-an-api-trigger), su [disparador de GitHub](/docs/es/routines#add-a-github-trigger), o **Ejecutar ahora**. Claude Code enmarca estos al modelo como la tarea asignada de la sesión, con un aviso diferente del [aviso que otras notificaciones de tareas llevan](#sdktasknotificationmessage).2024`fireReason` dice por qué se activó una notificación `scheduled-trigger`, como un token en minúsculas corto como `scheduled`, `manual`, `retry`, `catch_up`, o `api`. Los servidores de Anthropic lo establecen en las entregas de una [rutina](/docs/es/routines), y su aplicación lo establece cuando declara una ejecución programada. Está ausente cuando ninguno envió uno. Requiere TypeScript Agent SDK v0.3.280 o posterior.

1965* `peer-send-message`: la notificación es un mensaje que otra de sus sesiones envió con la herramienta `send_message` del lado del servidor que las sesiones [Claude Code en la web](/docs/es/claude-code-on-the-web) usan para mensajearse entre sí, no la [herramienta `SendMessage` entre sesiones](/docs/es/cross-session-messaging), y los servidores de Anthropic verificaron que ambas sesiones pertenecen al mismo grupo privado de sesiones. Requiere Claude Code v2.1.224 o posterior. Una entrega `send_message` que los servidores no verificaron de esa manera no obtiene `subkind`.2025 

2026<h4 id="declare-a-scheduled-run">

2027 Declarar una ejecución programada

2028</h4>

1966 2029 

1967Cada otra notificación de tarea no tiene `subkind`. Eso incluye [tareas programadas](/docs/es/scheduled-tasks) que se activan en su propia máquina, [actividad de PR](/docs/es/claude-code-on-the-web#how-claude-responds-to-pr-activity) entregada en una sesión, y eventos de fondo como una tarea finalizada. Los mensajes de la [herramienta `SendMessage` entre sesiones](/docs/es/cross-session-messaging) no son notificaciones de tareas en absoluto: ya sea que provengan de una sesión en la misma máquina o a través de servidores de Anthropic desde otra máquina, Claude Code les da `kind: "peer"` y los [campos de origen de par](#peer-origin-fields).2030Si su aplicación ejecuta prompts en su propio horario, declare cada ejecución para que Claude Code enmarque el turno al modelo como una tarea programada en lugar de como entrada en vivo del usuario. Inicie la sesión con `CLAUDE_CODE_HOST_SCHEDULED_RUN` establecido en `1` en [`env`](#options), luego envíe el [`SDKUserMessage`](#sdkusermessage) de la ejecución con `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` y sin `isSynthetic`. Claude Code ignora la declaración en un proceso iniciado sin esa variable. También la ignora en un proceso cuyo entorno lleva [`CLAUDECODE`](/docs/es/env-vars) o `CLAUDE_CODE_CHILD_SESSION`. Claude Code mantiene `fireReason` solo cuando el valor es 1 a 32 letras minúsculas o guiones bajos. Requiere TypeScript Agent SDK v0.3.280 o posterior.

1968 2031 

1969<h3 id="peer-origin-fields">2032<h3 id="peer-origin-fields">

1970 Campos de origen de par2033 Campos de origen de par

1971</h3>2034</h3>

1972 2035 

1973Un origen `peer` identifica qué agente envió el mensaje: un [compañero](/docs/es/agent-teams) en proceso enviando a `main` con `SendMessage`, o un [par entre sesiones](/docs/es/cross-session-messaging), otra de sus sesiones de Claude Code. Los pares entre sesiones requieren Claude Code v2.1.224 o posterior en macOS y Linux; consulte [disponibilidad de mensajería entre sesiones](/docs/es/cross-session-messaging#availability) para el requisito de Windows nativo. Un par entre sesiones puede ejecutarse en la misma máquina, o en [otra de sus máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines) o [Claude Code en la web](/docs/es/claude-code-on-the-web) cuando su mensaje llega a través de Control Remoto. Los dos tipos de remitente llenan los campos de manera diferente:2036Un origen `peer` identifica qué agente envió el mensaje: un [compañero](/docs/es/agent-teams) en proceso enviando a `main` con `SendMessage`, o un [par entre sesiones](/docs/es/cross-session-messaging), otra de sus sesiones de Claude Code. Los pares entre sesiones requieren Claude Code v2.1.224 o posterior en macOS y Linux; consulte [disponibilidad de mensajería entre sesiones](/docs/es/cross-session-messaging#availability) para el requisito de Windows nativo. Un par entre sesiones puede ejecutarse en la misma máquina, o en [otra de sus máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines) o [en la nube](/docs/es/claude-code-on-the-web) cuando su mensaje llega a través de Control Remoto. Los dos tipos de remitente llenan los campos de manera diferente:

2037 

2038* `from`: el nombre del compañero, o la dirección del remitente para un par entre sesiones. Para un [mensaje unidireccional entre máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines), el remitente no tiene dirección de respuesta y `from` es `"unknown"`. El valor es creado por el remitente; `verifiedPeerPid` es la identidad verificada.

2039*

2040 

2041`fromMode`: la clase de permiso de la sesión de envío, `bypass` o `prompting`, declarada por un host que retransmite un mensaje de par entre sus sesiones, como la [aplicación de escritorio](/docs/es/desktop#work-across-sessions). Claude Code lo lee en la sesión receptora cuando aplica los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages). Requiere Agent SDK v0.3.234 o posterior.

1974 2042 

1975* `from`: el nombre del compañero, o la dirección del remitente para un par entre sesiones. Para un [mensaje entre máquinas unidireccional](/docs/es/cross-session-messaging#message-sessions-on-other-machines), el remitente no tiene dirección de respuesta y `from` es `"unknown"`. El valor es creado por el remitente; `verifiedPeerPid` es la identidad verificada.

1976* `fromMode`: la clase de permiso de la sesión de envío, `bypass` o `prompting`, declarada por un host que retransmite un mensaje de par entre sus sesiones, como la [aplicación de escritorio](/docs/es/desktop#work-across-sessions). Claude Code lo lee en la sesión receptora cuando aplica los [controles de entrada](/docs/es/cross-session-messaging#control-inbound-messages). Requiere Agent SDK v0.3.234 o posterior.

1977* `senderTaskId`: el ID de tarea del compañero. Ausente para un par entre sesiones.2043* `senderTaskId`: el ID de tarea del compañero. Ausente para un par entre sesiones.

1978* `name`: el nombre para mostrar del remitente, normalizado por Claude Code: elimina puntos de código de control, formato, sustituto, y separador de línea o párrafo Unicode, luego recorta el resultado y lo limita a 64 puntos de código con puntos suspensivos. Requiere Claude Code v2.1.205 o posterior.2044*

1979* `body`: el cuerpo del mensaje decodificado con la envoltura de par eliminada, byte exacto con lo que el modelo ve. Siempre presente para un mensaje de compañero; para un par entre sesiones, presente solo cuando el turno es exactamente una envoltura de par formada por Claude Code. Renderice `name` y `body` en lugar de volver a analizar el texto del mensaje. Requiere Claude Code v2.1.205 o posterior.2045 

1980* `fromSession`: el ID de sesión abierto por host del remitente, establecido por el host del remitente para que su interfaz de usuario pueda vincular de nuevo a la sesión de envío. Como `from`, es afirmado por el remitente: úselo como destino de navegación solo, y no lo trate como prueba de la identidad del remitente. Requiere Claude Code v2.1.216 o posterior.2046`name`: el nombre de visualización del remitente, normalizado por Claude Code: elimina puntos de código de control, formato, sustituto, y separador de línea o párrafo Unicode, luego recorta el resultado y lo limita a 64 puntos de código con puntos suspensivos. Requiere Claude Code v2.1.205 o posterior.

1981* `verifiedPeerPid`: el ID de proceso del proceso que se conectó al socket de mensajería entre sesiones de esta sesión, verificado por el kernel y leído de la conexión en sí, nunca de la carga útil. Úselo, no `from`, para identificar al remitente: `from` es falsificable por cualquier proceso del mismo usuario. El campo está ausente cuando Claude Code no puede verificarlo, como en Windows o entrada que no es de socket, así que un valor ausente significa que el remitente no está verificado. Para tráfico retransmitido identifica el relé en lugar del autor del mensaje, y los ID de proceso son reciclables, así que trátelo como procedencia en lugar de un token de autenticación. Requiere Claude Code v2.1.216 o posterior.2047 

2048*

2049 

2050`body`: el cuerpo del mensaje decodificado con la envoltura de par eliminada, byte exacto con lo que el modelo ve. Siempre presente para un mensaje de compañero; para un par entre sesiones, presente solo cuando el turno es exactamente una envoltura de par formada por Claude Code. Renderice `name` y `body` en lugar de volver a analizar el texto del mensaje. Requiere Claude Code v2.1.205 o posterior.

2051 

2052*

2053 

2054`fromSession`: el ID de sesión abierto por host del remitente, establecido por el host del remitente para que su interfaz pueda vincular de nuevo a la sesión de envío. Como `from`, es afirmado por el remitente: úselo como destino de navegación solo, y no lo trate como prueba de la identidad del remitente. Requiere Claude Code v2.1.216 o posterior.

2055 

2056*

2057 

2058`verifiedPeerPid`: el ID de proceso del proceso que se conectó al socket de mensajería entre sesiones de esta sesión, verificado por el kernel y leído de la conexión misma, nunca de la carga útil. Úselo, no `from`, para identificar al remitente: `from` es falsificable por cualquier proceso del mismo usuario. El campo está ausente cuando Claude Code no puede verificarlo, como en Windows o entrada que no es socket, así que un valor ausente significa que el remitente no está verificado. Para tráfico retransmitido identifica el relé en lugar del autor del mensaje, y los ID de proceso son reciclables, así que trátelo como procedencia en lugar de un token de autenticación. Requiere Claude Code v2.1.216 o posterior.

1982 2059 

1983<h2 id="hook-types">2060<h2 id="hook-types">

1984 Tipos de Hook2061 Tipos de Hook


2841 | ReadMcpResourceInput2918 | ReadMcpResourceInput

2842 | RefreshMcpToolsInput2919 | RefreshMcpToolsInput

2843 | RemoteTriggerInput2920 | RemoteTriggerInput

2844 | REPLInput

2845 | ReportFindingsInput2921 | ReportFindingsInput

2846 | ScheduleWakeupInput2922 | ScheduleWakeupInput

2847 | ShowOnboardingRolePickerInput2923 | ShowOnboardingRolePickerInput

2848 | TaskCreateInput2924 | TaskCreateInput

2849 | TaskGetInput2925 | TaskGetInput

2850 | TaskListInput2926 | TaskListInput

2851 | TaskOutputInput

2852 | TaskStopInput2927 | TaskStopInput

2853 | TaskUpdateInput2928 | TaskUpdateInput

2854 | TodoWriteInput2929 | TodoWriteInput


2943 3018 

2944Ejecuta una fuente de fondo y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea de stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporcione exactamente uno de `command` o `ws`. La fuente `ws` requiere Claude Code v2.1.195 o posterior.3019Ejecuta una fuente de fondo y entrega cada evento a Claude para que pueda reaccionar sin sondeo: `command` ejecuta un script y emite un evento por línea de stdout, y `ws` abre un WebSocket y emite un evento por marco de texto. Proporcione exactamente uno de `command` o `ws`. La fuente `ws` requiere Claude Code v2.1.195 o posterior.

2945 3020 

2946`timeout_ms` es el plazo de la vigilancia en milisegundos. El valor predeterminado es 300000, y el plazo efectivo es como máximo 1800000, que son 30 minutos. En el plazo, la vigilancia termina y Claude recibe un aviso para que pueda iniciar una nueva vigilancia si aún la necesita.3021`timeout_ms` es el plazo de la vigilancia en milisegundos. El valor predeterminado es 300000 y acepta valores hasta 3600000. El plazo efectivo es como máximo 1800000, que son 30 minutos, por lo que un valor aceptado más grande se acorta a eso. En el plazo, la vigilancia termina y Claude recibe un aviso para que pueda iniciar una nueva vigilancia si aún la necesita.

2947 3022 

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

2949 3024 


2953 TaskOutput3028 TaskOutput

2954</h3>3029</h3>

2955 3030 

2956**Nombre de herramienta:** `TaskOutput`3031Eliminado en Claude Code v2.1.277, junto con su tipo `TaskOutputInput`. Anteriormente recuperaba salida de una tarea de fondo en ejecución o completada; Claude lee el archivo de salida de una tarea de fondo con `Read` en su lugar.

2957 

2958<Note>`TaskOutput` está deprecado; prefiera `Read` en la ruta del archivo de salida de la tarea. Los esquemas a continuación siguen siendo válidos para hooks y manejadores de permisos que encuentren la herramienta.</Note>

2959 

2960```typescript theme={null}

2961type TaskOutputInput = {

2962 task_id: string;

2963 block: boolean;

2964 timeout: number;

2965};

2966```

2967 3032 

2968Recupera salida de una tarea de fondo en ejecución o completada.3033Una entrada `disallowedTools` o una regla de denegación que aún nombre `TaskOutput` se ignora sin una advertencia.

2969 3034 

2970<h3 id="edit">3035<h3 id="edit">

2971 Edit3036 Edit


3460 REPL3525 REPL

3461</h3>3526</h3>

3462 3527 

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

3464 

3465```typescript theme={null}

3466type REPLInput = {

3467 code: string;

3468 description?: string;

3469 timeout?: number;

3470};

3471```

3472 

3473Ejecuta código JavaScript en un REPL persistente. El estado persiste entre llamadas y se admite await de nivel superior. `timeout` está en milisegundos, con un valor predeterminado de 30000 y un máximo de 600000.

3474 

3475Los tipos se exportan, pero la herramienta está desactivada en sesiones SDK a menos que establezca `CLAUDE_CODE_REPL=1` en la opción [`env`](#options). También requiere el ejecutable `claude` basado en Bun que proporciona el instalador nativo.

3476 3529 

3477<h3 id="reportfindings">3530<h3 id="reportfindings">

3478 ReportFindings3531 ReportFindings


3518 action?: "publish" | "list";3571 action?: "publish" | "list";

3519 file_path?: string;3572 file_path?: string;

3520 favicon?: string;3573 favicon?: string;

3574 icon?: string;

3521 limit?: number;3575 limit?: number;

3522 scope?: "mine" | "shared" | "all";3576 scope?: "mine" | "shared" | "all";

3523 title?: string;3577 title?: string;


3530};3584};

3531```3585```

3532 3586 

3533Publica un archivo `.html` o `.md` local como una página de artefacto alojada, o enumera los artefactos publicados del usuario. Omita `action` o pase `"publish"` para publicar `file_path`, que es requerido para la acción de publicación junto con `favicon`, uno o dos emoji que marquen el artefacto en la galería del usuario. `title` nombra la página publicada en la pestaña del navegador y la galería cuando el archivo HTML no tiene etiqueta `<title>`. `url` apunta a un artefacto existente para actualizar en su lugar en lugar de crear uno nuevo.3587Publica un archivo `.html` o `.md` local como una página de artefacto alojada, o enumera los artefactos publicados del usuario. Omita `action` o pase `"publish"` para publicar `file_path`, que es requerido para la acción de publicación. Cada campo a continuación se aplica a una publicación:

3588 

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

3590* `favicon`: deprecado, y Claude lo omite.

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

3592* `url`: apunta a un artefacto existente para actualizar en su lugar en lugar de crear uno nuevo.

3534 3593 

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

3536 3595 


3667 | ReadMcpResourceOutput3726 | ReadMcpResourceOutput

3668 | RefreshMcpToolsOutput3727 | RefreshMcpToolsOutput

3669 | RemoteTriggerOutput3728 | RemoteTriggerOutput

3670 | REPLOutput

3671 | ReportFindingsOutput3729 | ReportFindingsOutput

3672 | ScheduleWakeupOutput3730 | ScheduleWakeupOutput

3673 | ShowOnboardingRolePickerOutput3731 | ShowOnboardingRolePickerOutput


4517 4575 

4518Devuelve detalles de entrega, incluyendo si se envió una notificación push o local y por qué se omitió la entrega.4576Devuelve detalles de entrega, incluyendo si se envió una notificación push o local y por qué se omitió la entrega.

4519 4577 

4520<h3 id="repl-2">

4521 REPL

4522</h3>

4523 

4524**Nombre de herramienta:** `REPL`

4525 

4526```typescript theme={null}

4527type REPLOutput = {

4528 code: string;

4529 result: {

4530 [k: string]: unknown;

4531 };

4532 stdout: string;

4533 stderr: string;

4534 error?: string;

4535 registeredTools?: string[];

4536 images?: {

4537 base64: string;

4538 mediaType: string;

4539 }[];

4540 documents?: {

4541 base64: string;

4542 }[];

4543};

4544```

4545 

4546Devuelve el resultado de ejecución, salida de consola capturada, e imágenes o documentos mostrados por llamadas internas de `Read`.

4547 

4548<h3 id="reportfindings-2">4578<h3 id="reportfindings-2">

4549 ReportFindings4579 ReportFindings

4550</h3>4580</h3>


4868```4898```

4869 4899 

4870<Warning>4900<Warning>

4871 La beta `context-1m-2025-08-07` se retiró a partir del 30 de abril de 2026. Pasar este valor con Claude Sonnet 4.5 o Sonnet 4 no tiene efecto, y las solicitudes que excedan la ventana de contexto estándar de 200k tokens devuelven un error. Para usar una ventana de contexto de 1M tokens, migre a [Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 o Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.4901 La beta `context-1m-2025-08-07` se retiró a partir del 30 de abril de 2026. Pasar este valor con Claude Sonnet 4.5 o Sonnet 4 no tiene efecto, y las solicitudes que excedan la ventana de contexto estándar de 200k tokens devuelven un error. Para usar una ventana de contexto de 1M tokens, migre a [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7 u Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), que incluyen contexto de 1M a precios estándar sin encabezado beta requerido.

4872</Warning>4902</Warning>

4873 4903 

4874<h3 id="slashcommand">4904<h3 id="slashcommand">


4883 description: string;4913 description: string;

4884 argumentHint: string;4914 argumentHint: string;

4885 aliases?: string[];4915 aliases?: string[];

4916 builtin?: boolean;

4886};4917};

4887```4918```

4888 4919 

4920`builtin` es `true` en una fila cuando el comando es propio de Claude Code y escribir `/name` lo ejecuta. Está ausente para un comando definido por un usuario, proyecto, plugin o servidor MCP, y para un comando agrupado que uno de esos [reemplaza por nombre](/docs/es/skills#resolve-skills-that-share-a-name). Requiere Agent SDK v0.3.277 o posterior.

4921 

4889<h3 id="modelinfo">4922<h3 id="modelinfo">

4890 `ModelInfo`4923 `ModelInfo`

4891</h3>4924</h3>


4992 destructive?: boolean;5025 destructive?: boolean;

4993 openWorld?: boolean;5026 openWorld?: boolean;

4994 };5027 };

5028 _meta?: Record<string, unknown>;

4995 }[];5029 }[];

4996};5030};

4997```5031```

4998 5032 

4999`source` dice de dónde provino la definición del servidor, con los mismos valores y regla de confianza que el `source` de [`McpServerProvenance`](#mcpserverprovenance). El campo requiere Agent SDK v0.3.274 o posterior y está ausente en versiones anteriores.5033`source` dice de dónde provino la definición del servidor, con los mismos valores y regla de confianza que el `source` de [`McpServerProvenance`](#mcpserverprovenance). El campo requiere Agent SDK v0.3.274 o posterior y está ausente en versiones anteriores.

5000 5034 

5035`_meta` en una entrada `tools` lleva los miembros de MCP Apps de `_meta` de esa herramienta, por lo que su aplicación puede encontrar el recurso `ui://` para renderizar con [`readMcpResource()`](#query-object). Claude Code pasa el objeto `ui` y la cadena `ui/resourceUri` plana deprecada, y retiene todas las otras claves. Dentro de `ui`, `resourceUri` es una cadena `ui://` y `visibility` es una matriz de `"model"` y `"app"` cuando el servidor los establece, y cualquier otro miembro pasa sin cambios. Claude Code descarta cualquier clave cuando el valor está mal formado, y omite `_meta` de una herramienta que no declara ninguno. El campo está presente solo cuando las [`capabilities`](#sdksystemmessage) del mensaje de inicialización incluyen `mcp_tool_ui_meta_v1`, y requiere TypeScript Agent SDK v0.3.280 o posterior.

5036 

5001<h3 id="mcpserverstatusconfig">5037<h3 id="mcpserverstatusconfig">

5002 `McpServerStatusConfig`5038 `McpServerStatusConfig`

5003</h3>5039</h3>


5443 5479 

5444* Rastrear el indicador por `parent_tool_use_id`, que es único por subagente. `tool_use_id` se comparte entre subagentes paralelos de un turno de asistente, por lo que rastrear por él permitiría que la actualización de un subagente borre el indicador de otro.5480* Rastrear el indicador por `parent_tool_use_id`, que es único por subagente. `tool_use_id` se comparte entre subagentes paralelos de un turno de asistente, por lo que rastrear por él permitiría que la actualización de un subagente borre el indicador de otro.

5445* Borrar el indicador cuando un `tool_progress` posterior para el mismo `parent_tool_use_id` llega sin `subagent_retry` ni `heartbeat: true`, o cuando llega el mensaje de resultado de la herramienta. Los fotogramas con `heartbeat: true` reportan solo vivacidad, así que mantenga el indicador cuando uno llega. `attempt` puede exceder `max_retries` bajo reintento persistente, así que no derive el borrado de los contadores.5481* Borrar el indicador cuando un `tool_progress` posterior para el mismo `parent_tool_use_id` llega sin `subagent_retry` ni `heartbeat: true`, o cuando llega el mensaje de resultado de la herramienta. Los fotogramas con `heartbeat: true` reportan solo vivacidad, así que mantenga el indicador cuando uno llega. `attempt` puede exceder `max_retries` bajo reintento persistente, así que no derive el borrado de los contadores.

5446* Tratar `error_category` como un conjunto cerrado de tokens para elegir su propio texto de mensaje, no como texto de visualización: `rate_limit`, `overloaded`, `authentication_failed`, `server_error` o `unknown`.5482* Tratar `error_category` como un token para elegir su propio texto de mensaje, no como texto de visualización. Los valores son `rate_limit`, `overloaded`, `authentication_failed`, `server_error`, `cloud_credential_error` e `unknown`. Maneje un valor que no reconozca de la manera que maneja `unknown`, porque versiones posteriores pueden agregar valores.

5447 5483 

5448<h3 id="sdkauthstatusmessage">5484<h3 id="sdkauthstatusmessage">

5449 `SDKAuthStatusMessage`5485 `SDKAuthStatusMessage`


5746| `enabled` | `boolean` | `false` | Habilite el modo sandbox para la ejecución de comandos |5782| `enabled` | `boolean` | `false` | Habilite el modo sandbox para la ejecución de comandos |

5747| `failIfUnavailable` | `boolean` | `true` | Deténgase al inicio si `enabled` es `true` pero el sandbox no puede iniciarse. Establezca `false` para recurrir a la ejecución sin sandbox con una advertencia en stderr |5783| `failIfUnavailable` | `boolean` | `true` | Deténgase al inicio si `enabled` es `true` pero el sandbox no puede iniciarse. Establezca `false` para recurrir a la ejecución sin sandbox con una advertencia en stderr |

5748| `autoAllowBashIfSandboxed` | `boolean` | `true` | Auto-apruebe comandos Bash cuando el sandbox está habilitado |5784| `autoAllowBashIfSandboxed` | `boolean` | `true` | Auto-apruebe comandos Bash cuando el sandbox está habilitado |

5749| `excludedCommands` | `string[]` | `[]` | Comandos que siempre omiten restricciones de sandbox (por ejemplo, `['docker']`). Estos se ejecutan sin sandbox automáticamente sin participación del modelo |5785| `excludedCommands` | `string[]` | `[]` | Comandos que omiten restricciones de sandbox, como `['docker *']`. Estos se ejecutan sin sandbox automáticamente sin participación del modelo; [`sandbox.excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) cubre cuándo se aplica una entrada |

5750| `allowUnsandboxedCommands` | `boolean` | `true` | Permita que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es `true`, el modelo puede establecer `dangerouslyDisableSandbox` en la entrada de herramienta, que se vuelve al [sistema de permisos](#permissions-fallback-for-unsandboxed-commands) |5786| `allowUnsandboxedCommands` | `boolean` | `true` | Permita que el modelo solicite ejecutar comandos fuera del sandbox. Cuando es `true`, el modelo puede establecer `dangerouslyDisableSandbox` en la entrada de herramienta, que se vuelve al [sistema de permisos](#permissions-fallback-for-unsandboxed-commands) |

5751| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Configuración de sandbox específica de red |5787| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Configuración de sandbox específica de red |

5752| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Configuración de sandbox específica del sistema de archivos para restricciones de lectura/escritura |5788| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Configuración de sandbox específica del sistema de archivos para restricciones de lectura/escritura |


5853 Fallback de Permisos para Comandos Sin Sandbox5889 Fallback de Permisos para Comandos Sin Sandbox

5854</h3>5890</h3>

5855 5891 

5856Cuando `allowUnsandboxedCommands` está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo `dangerouslyDisableSandbox: true` en la entrada de herramienta. Estas solicitudes se vuelven al sistema de permisos existente, lo que significa que se invoca su controlador `canUseTool`, permitiéndole implementar lógica de autorización personalizada. Los comandos listados en `excludedCommands` en su lugar omiten el sandbox automáticamente, sin participación del modelo; consulte [`SandboxSettings`](#sandboxsettings).5892Cuando `allowUnsandboxedCommands` está habilitado, el modelo puede solicitar ejecutar comandos fuera del sandbox estableciendo `dangerouslyDisableSandbox: true` en la entrada de herramienta. Estas solicitudes se vuelven al sistema de permisos existente, lo que significa que se invoca su controlador `canUseTool`, permitiéndole implementar lógica de autorización personalizada.

5893 

5894Sus entradas `excludedCommands` en su lugar omiten el sandbox sin participación del modelo; [`sandbox.excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) cubre cuándo se aplica una entrada.

5857 5895 

5858En el ejemplo siguiente, `isCommandAuthorized` representa una verificación de autorización que usted define.5896En el ejemplo siguiente, `isCommandAuthorized` representa una verificación de autorización que usted define.

5859 5897 

agent-teams.md +0 −4

Details

14 14 

15Antes de configurar un equipo, verifique si una opción más ligera hace el trabajo. Los [subagentes](/docs/es/sub-agents) funcionan dentro de una única sesión, y con [mensajería entre sesiones](/docs/es/cross-session-messaging) Claude puede pasar hallazgos entre las sesiones que usted ejecuta por sí mismo.15Antes de configurar un equipo, verifique si una opción más ligera hace el trabajo. Los [subagentes](/docs/es/sub-agents) funcionan dentro de una única sesión, y con [mensajería entre sesiones](/docs/es/cross-session-messaging) Claude puede pasar hallazgos entre las sesiones que usted ejecuta por sí mismo.

16 16 

17<Note>

18 Esta página describe equipos de agentes a partir de v2.1.178. Con `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` configurado, generar un compañero de equipo ya no necesita un paso de configuración, y la limpieza ocurre automáticamente cuando la sesión sale. Antes de v2.1.178, usted le pedía a Claude que creara y nombrara un equipo primero, y Claude usaba las herramientas `TeamCreate` y `TeamDelete` para configurarlo y eliminarlo. Ambas herramientas ya no existen. La entrada `team_name` en la herramienta Agent se acepta pero se ignora, y el campo `team_name` en `TaskCreated`, `TaskCompleted`, y `TeammateIdle` [cargas útiles de hooks](/docs/es/hooks#taskcreated) lleva el nombre derivado de la sesión y está deprecado.

19</Note>

20 

21<h2 id="when-to-use-agent-teams">17<h2 id="when-to-use-agent-teams">

22 Cuándo usar equipos de agentes18 Cuándo usar equipos de agentes

23</h2>19</h2>

Details

291 291 

292Establezca estas variables de entorno en IDs de modelos específicos de Amazon Bedrock.292Establezca estas variables de entorno en IDs de modelos específicos de Amazon Bedrock.

293 293 

294Sin `ANTHROPIC_DEFAULT_OPUS_MODEL`, el alias `opus` en Amazon Bedrock se resuelve a Opus 5, y sin `ANTHROPIC_DEFAULT_SONNET_MODEL`, el alias `sonnet` se resuelve a Sonnet 4.5. Este ejemplo fija cada alias a una versión específica:294Sin `ANTHROPIC_DEFAULT_OPUS_MODEL`, el alias `opus` en Amazon Bedrock se resuelve a Opus 5.5, y sin `ANTHROPIC_DEFAULT_SONNET_MODEL`, el alias `sonnet` se resuelve a Sonnet 4.5. Este ejemplo fija cada alias a una versión específica:

295 295 

296```bash theme={null}296```bash theme={null}

297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'


304Para mantener los modelos predeterminados integrados y cambiar solo su prefijo preferido, establezca [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes) en su lugar de fijar. La diferencia se muestra en lo que el alias `opus` se resuelve a:304Para mantener los modelos predeterminados integrados y cambiar solo su prefijo preferido, establezca [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes) en su lugar de fijar. La diferencia se muestra en lo que el alias `opus` se resuelve a:

305 305 

306| Usted establece | El alias `opus` se resuelve a |306| Usted establece | El alias `opus` se resuelve a |

307| :------------------------------------------------------------ | :--------------------------------------------------------------------------------- |307| :------------------------------------------------------------ | :----------------------------------------------------------------------------------- |

308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`, el ID exacto que fijó |308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`, el ID exacto que fijó |

309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5`, el predeterminado integrado con su prefijo preferido |309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5-5`, el predeterminado integrado con su prefijo preferido |

310 310 

311Para IDs de modelos actuales y heredados, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para la lista completa de variables de entorno de fijación, consulte [Configuración de modelos](/docs/es/model-config#pin-models-for-third-party-deployments).311Para IDs de modelos actuales y heredados, consulte [Descripción general de modelos](https://platform.claude.com/docs/en/about-claude/models/overview). Para la lista completa de variables de entorno de fijación, consulte [Configuración de modelos](/docs/es/model-config#pin-models-for-third-party-deployments).

312 312 


314 314 

315| Tipo de modelo | Modelo predeterminado |315| Tipo de modelo | Modelo predeterminado |

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

317| Modelo principal | Opus 5, por ejemplo `us.anthropic.claude-opus-5` en una región `us-*` |317| Modelo principal | Opus 5.5, por ejemplo `us.anthropic.claude-opus-5-5` en una región `us-*` |

318| Modelo pequeño/rápido | Sonnet 4.5, por ejemplo `us.anthropic.claude-sonnet-4-5-20250929-v1:0` en una región `us-*` |318| Modelo pequeño/rápido | Sonnet 4.5, por ejemplo `us.anthropic.claude-sonnet-4-5-20250929-v1:0` en una región `us-*` |

319 319 

320Las tareas en segundo plano como la generación de títulos de sesión utilizan el modelo pequeño/rápido, normalmente un modelo de clase Haiku. En Amazon Bedrock, Claude Code utiliza el modelo Sonnet predeterminado para tareas en segundo plano porque Haiku puede no estar habilitado en todas las cuentas o regiones. Dos selecciones cambian qué modelo las lleva:320Las tareas en segundo plano como la generación de títulos de sesión utilizan el modelo pequeño/rápido, normalmente un modelo de clase Haiku. En Amazon Bedrock, Claude Code utiliza el modelo Sonnet predeterminado para tareas en segundo plano porque Haiku puede no estar habilitado en todas las cuentas o regiones. Dos selecciones cambian qué modelo las lleva:


326 Los modelos Opus tienen un precio por token más alto que los modelos Sonnet, por lo que un despliegue que no fija un modelo principal se factura a la tarifa de Opus una vez que se actualiza a v2.1.207 o posterior. Para mantener Sonnet 4.5 como el modelo principal, establezca `ANTHROPIC_MODEL` en su ID de modelo completo. Un despliegue que dirige el predeterminado con `ANTHROPIC_DEFAULT_SONNET_MODEL` y no establece `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene su modelo Sonnet dirigido como el predeterminado.326 Los modelos Opus tienen un precio por token más alto que los modelos Sonnet, por lo que un despliegue que no fija un modelo principal se factura a la tarifa de Opus una vez que se actualiza a v2.1.207 o posterior. Para mantener Sonnet 4.5 como el modelo principal, establezca `ANTHROPIC_MODEL` en su ID de modelo completo. Un despliegue que dirige el predeterminado con `ANTHROPIC_DEFAULT_SONNET_MODEL` y no establece `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene su modelo Sonnet dirigido como el predeterminado.

327</Warning>327</Warning>

328 328 

329En v2.1.207 a v2.1.218, el modelo principal en Amazon Bedrock predeterminaba a Opus 4.8 y el alias `opus` se resolvía a Opus 4.8. Antes de v2.1.207, el modelo principal predeterminaba a Sonnet 4.5, el alias `opus` se resolvía a Opus 4.6, y las tareas en segundo plano siempre utilizaban el modelo principal.329Antes de v2.1.280, el modelo principal en Amazon Bedrock predeterminaba a Opus 5 y el alias `opus` se resolvía a Opus 5 desde v2.1.219. En v2.1.207 a v2.1.218, el modelo principal en Amazon Bedrock predeterminaba a Opus 4.8 y el alias `opus` se resolvía a Opus 4.8. Antes de v2.1.207, el modelo principal predeterminaba a Sonnet 4.5, el alias `opus` se resolvía a Opus 4.6, y las tareas en segundo plano siempre utilizaban el modelo principal.

330 330 

331Para personalizar modelos aún más, utilice uno de estos métodos:331Para personalizar modelos aún más, utilice uno de estos métodos:

332 332 


405```bash theme={null}405```bash theme={null}

406export ANTHROPIC_BEDROCK_REGION_PREFIX=global406export ANTHROPIC_BEDROCK_REGION_PREFIX=global

407# En una región us-*, el modelo principal ahora se resuelve a407# En una región us-*, el modelo principal ahora se resuelve a

408# global.anthropic.claude-opus-5 en lugar de us.anthropic.claude-opus-5408# global.anthropic.claude-opus-5-5 en lugar de us.anthropic.claude-opus-5-5

409```409```

410 410 

411El prefijo preferido es una preferencia, no una garantía, ya sea que provenga de su región o de la variable. La forma en que Claude Code lo aplica depende de si puede verificar la disponibilidad del perfil en su cuenta:411El prefijo preferido es una preferencia, no una garantía, ya sea que provenga de su región o de la variable. La forma en que Claude Code lo aplica depende de si puede verificar la disponibilidad del perfil en su cuenta:

artifacts.md +2 −2

Details

347Los artefactos requieren todas las condiciones a continuación. Cuando una no se cumple, Claude escribe un archivo HTML local o dice que no puede publicar.347Los artefactos requieren todas las condiciones a continuación. Cuando una no se cumple, Claude escribe un archivo HTML local o dice que no puede publicar.

348 348 

349| Requisito | Disponible cuando |349| Requisito | Disponible cuando |

350| :----------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |350| :----------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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

356 356 

357<h2 id="disable-artifacts">357<h2 id="disable-artifacts">

358 Deshabilitar artefactos358 Deshabilitar artefactos

Details

53 53 

54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) y [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) proporcionan la mejor experiencia para organizaciones que usan Claude Code. Los miembros del equipo obtienen acceso tanto a Claude Code como a Claude en la web con facturación centralizada y gestión de equipos.54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) y [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) proporcionan la mejor experiencia para organizaciones que usan Claude Code. Los miembros del equipo obtienen acceso tanto a Claude Code como a Claude en la web con facturación centralizada y gestión de equipos.

55 55 

56* **Claude for Teams**: plan de autoservicio con características de colaboración, herramientas de administración y gestión de facturación. Mejor para equipos más pequeños.56* **Claude for Teams**: plan de autoservicio con características de colaboración, herramientas de administración, SSO, gestión de facturación y [configuración administrada por servidor](/docs/es/server-managed-settings) para configuración de Claude Code en toda la organización. Mejor para equipos más pequeños.

57* **Claude for Enterprise**: añade SSO, captura de dominio, permisos basados en roles, API de cumplimiento y configuración de políticas administradas para configuraciones de Claude Code en toda la organización. Mejor para organizaciones más grandes con requisitos de seguridad y cumplimiento.57* **Claude for Enterprise**: añade captura de dominio, permisos basados en roles y API de cumplimiento. Mejor para organizaciones más grandes con requisitos de seguridad y cumplimiento.

58 58 

59<Steps>59<Steps>

60 <Step title="Suscribirse">60 <Step title="Suscribirse">

Details

250 250 

251Las sesiones en la nube admiten [comandos integrados](/docs/es/commands) que producen salida de texto. Los comandos que solo se ejecutan en la interfaz de terminal, como `/plugin` o `/resume`, no están disponibles. Los comandos que abren un selector o panel en el terminal se comportan de manera diferente en sesiones en la nube:251Las sesiones en la nube admiten [comandos integrados](/docs/es/commands) que producen salida de texto. Los comandos que solo se ejecutan en la interfaz de terminal, como `/plugin` o `/resume`, no están disponibles. Los comandos que abren un selector o panel en el terminal se comportan de manera diferente en sesiones en la nube:

252 252 

253* **`/model`, `/effort`, `/color` y `/rename`**: pase el valor como argumento, por ejemplo `/model sonnet`, en lugar de abrir el selector de terminal o el control deslizante. Los formularios de argumento requieren Claude Code v2.1.205 o posterior en el entorno de la sesión y siguen las [notas de disponibilidad](/docs/es/commands#all-commands) de cada comando: `/effort` reporta `Not applied` mientras que el [lanzamiento de nivel de esfuerzo predeterminado](/docs/es/model-config#adjust-effort-level) de un modelo está en vigor.253* **`/model`, `/effort`, `/color` y `/rename`**: pase el valor como argumento, por ejemplo `/model sonnet`, en lugar de abrir el selector de terminal o el control deslizante. Los formularios de argumento requieren Claude Code v2.1.205 o posterior en el entorno de la sesión y siguen las [notas de disponibilidad](/docs/es/commands#all-commands) de cada comando.

254* **`/fast`**: alterna el [modo rápido](/docs/es/fast-mode#use-fast-mode-in-cloud-sessions) para la sesión cuando el modo rápido está [disponible en su cuenta](/docs/es/fast-mode#requirements). Requiere Claude Code v2.1.271 o posterior en el entorno de la sesión.254* **`/fast`**: alterna el [modo rápido](/docs/es/fast-mode#use-fast-mode-in-cloud-sessions) para la sesión cuando el modo rápido está [disponible en su cuenta](/docs/es/fast-mode#requirements). Requiere Claude Code v2.1.271 o posterior en el entorno de la sesión.

255* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración en lugar de establecer un valor, y el texto después del comando, incluido `key=value`, se ignora. Para cambiar una configuración de una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el archivo `.claude/settings.json` de ese repositorio. [Configuración en sesiones en la nube](/docs/es/settings#settings-in-cloud-sessions) enumera lo que cada sesión lee.255* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración en lugar de establecer un valor, y el texto después del comando, incluido `key=value`, se ignora. Para cambiar una configuración de una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el archivo `.claude/settings.json` de ese repositorio. [Configuración en sesiones en la nube](/docs/es/settings#settings-in-cloud-sessions) enumera lo que cada sesión lee.

256 256 

Details

1448 Lo que no se muestra1448 Lo que no se muestra

1449</h2>1449</h2>

1450 1450 

1451El explorador cubre archivos que usted crea y edita. Algunos archivos relacionados viven en otros lugares:1451El explorador cubre los archivos que usted crea y edita. Algunos archivos relacionados se encuentran en otros lugares:

1452 1452 

1453| Archivo | Ubicación | Propósito |1453| Archivo | Ubicación | Propósito |

1454| ----------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1455| `managed-settings.json` | Nivel del sistema, varía según el SO | Configuración impuesta por la empresa que no puede anular, aparte de [excepciones limitadas](/docs/es/settings#security-keys-where-the-stricter-value-applies). Consulte [dónde guardar el archivo](/docs/es/managed-settings#deploy-a-managed-settings-file) y [qué fuente administrada utiliza Claude Code](/docs/es/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | Nivel del sistema, varía según el SO | Configuración impuesta por la empresa que no puede anular, excepto por [excepciones limitadas](/docs/es/settings#security-keys-where-the-stricter-value-applies). Consulte [dónde guardar el archivo](/docs/es/managed-settings#deploy-a-managed-settings-file) y [qué fuente administrada utiliza Claude Code](/docs/es/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Raíz del proyecto | Sus preferencias privadas para este proyecto, cargadas junto con CLAUDE.md. Créelo manualmente y agréguelo a `.gitignore`. |1456| `CLAUDE.local.md` | Raíz del proyecto | Sus preferencias privadas para este proyecto, cargadas junto con CLAUDE.md. Créelo manualmente y agréguelo a `.gitignore`. |

1457| `AGENTS.md` | Raíz del proyecto, `.claude/`, o cualquier directorio | Instrucciones del proyecto que usted escribe para agentes de codificación de IA. Claude Code puede [cargarlo](/docs/es/memory#agents-md) por su cuenta o junto con `CLAUDE.md`. |1457| `AGENTS.md` | Raíz del proyecto, `.claude/`, o cualquier directorio | Instrucciones del proyecto que usted escribe para agentes de codificación de IA. Claude Code puede [cargarlo](/docs/es/memory#agents-md) por su cuenta o junto con `CLAUDE.md`. |

1458| Plugins instalados | `~/.claude/plugins` | Mercados clonados, versiones de plugins instaladas y datos por plugin, administrados por comandos `claude plugin`. Para un plugin instalado desde un marketplace con [fuente `command`](/docs/es/plugin-marketplaces#command-sources) en modo de enlace, Claude Code almacena enlaces aquí en lugar de una copia, y los archivos del plugin permanecen en el directorio que imprime el comando. Una fuente `command` requiere Claude Code v2.1.229 o posterior. Un plugin listado por ruta relativa en un marketplace de directorio local también [se carga en su lugar](/docs/es/plugins-reference#plugin-caching-and-file-resolution) desde su directorio de origen en lugar de desde una copia en caché. Consulte [almacenamiento en caché de plugins](/docs/es/plugins-reference#plugin-caching-and-file-resolution) para saber cómo se limpian las versiones huérfanas. |1458| Plugins instalados | `~/.claude/plugins` | Mercados clonados, versiones de plugins instalados, el registro de instalación `installed_plugins.json`, y datos por plugin, administrados por comandos `claude plugin`. Los plugins [sincronizados desde su cuenta claude.ai](/docs/es/plugins-reference#synced-plugins) se descargan en `~/.claude/plugins/synced/`. Para un plugin instalado desde un mercado con fuente [`command`](/docs/es/plugin-marketplaces#command-sources) en modo de enlace, Claude Code almacena enlaces aquí en lugar de una copia, y los archivos del plugin permanecen en el directorio que imprime el comando. Una fuente `command` requiere Claude Code v2.1.229 o posterior. Un plugin listado por ruta relativa en un mercado de directorio local también [se carga en su lugar](/docs/es/plugins-reference#plugin-caching-and-file-resolution) desde su directorio de origen en lugar de desde una copia en caché. Consulte [almacenamiento en caché de plugins](/docs/es/plugins-reference#plugin-caching-and-file-resolution) para saber cómo se limpian las versiones huérfanas. |

1459 1459 

1460`~/.claude` también contiene datos que Claude Code escribe mientras trabaja: transcripciones, historial de prompts, instantáneas de archivos, cachés y registros. Consulte [datos de aplicación](#application-data) a continuación.1460`~/.claude` también contiene datos que Claude Code escribe mientras usted trabaja: transcripciones, historial de indicaciones, instantáneas de archivos, cachés y registros. Consulte [datos de la aplicación](#application-data) a continuación.

1461 1461 

1462<h2 id="choose-the-right-file">1462<h2 id="choose-the-right-file">

1463 Elegir el archivo correcto1463 Elegir el archivo correcto


1515| [`keybindings.json`](#ce-keybindings) | Solo global | | Atajos de teclado personalizados | [Atajos de teclado](/docs/es/keybindings) |1515| [`keybindings.json`](#ce-keybindings) | Solo global | | Atajos de teclado personalizados | [Atajos de teclado](/docs/es/keybindings) |

1516| [`themes/*.json`](#ce-themes) | Solo global | | Temas de color personalizados | [Temas personalizados](/docs/es/terminal-config#create-a-custom-theme) |1516| [`themes/*.json`](#ce-themes) | Solo global | | Temas de color personalizados | [Temas personalizados](/docs/es/terminal-config#create-a-custom-theme) |

1517 1517 

1518<h2 id="frontmatter-fields-by-file">

1519 Campos de frontmatter por archivo

1520</h2>

1521 

1522Las skills, archivos de comandos, subagentes, estilos de salida y reglas leen su configuración desde [frontmatter](/docs/es/glossary#frontmatter) YAML en la parte superior del archivo, y cada uno acepta su propio conjunto de campos. Esta tabla enumera los nombres de los campos para cada archivo y vincula a la referencia que los describe.

1523 

1524| Archivo | Campos de frontmatter | Referencia |

1525| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Frontmatter de skill](/docs/es/skills#frontmatter-reference) |

1527| `commands/*.md` | Los campos de skill excepto `name` y `paths` | [Frontmatter de skill](/docs/es/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Frontmatter de subagente](/docs/es/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Frontmatter de estilo de salida](/docs/es/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Frontmatter de regla](/docs/es/memory#rules-frontmatter-reference) |

1531 

1532Los agentes incluidos en un [plugin](/docs/es/plugins-reference#plugin-agent-frontmatter) respetan un subconjunto de los campos de subagente.

1533 

1518<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1519 Solucionar problemas de configuración1535 Solucionar problemas de configuración

1520</h2>1536</h2>


1534Claude Code elimina los archivos en las rutas a continuación una vez que tienen más de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que pueda determinar de forma segura el período de retención. El valor predeterminado es 30 días y el mínimo es 1; establecer `0` falla con un error de validación. El mismo límite de edad se aplica a la eliminación automática de [worktrees huérfanos](/docs/es/worktrees#clean-up-subagent-and-background-session-worktrees).1550Claude Code elimina los archivos en las rutas a continuación una vez que tienen más de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que pueda determinar de forma segura el período de retención. El valor predeterminado es 30 días y el mínimo es 1; establecer `0` falla con un error de validación. El mismo límite de edad se aplica a la eliminación automática de [worktrees huérfanos](/docs/es/worktrees#clean-up-subagent-and-background-session-worktrees).

1535 1551 

1536| Ruta bajo `~/.claude/` | Contenidos |1552| Ruta bajo `~/.claude/` | Contenidos |

1537| ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1553| ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1538| `projects/<project>/<session>.jsonl` | Transcripción de conversación completa: cada mensaje, llamada de herramienta y resultado de herramienta |1554| `projects/<project>/<session>.jsonl` | Transcripción de conversación completa: cada mensaje, llamada de herramienta y resultado de herramienta |

1539| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Una transcripción anterior para la sesión que Claude Code apartó en lugar de sobrescribir o eliminar. No aparece en el selector de sesiones |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Una transcripción anterior para la sesión que Claude Code apartó en lugar de sobrescribir o eliminar. No aparece en el selector de sesiones |

1540| `projects/<project>/<session>/subagents/` | Transcripciones de conversación de [subagente](/docs/es/sub-agents), eliminadas con la transcripción de sesión principal cuando vence |1556| `projects/<project>/<session>/subagents/` | Transcripciones de conversación de [subagente](/docs/es/sub-agents), eliminadas con la transcripción de sesión principal cuando vence |


1543| `plans/` | Archivos de plan escritos durante [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) |1559| `plans/` | Archivos de plan escritos durante [Plan Mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) |

1544| `debug/` | Registros de depuración por sesión, escritos mientras el registro de depuración está activado, como cuando comienza con [`--debug`](/docs/es/cli-reference#cli-flags) o ejecuta `/debug` |1560| `debug/` | Registros de depuración por sesión, escritos mientras el registro de depuración está activado, como cuando comienza con [`--debug`](/docs/es/cli-reference#cli-flags) o ejecuta `/debug` |

1545| `paste-cache/` | Contenidos de pastes grandes |1561| `paste-cache/` | Contenidos de pastes grandes |

1546| `image-cache/<session>/` | Imágenes adjuntas. En cada barrido, Claude Code elimina los directorios de todas las otras sesiones, sin importar su edad. |1562| `image-cache/<session>/` | Imágenes adjuntas guardadas por Claude Code v2.1.274 y anteriores. Las versiones posteriores guardan imágenes pegadas y adjuntas fuera de `~/.claude`, en un directorio `images/` para cada sesión bajo el directorio temporal que [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars) controla. El barrido elimina los directorios sobrantes de otras sesiones aquí, sin importar su edad. |

1547| `uploads/<session>/` | Archivos que adjunta desde la web o aplicación móvil, y fotos que adjunta desde la aplicación móvil, al enviar mensajes a una sesión de [Remote Control](/docs/es/remote-control). Un adjunto a una [sesión en la nube](/docs/es/claude-code-on-the-web) se guarda en el propio entorno en la nube de esa sesión, no en su máquina. |1563| `uploads/<session>/` | Archivos que adjunta desde la web o aplicación móvil, y fotos que adjunta desde la aplicación móvil, al enviar mensajes a una sesión de [Remote Control](/docs/es/remote-control). Un adjunto a una [sesión en la nube](/docs/es/claude-code-on-the-web) se guarda en el propio entorno en la nube de esa sesión, no en su máquina. |

1548| `session-env/` | Metadatos de entorno por sesión |1564| `session-env/` | Metadatos de entorno por sesión |

1549| `tasks/` | Listas de tareas escritas por las herramientas de tareas, un directorio por lista |1565| `tasks/` | Listas de tareas escritas por las herramientas de tareas, un directorio por lista |


1552| `feedback-bundles/` | Archivos de transcripción redactados escritos por `/feedback` en proveedores de terceros o cuando no hay credenciales de Anthropic configuradas, para enviar a su equipo de cuenta de Anthropic |1568| `feedback-bundles/` | Archivos de transcripción redactados escritos por `/feedback` en proveedores de terceros o cuando no hay credenciales de Anthropic configuradas, para enviar a su equipo de cuenta de Anthropic |

1553| `feedback/drafts/` | [Comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en cola esperando su revisión en `/feedback`. Se barren después de `cleanupPeriodDays` o 30 días, lo que sea más corto. Cuando la cola está en su límite de 10 borradores, Claude Code elimina el borrador más antiguo para hacer espacio. |1569| `feedback/drafts/` | [Comentarios redactados por Claude](/docs/es/tools-reference#sendfeedback-tool-behavior) en cola esperando su revisión en `/feedback`. Se barren después de `cleanupPeriodDays` o 30 días, lo que sea más corto. Cuando la cola está en su límite de 10 borradores, Claude Code elimina el borrador más antiguo para hacer espacio. |

1554| `usage-data/` | `report.html` y copias de informes con marca de tiempo escritas por [`/insights`](/docs/es/costs#analyze-your-usage-patterns), más datos de análisis en caché por sesión utilizados para construirlos |1570| `usage-data/` | `report.html` y copias de informes con marca de tiempo escritas por [`/insights`](/docs/es/costs#analyze-your-usage-patterns), más datos de análisis en caché por sesión utilizados para construirlos |

1555| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/es/skills#how-synced-skills-behave) y [plugins](/docs/es/plugins-reference#synced-plugins) sincronizados desde claude.ai que Claude Code eliminó. Se mueven aquí en lugar de eliminarse para que pueda recuperar los archivos |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/es/skills#how-synced-skills-behave) y [plugins](/docs/es/plugins-reference#synced-plugins) que la sincronización de claude.ai eliminó, como después de desactivar uno en claude.ai o dejar de sincronizar. Los archivos permanecen aquí para que pueda recuperarlos hasta que el barrido los elimine |

1556| `todos/`, `statsig/`, `logs/` | Directorios heredados de versiones anteriores. Ya no se escriben. El barrido elimina su contenido y luego el directorio vacío. |1572| `todos/`, `statsig/`, `logs/` | Directorios heredados de versiones anteriores. Ya no se escriben. El barrido elimina su contenido y luego el directorio vacío. |

1557 1573 

1558Los archivos de sesión en `sessions/`, memoria automática, y transcripciones de Claude Desktop y Cowork cada uno sigue su propia regla de retención:1574Los archivos de sesión en `sessions/`, memoria automática, y transcripciones de Claude Desktop y Cowork cada uno sigue su propia regla de retención:


1610* Líneas de prompt coincidentes en `history.jsonl`1626* Líneas de prompt coincidentes en `history.jsonl`

1611* La entrada del proyecto en `~/.claude.json`1627* La entrada del proyecto en `~/.claude.json`

1612 1628 

1629Las imágenes que pegó o adjuntó en las sesiones del proyecto se almacenan bajo el directorio temporal de Claude Code en lugar de `~/.claude`, por lo que la purga no las elimina. El [barrido de retención](#cleaned-up-automatically) las elimina una vez que tienen más de `cleanupPeriodDays`.

1630 

1613El comando imprime el plan de eliminación completo y solicita confirmación antes de eliminar cualquier cosa.1631El comando imprime el plan de eliminación completo y solicita confirmación antes de eliminar cualquier cosa.

1614 1632 

1615Los ejemplos a continuación usan `~/work/my-repo` como marcador de posición. Reemplácelo con la ruta a su proyecto. Si ningún estado coincide con la ruta, el comando imprime un error y sale con estado 1.1633Los ejemplos a continuación usan `~/work/my-repo` como marcador de posición. Reemplácelo con la ruta a su proyecto. Si ningún estado coincide con la ruta, el comando imprime un error y sale con estado 1.


1660También puede eliminar cualquiera de las rutas de datos de aplicación anteriores manualmente, aparte de los [archivos de estado a mantener](#state-files-to-keep). Las nuevas sesiones no se ven afectadas. La tabla a continuación muestra qué pierde para sesiones pasadas.1678También puede eliminar cualquiera de las rutas de datos de aplicación anteriores manualmente, aparte de los [archivos de estado a mantener](#state-files-to-keep). Las nuevas sesiones no se ven afectadas. La tabla a continuación muestra qué pierde para sesiones pasadas.

1661 1679 

1662| Eliminar | Pierde |1680| Eliminar | Pierde |

1663| ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1681| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1664| `~/.claude/projects/` | Reanudar, continuar y rebobinar para sesiones pasadas, y memoria automática para cada proyecto |1682| `~/.claude/projects/` | Reanudar, continuar y rebobinar para sesiones pasadas, y memoria automática para cada proyecto |

1665| `~/.claude/history.jsonl` | Recuperación de prompt de flecha hacia arriba, búsqueda de historial `Ctrl+R` y finalización de comando shell `!` |1683| `~/.claude/history.jsonl` | Recuperación de prompt de flecha hacia arriba, búsqueda de historial `Ctrl+R` y finalización de comando shell `!` |

1666| `~/.claude/paste-cache/` | Texto pegado en prompts recordados; vea [pegar contenido grande](/docs/es/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | Texto pegado en prompts recordados; vea [pegar contenido grande](/docs/es/terminal-config#paste-large-content) |


1675| `~/.claude/policy-limits.json` | Nada. Se actualiza automáticamente. |1693| `~/.claude/policy-limits.json` | Nada. Se actualiza automáticamente. |

1676| `~/.claude/tasks/` | Listas de tareas que una sesión reanudada recogería |1694| `~/.claude/tasks/` | Listas de tareas que una sesión reanudada recogería |

1677| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La oportunidad de recuperar [skills sincronizados](/docs/es/skills#how-synced-skills-behave) y [plugins sincronizados](/docs/es/plugins-reference#synced-plugins) que Claude Code eliminó |1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La oportunidad de recuperar [skills sincronizados](/docs/es/skills#how-synced-skills-behave) y [plugins sincronizados](/docs/es/plugins-reference#synced-plugins) que Claude Code eliminó |

1678| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada orientado al usuario |1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nada orientado al usuario |

1679| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/` | Nada. Directorios heredados no escritos por versiones actuales. |1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nada. Directorios heredados no escritos por versiones actuales. |

1680 1698 

1681No elimine `~/.claude.json`, `~/.claude/settings.json` o `~/.claude/plugins/`: esos contienen su autenticación, preferencias y plugins instalados.1699No elimine `~/.claude.json`, `~/.claude/settings.json` o `~/.claude/plugins/`: esos contienen su autenticación, preferencias y plugins instalados.

1682 1700 

Details

284 284 

285Claude Platform on AWS utiliza los mismos ID de modelo que la API de Claude directa.285Claude Platform on AWS utiliza los mismos ID de modelo que la API de Claude directa.

286 286 

287Los alias predeterminados `fable`, `opus`, `sonnet` y `haiku` se resuelven a los valores predeterminados integrados de Claude Code para Claude Platform on AWS, que pueden estar retrasados respecto a la versión más reciente. Sin `ANTHROPIC_DEFAULT_OPUS_MODEL`, el alias `opus` se resuelve a Opus 5. Antes de v2.1.219, se resolvía a Opus 4.8, y antes de v2.1.207 a Opus 4.7.287Los alias predeterminados `fable`, `opus`, `sonnet` y `haiku` se resuelven a los valores predeterminados integrados de Claude Code para Claude Platform on AWS, que pueden estar retrasados respecto a la versión más reciente. Sin `ANTHROPIC_DEFAULT_OPUS_MODEL`, el alias `opus` se resuelve a Opus 5.5. Antes de v2.1.280, se resolvía a Opus 5 desde v2.1.219, a Opus 4.8 desde v2.1.207, y a Opus 4.7 antes de eso.

288 288 

289Si implementa Claude Code en un equipo, fije explícitamente los ID de modelo para que un nuevo lanzamiento no mueva a todos a la vez:289Si implementa Claude Code en un equipo, fije explícitamente los ID de modelo para que un nuevo lanzamiento no mueva a todos a la vez:

290 290 

Details

56* **Hilos**: los trabajadores. Cada uno es una [sesión en la nube](/docs/es/claude-code-on-the-web) separada con su propia ventana de contexto que hace una pieza de trabajo en su propia rama, abre una solicitud de extracción cuando el trabajo lo requiere, e informa a la conversación cuando termina.56* **Hilos**: los trabajadores. Cada uno es una [sesión en la nube](/docs/es/claude-code-on-the-web) separada con su propia ventana de contexto que hace una pieza de trabajo en su propia rama, abre una solicitud de extracción cuando el trabajo lo requiere, e informa a la conversación cuando termina.

57* **Lo que cada hilo comienza con**:57* **Lo que cada hilo comienza con**:

58 * Los repositorios y archivos del proyecto, más sus [instrucciones y memoria](#give-a-project-standing-context)58 * Los repositorios y archivos del proyecto, más sus [instrucciones y memoria](#give-a-project-standing-context)

59 * El `CLAUDE.md`, skills, y plugins en [cada uno de los repositorios del proyecto](#what-threads-pick-up-from-your-repositories), y en un proyecto con un repositorio, las reglas de permisos y hooks de ese repositorio también59 * El `CLAUDE.md` y skills en [cada uno de los repositorios del proyecto](#what-threads-pick-up-from-your-repositories), y en un proyecto con un repositorio, las reglas de permisos y hooks de ese repositorio también

60 * Los [conectores](#get-skills-plugins-connectors-and-tools-into-threads) en tu cuenta de claude.ai60 * Los [conectores](#get-skills-plugins-connectors-and-tools-into-threads) en tu cuenta de claude.ai

61 * Un [entorno en la nube](#choose-an-environment-for-threads) que establece su acceso a la red, variables de entorno, credenciales de API, y herramientas instaladas61 * Un [entorno en la nube](#choose-an-environment-for-threads) que establece su acceso a la red, variables de entorno, credenciales de API, y herramientas instaladas

62* **El panel Overview**: donde [ves todos los hilos a la vez](#see-what-needs-you-in-overview) y cuáles de ellos te necesitan. Sus otras pestañas son **Library** para los archivos que agregaste y los archivos que produjeron los hilos, **Pull requests** para los que abrieron los hilos, y **Routines** para el trabajo programado en el proyecto.62* **El panel Overview**: donde [ves todos los hilos a la vez](#see-what-needs-you-in-overview) y cuáles de ellos te necesitan. Sus otras pestañas son **Library** para los archivos que agregaste y los archivos que produjeron los hilos, **Pull requests** para los que abrieron los hilos, y **Routines** para el trabajo programado en el proyecto.


333 Lo que los hilos recogen de sus repositorios333 Lo que los hilos recogen de sus repositorios

334</h3>334</h3>

335 335 

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

337 337 

338| En cada repositorio | Un repositorio | Varios repositorios |338| En cada repositorio | Un repositorio | Varios repositorios |

339| :--------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |339| :--------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- |

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

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

342| Plugins habilitados en `.claude/settings.json` | Se cargan | Se cargan desde cada repositorio. Si dos repositorios no están de acuerdo sobre un plugin, configúrelo en **Configuración del proyecto > Plugins**, que tiene prioridad |342| Plugins habilitados en `.claude/settings.json` | No se cargan. Agregue el plugin en **Configuración del proyecto > Plugins** en su lugar | No se cargan. Agregue el plugin en **Configuración del proyecto > Plugins** en su lugar |

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

344 344 

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

346 346 

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

348 Elegir un entorno para los hilos348 Elegir un entorno para los hilos


359Los hilos son sesiones en la nube, por lo que no tienen los skills, servidores MCP, plugins y herramientas instalados solo en su máquina. Para que cada uno de estos esté disponible para los hilos:359Los hilos son sesiones en la nube, por lo que no tienen los skills, servidores MCP, plugins y herramientas instalados solo en su máquina. Para que cada uno de estos esté disponible para los hilos:

360 360 

361* Skills, subagentes y comandos: confirme que están en un repositorio que agregó al proyecto, por ejemplo un skill en `.claude/skills/<skill-name>/SKILL.md`. Cada hilo clona cada repositorio en el proyecto y carga `.claude/skills/`, `.claude/agents/` y `.claude/commands/` de cada uno de ellos, por lo que un skill confirmado en un repositorio está disponible en cada nuevo hilo. Los hilos también cargan los skills que habilita para su cuenta de claude.ai.361* Skills, subagentes y comandos: confirme que están en un repositorio que agregó al proyecto, por ejemplo un skill en `.claude/skills/<skill-name>/SKILL.md`. Cada hilo clona cada repositorio en el proyecto y carga `.claude/skills/`, `.claude/agents/` y `.claude/commands/` de cada uno de ellos, por lo que un skill confirmado en un repositorio está disponible en cada nuevo hilo. Los hilos también cargan los skills que habilita para su cuenta de claude.ai.

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

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

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

365 365 

Details

93| `--exec` | Ejecuta un comando de shell como un trabajo en segundo plano respaldado por PTY en lugar de iniciar una sesión de Claude. Usa con `--bg` para lanzar desde el shell | `claude --bg --exec 'pytest -x'` |93| `--exec` | Ejecuta un comando de shell como un trabajo en segundo plano respaldado por PTY en lugar de iniciar una sesión de Claude. Usa con `--bg` para lanzar desde el shell | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | Habilita la alternancia automática al modelo especificado cuando el modelo principal está sobrecargado o no disponible, por ejemplo un modelo retirado. Acepta una lista separada por comas probada en orden. Consulta [Cadenas de modelo alternativo](/docs/es/model-config#fallback-model-chains). Para persistir una cadena entre sesiones, usa la configuración [`fallbackModel`](/docs/es/settings-reference#fallbackmodel), que esta bandera anula | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | Habilita la alternancia automática al modelo especificado cuando el modelo principal está sobrecargado o no disponible, por ejemplo un modelo retirado. Acepta una lista separada por comas probada en orden. Consulta [Cadenas de modelo alternativo](/docs/es/model-config#fallback-model-chains). Para persistir una cadena entre sesiones, usa la configuración [`fallbackModel`](/docs/es/settings-reference#fallbackmodel), que esta bandera anula | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | Al reanudar, crea un nuevo ID de sesión en lugar de reutilizar el original (usa con `--resume` o `--continue`) | `claude --resume abc123 --fork-session` |95| `--fork-session` | Al reanudar, crea un nuevo ID de sesión en lugar de reutilizar el original (usa con `--resume` o `--continue`) | `claude --resume abc123 --fork-session` |

96| `--forward-subagent-text` | Emite bloques de texto y pensamiento de [subagentes](/docs/es/sub-agents) en el flujo de salida como mensajes `assistant` y `user` con `parent_tool_use_id` establecido, para que puedas reconstruir la transcripción de cada subagente. Sin esta bandera, Claude Code omite el texto y los bloques de pensamiento de un subagente que se ejecuta en el [primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background). Requiere `--print` y `--output-format stream-json`. Claude Code también reenvía mensajes de [subagentes anidados](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), estableciendo `parent_tool_use_id` al ID de la llamada de herramienta Agent que generó cada uno; esto requiere Claude Code v2.1.219 o posterior. La variable de entorno [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/es/env-vars) habilita el mismo comportamiento. Requiere Claude Code v2.1.211 o posterior | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |96| `--forward-subagent-text` | Emite bloques de texto y pensamiento de [subagentes](/docs/es/sub-agents) en el flujo de salida como mensajes `assistant` y `user` con `parent_tool_use_id` establecido, para que puedas reconstruir la transcripción de cada subagente. Sin esta bandera, Claude Code omite el texto y los bloques de pensamiento de un subagente que se ejecuta en el [primer plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background). Requiere `--print` y `--output-format stream-json`. Claude Code también reenvía mensajes de [subagentes anidados](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), estableciendo `parent_tool_use_id` al ID de la llamada de herramienta Agent o Skill que generó cada uno; esto requiere Claude Code v2.1.219 o posterior, y mensajes de subagentes que una skill bifurcada genera, y de skills bifurcadas anidadas, requieren v2.1.275 o posterior. La variable de entorno [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/es/env-vars) habilita el mismo comportamiento. Requiere Claude Code v2.1.211 o posterior | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |

97| `--from-pr` | Abre el selector de sesión filtrado a sesiones vinculadas a una solicitud de extracción específica. Acepta un número de PR, una URL de PR de GitHub o GitHub Enterprise, una URL de solicitud de fusión de GitLab, o una URL de solicitud de extracción de Bitbucket. Las sesiones se vinculan automáticamente cuando Claude crea la solicitud de extracción | `claude --from-pr 123` |97| `--from-pr` | Abre el selector de sesión filtrado a sesiones vinculadas a una solicitud de extracción específica. Acepta un número de PR, una URL de PR de GitHub o GitHub Enterprise, una URL de solicitud de fusión de GitLab, o una URL de solicitud de extracción de Bitbucket. Las sesiones se vinculan automáticamente cuando Claude crea la solicitud de extracción | `claude --from-pr 123` |

98| `--ide` | Se conecta automáticamente al IDE al inicio si exactamente un IDE válido está disponible | `claude --ide` |98| `--ide` | Se conecta automáticamente al IDE al inicio si exactamente un IDE válido está disponible | `claude --ide` |

99| `--init` | Ejecuta [hooks de Setup](/docs/es/hooks#setup) con el matcher `init` antes de la sesión (solo modo print) | `claude -p --init "query"` |99| `--init` | Ejecuta [hooks de Setup](/docs/es/hooks#setup) con el matcher `init` antes de la sesión (solo modo print) | `claude -p --init "query"` |


103| `--input-format` | Especifica el formato de entrada para el modo print (opciones: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |103| `--input-format` | Especifica el formato de entrada para el modo print (opciones: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |

104| `--json-schema` | Obtén salida JSON validada que coincida con un JSON Schema después de que el agente complete su flujo de trabajo (solo modo print). Consulta [salidas estructuradas](/docs/es/agent-sdk/structured-outputs). Claude Code sale con un error en un esquema inválido y acepta la palabra clave `format` como anotación sin validación del lado del cliente | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |104| `--json-schema` | Obtén salida JSON validada que coincida con un JSON Schema después de que el agente complete su flujo de trabajo (solo modo print). Consulta [salidas estructuradas](/docs/es/agent-sdk/structured-outputs). Claude Code sale con un error en un esquema inválido y acepta la palabra clave `format` como anotación sin validación del lado del cliente | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

105| `--maintenance` | Ejecuta [hooks de Setup](/docs/es/hooks#setup) con el matcher `maintenance` antes de la sesión (solo modo print) | `claude -p --maintenance "query"` |105| `--maintenance` | Ejecuta [hooks de Setup](/docs/es/hooks#setup) con el matcher `maintenance` antes de la sesión (solo modo print) | `claude -p --maintenance "query"` |

106| `--max-budget-usd` | Cantidad máxima en dólares a gastar en llamadas de API antes de detener (solo modo print). El gasto de [subagentes](/docs/es/sub-agents) cuenta hacia el límite. Una vez que el gasto alcanza el límite, generar otro subagente falla con `Budget limit reached`, y Claude Code detiene los subagentes en segundo plano que aún se ejecutan; los comportamientos de cumplimiento del límite requieren Claude Code v2.1.217 o posterior | `claude -p --max-budget-usd 5.00 "query"` |106| `--max-budget-usd` | Cantidad máxima en dólares a gastar en llamadas de API antes de detener (solo modo print). El gasto de [subagentes](/docs/es/sub-agents) cuenta hacia el límite. Cuando regresas a una conversación con `--continue` o `--resume`, los totales [restaurados de ejecuciones anteriores](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) no cuentan hacia él. Una vez que el gasto alcanza el límite, generar otro subagente falla con `Budget limit reached`, y Claude Code detiene los subagentes en segundo plano que aún se ejecutan; los comportamientos de cumplimiento del límite requieren Claude Code v2.1.217 o posterior | `claude -p --max-budget-usd 5.00 "query"` |

107| `--max-turns` | Limita el número de turnos agentivos (solo modo print). Sale con un error cuando se alcanza el límite. Sin límite por defecto. Con `--input-format stream-json`, un mensaje aún en cola cuando el límite termina un turno permanece en cola e inicia un nuevo turno con su propio límite | `claude -p --max-turns 3 "query"` |107| `--max-turns` | Limita el número de turnos agentivos (solo modo print). Sale con un error cuando se alcanza el límite. Sin límite por defecto. Con `--input-format stream-json`, un mensaje aún en cola cuando el límite termina un turno permanece en cola e inicia un nuevo turno con su propio límite | `claude -p --max-turns 3 "query"` |

108| `--mcp-config` | Carga servidores MCP desde archivos JSON o cadenas (separados por espacios). Cuando pasas esta bandera con `-p`, Claude Code espera a que los servidores aún pendientes se conecten antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto; un servidor con una [lista de herramientas en caché](/docs/es/mcp#managing-your-servers) omite la espera y se conecta en el primer uso. La espera requiere Claude Code v2.1.221 o posterior | `claude --mcp-config ./mcp.json` |108| `--mcp-config` | Carga servidores MCP desde archivos JSON o cadenas (separados por espacios). Cuando pasas esta bandera con `-p`, Claude Code espera a que los servidores aún pendientes se conecten antes de ejecutar el primer turno, hasta el tiempo de espera de inicio [`MCP_TIMEOUT`](/docs/es/env-vars), 30 segundos por defecto; un servidor con una [lista de herramientas en caché](/docs/es/mcp#managing-your-servers) omite la espera y se conecta en el primer uso. La espera requiere Claude Code v2.1.221 o posterior | `claude --mcp-config ./mcp.json` |

109| `--model` | Establece el modelo para la sesión actual con un [alias de modelo](/docs/es/model-config#model-aliases) como `sonnet`, `opus`, `haiku`, o `fable`, o el nombre completo de un modelo. Anula la configuración [`model`](/docs/es/settings-reference#model) y [`ANTHROPIC_MODEL`](/docs/es/model-config#environment-variables) | `claude --model claude-sonnet-5` |109| `--model` | Establece el modelo para la sesión actual con un [alias de modelo](/docs/es/model-config#model-aliases) como `sonnet`, `opus`, `haiku`, o `fable`, o el nombre completo de un modelo. Anula la configuración [`model`](/docs/es/settings-reference#model) y [`ANTHROPIC_MODEL`](/docs/es/model-config#environment-variables) | `claude --model claude-sonnet-5` |


157 157 

158`--system-prompt` y `--system-prompt-file` son mutuamente excluyentes. Las banderas de añadir se pueden combinar con cualquiera de las banderas de reemplazo.158`--system-prompt` y `--system-prompt-file` son mutuamente excluyentes. Las banderas de añadir se pueden combinar con cualquiera de las banderas de reemplazo.

159 159 

160Cuando el texto de reemplazo combina instrucciones que son iguales en cada ejecución con contexto que cambia por ejecución, añade una línea que contenga solo `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` entre las instrucciones y el contexto. Claude Code divide el indicador en la primera línea de este tipo y elimina esa línea, por lo que la parte anterior permanece en caché mientras la parte posterior cambia. Requiere Claude Code v2.1.275 o posterior. [Cachea la parte estática de un indicador personalizado](/docs/es/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) enumera las configuraciones donde se aplica la división.

161 

160Elige basándote en si la identidad predeterminada de Claude Code aún se ajusta a tu tarea. Usa una bandera de añadir cuando Claude debe permanecer como un asistente de codificación que también sigue tus reglas adicionales: instrucciones por invocación, formato de salida, o contexto de dominio para un script `-p`. Añadir preserva la orientación de herramientas predeterminada, instrucciones de seguridad y convenciones de codificación, por lo que solo suministras lo que difiere. Usa una bandera de reemplazo cuando la superficie, identidad, o modelo de permisos difiere del de Claude Code, como un agente no codificador en una canalización que ningún humano observa. Reemplazar elimina todo el indicador predeterminado, incluyendo orientación de herramientas e instrucciones de seguridad, por lo que asumes la responsabilidad de lo que tu tarea aún necesita.162Elige basándote en si la identidad predeterminada de Claude Code aún se ajusta a tu tarea. Usa una bandera de añadir cuando Claude debe permanecer como un asistente de codificación que también sigue tus reglas adicionales: instrucciones por invocación, formato de salida, o contexto de dominio para un script `-p`. Añadir preserva la orientación de herramientas predeterminada, instrucciones de seguridad y convenciones de codificación, por lo que solo suministras lo que difiere. Usa una bandera de reemplazo cuando la superficie, identidad, o modelo de permisos difiere del de Claude Code, como un agente no codificador en una canalización que ningún humano observa. Reemplazar elimina todo el indicador predeterminado, incluyendo orientación de herramientas e instrucciones de seguridad, por lo que asumes la responsabilidad de lo que tu tarea aún necesita.

161 163 

162Para personas persistentes que puedas cambiar entre ellas y compartir entre un proyecto, usa [estilos de salida](/docs/es/output-styles). Para convenciones de proyecto que Claude siempre debe seguir, usa [CLAUDE.md](/docs/es/memory). La [guía del Agent SDK sobre indicadores del sistema](/docs/es/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) cubre la misma decisión con más profundidad.164Para personas persistentes que puedas cambiar entre ellas y compartir entre un proyecto, usa [estilos de salida](/docs/es/output-styles). Para convenciones de proyecto que Claude siempre debe seguir, usa [CLAUDE.md](/docs/es/memory). La [guía del Agent SDK sobre indicadores del sistema](/docs/es/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) cubre la misma decisión con más profundidad.

Details

300| Sus servidores MCP `.mcp.json` del repositorio | Sí, en una sesión con un repositorio | Parte del clon, encontrado desde el directorio de trabajo de la sesión |300| Sus servidores MCP `.mcp.json` del repositorio | Sí, en una sesión con un repositorio | Parte del clon, encontrado desde el directorio de trabajo de la sesión |

301| Su `.claude/rules/` del repositorio | Sí | Parte del clon |301| Su `.claude/rules/` del repositorio | Sí | Parte del clon |

302| Su `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repositorio | Sí | Parte del clon |302| Su `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repositorio | Sí | Parte del clon |

303| Plugins declarados en `.claude/settings.json` | Sí | Instalados al inicio de la sesión desde el [marketplace](/docs/es/plugin-marketplaces) que declaró. Requiere acceso a la red para alcanzar la fuente del marketplace |303| Plugins y marketplaces declarados en el `.claude/settings.json` de su repositorio | No | Una sesión en la nube no instala los plugins que un repositorio activa bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins), incluidos los de los marketplaces que enumera bajo [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces). Habilite el plugin para su cuenta claude.ai en su lugar, para que Claude Code lo cargue como un [plugin sincronizado](/docs/es/plugins-reference#synced-plugins) |

304| La [configuración administrada por servidor](/docs/es/server-managed-settings) de su organización | Sí | Obtenida de los servidores de Anthropic cuando comienza la sesión. Consulte [Cobertura de superficie](/docs/es/model-config#surface-coverage) para ver cómo se aplica `availableModels` en sesiones en la nube. La configuración implementada en su dispositivo a través de MDM o archivos de configuración administrada no se aplica, porque la sesión se ejecuta en una VM administrada por Anthropic; en un [entorno autohospedado](/docs/es/self-hosted-environments), las sesiones también leen el archivo de configuración administrada en la imagen del ejecutor, según [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) |304| La [configuración administrada por servidor](/docs/es/server-managed-settings) de su organización | Sí | Obtenida de los servidores de Anthropic cuando comienza la sesión. Consulte [Cobertura de superficie](/docs/es/model-config#surface-coverage) para ver cómo se aplica `availableModels` en sesiones en la nube. La configuración implementada en su dispositivo a través de MDM o archivos de configuración administrada no se aplica, porque la sesión se ejecuta en una VM administrada por Anthropic; en un [entorno autohospedado](/docs/es/self-hosted-environments), las sesiones también leen el archivo de configuración administrada en la imagen del ejecutor, según [cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) |

305| Su `~/.claude/CLAUDE.md` de usuario | No | Vive en su máquina, no en el repositorio |305| Su `~/.claude/CLAUDE.md` de usuario | No | Vive en su máquina, no en el repositorio |

306| Su `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` de usuario | No | Viven en su máquina, no en el repositorio. Confirme los en el directorio `.claude/` del repositorio en su lugar. Las sesiones en la nube cargan automáticamente las skills que habilita en claude.ai |306| Su `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` de usuario | No | Viven en su máquina, no en el repositorio. Confirme los en el directorio `.claude/` del repositorio en su lugar. Las sesiones en la nube cargan automáticamente las skills que habilita en claude.ai |

307| Plugins habilitados solo en su configuración de usuario | No | El `enabledPlugins` con alcance de usuario vive en `~/.claude/settings.json`. Declárelos en el `.claude/settings.json` del repositorio en su lugar, o habilítelos para su cuenta claude.ai para que Claude Code los cargue como [plugins sincronizados](/docs/es/plugins-reference#synced-plugins) |307| Plugins habilitados solo en su configuración de usuario | No | El `enabledPlugins` con alcance de usuario vive en `~/.claude/settings.json` en su máquina. Habilítelos para su cuenta claude.ai en su lugar, para que Claude Code los cargue como [plugins sincronizados](/docs/es/plugins-reference#synced-plugins) |

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

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

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

commands.md +5 −4

Details

26 26 

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

28 28 

29**Antes de enviar.** `/diff` muestra qué cambió. `/code-review` verifica el diff actual en busca de errores de corrección y limpiezas y puede aplicar los hallazgos con `--fix`; pase un número de PR, como `/code-review high 1234`, para revisar una solicitud de extracción en su lugar. `/review` es un alias. `/code-review ultra` ejecuta una revisión multiagente en la nube. `/security-review` verifica el diff en busca de vulnerabilidades de seguridad.29**Antes de enviar.** `/diff` muestra qué cambió. `/code-review` verifica el diff actual en busca de errores de corrección y puede aplicar los hallazgos con `--fix`; pase un número de PR, como `/code-review high 1234`, para revisar una solicitud de extracción en su lugar. `/review` es un alias. `/code-review ultra` ejecuta una revisión multiagente en la nube. `/security-review` verifica el diff en busca de vulnerabilidades de seguridad.

30 30 

31**Entre sesiones.** `/clear` comienza de nuevo en una nueva tarea mientras mantiene la memoria del proyecto. `/resume` regresa a una conversación anterior, `/branch` ramifica la actual para probar una dirección diferente, y `/fork` la copia en una nueva [sesión en segundo plano](/docs/es/agent-view). `/teleport` extrae una sesión web en esta terminal, y `/remote-control` le permite continuar esta sesión local desde otro dispositivo.31**Entre sesiones.** `/clear` comienza de nuevo en una nueva tarea mientras mantiene la memoria del proyecto. `/resume` regresa a una conversación anterior, `/branch` ramifica la actual para probar una dirección diferente, y `/fork` la copia en una nueva [sesión en segundo plano](/docs/es/agent-view). `/teleport` extrae una sesión web en esta terminal, y `/remote-control` le permite continuar esta sesión local desde otro dispositivo.

32 32 


69| `/chrome` | Configura los ajustes de [Claude en Chrome](/docs/es/chrome) |69| `/chrome` | Configura los ajustes de [Claude en Chrome](/docs/es/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de [Claude API](https://platform.claude.com/docs/en/api/overview) y [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el idioma de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Ejecuta `migrate` para actualizar el código existente de Claude API a un modelo más nuevo. Ejecuta `upgrade` para mover la dependencia del SDK de Anthropic de tu proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x. Ejecuta `managed-agents-onboard` para un tutorial que crea un nuevo Managed Agent. Ejecuta `prompt-audit` para marcar instrucciones escritas para modelos más antiguos en tus prompts, skills y descripciones de herramientas y proponer correcciones como un diff. Ejecuta `cost-optimize` para perfilar dónde va el gasto de Claude API de tu proyecto y proponer ahorros de opciones como almacenamiento en caché de prompts, recorte de tokens de entrada y salida innecesarios, procesamiento por lotes, esfuerzo y elección de modelo, un cambio a la vez. Ejecuta `build-eval` para construir un conjunto de evaluación para tu aplicación impulsada por Claude, e `hillclimb` para mejorar iterativamente la aplicación contra una evaluación existente. El subcomando `prompt-audit` requiere Claude Code v2.1.221 o posterior, `upgrade` requiere v2.1.236 o posterior, `cost-optimize` requiere v2.1.247 o posterior, y `build-eval` e `hillclimb` requieren v2.1.259 o posterior |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de [Claude API](https://platform.claude.com/docs/en/api/overview) y [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el idioma de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Ejecuta `migrate` para actualizar el código existente de Claude API a un modelo más nuevo. Ejecuta `upgrade` para mover la dependencia del SDK de Anthropic de tu proyecto a través de una versión principal, actualmente el paquete `anthropic` de Python de 0.x a 1.x. Ejecuta `managed-agents-onboard` para un tutorial que crea un nuevo Managed Agent. Ejecuta `prompt-audit` para marcar instrucciones escritas para modelos más antiguos en tus prompts, skills y descripciones de herramientas y proponer correcciones como un diff. Ejecuta `cost-optimize` para perfilar dónde va el gasto de Claude API de tu proyecto y proponer ahorros de opciones como almacenamiento en caché de prompts, recorte de tokens de entrada y salida innecesarios, procesamiento por lotes, esfuerzo y elección de modelo, un cambio a la vez. Ejecuta `build-eval` para construir un conjunto de evaluación para tu aplicación impulsada por Claude, e `hillclimb` para mejorar iterativamente la aplicación contra una evaluación existente. El subcomando `prompt-audit` requiere Claude Code v2.1.221 o posterior, `upgrade` requiere v2.1.236 o posterior, `cost-optimize` requiere v2.1.247 o posterior, y `build-eval` e `hillclimb` requieren v2.1.259 o posterior |

71| `/clear [name]` | Inicia una nueva conversación con contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector `/resume`. Para liberar contexto mientras continúas la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume`, o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rebobinado](/docs/es/checkpointing#rewind-past-a-cleared-conversation). La entrada de rebobinado requiere Claude Code v2.1.191 o posterior. Alias: `/reset`, `/new` |71| `/clear [name]` | Inicia una nueva conversación con contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector `/resume`. Para liberar contexto mientras continúas la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume`, o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rebobinado](/docs/es/checkpointing#rewind-past-a-cleared-conversation). La entrada de rebobinado requiere Claude Code v2.1.191 o posterior. Alias: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, rama o ruta que pases, para detectar errores de corrección y oportunidades de limpieza. Pasa `--fix` para aplicar hallazgos, `--comment` para publicarlos en el PR de GitHub o solicitud de fusión de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en una solicitud de fusión de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` en un destino de PR de `github.com`, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de lanzamiento; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para los niveles de esfuerzo, orientación y cómo se relaciona con `/simplify`. Alias: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, rama o ruta que pases, para detectar errores de corrección. Dependiendo de tu modelo y nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para aplicar hallazgos, `--comment` para publicarlos en el PR de GitHub o solicitud de fusión de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en una solicitud de fusión de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` en un destino de PR de `github.com`, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de lanzamiento; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para los niveles de esfuerzo, orientación y cómo se relaciona con `/simplify`. Alias: `/review` |

73| `/color [color\|default]` | Establece el color de la barra de prompts para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` para restablecer, o ejecuta sin argumento para elegir un color aleatorio. Cuando [Remote Control](/docs/es/remote-control) está conectado, el color se sincroniza con claude.ai/code. También disponible en modo no interactivo (`-p`); requiere Claude Code v2.1.205 o posterior |73| `/color [color\|default]` | Establece el color de la barra de prompts para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` para restablecer, o ejecuta sin argumento para elegir un color aleatorio. Cuando [Remote Control](/docs/es/remote-control) está conectado, el color se sincroniza con claude.ai/code. También disponible en modo no interactivo (`-p`); requiere Claude Code v2.1.205 o posterior |

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

75| `/config [key=value ...]` | Abre la interfaz de [Configuración](/docs/es/settings) para ajustar tema, modelo, [estilo de salida](/docs/es/output-styles) y otras preferencias. Pasa uno o más pares `key=value` para establecer una configuración directamente sin abrir la interfaz, por ejemplo `/config thinking=false`, `/config theme=dark`, o `/config model=sonnet`. El formulario `key=value` también funciona en modo no interactivo (`-p`) y desde la aplicación móvil de Claude a través de [Remote Control](/docs/es/remote-control). El formulario `key=value` no puede activar una configuración que necesite tu confirmación en el panel, como [`autoContinueAtUsageLimit`](/docs/es/interactive-mode#turn-automatic-continue-off), aunque puede desactivarla. Ejecuta `/config --help` para enumerar las claves que acepta. Alias: `/settings` |75| `/config [key=value ...]` | Abre la interfaz de [Configuración](/docs/es/settings) para ajustar tema, modelo, [estilo de salida](/docs/es/output-styles) y otras preferencias. Pasa uno o más pares `key=value` para establecer una configuración directamente sin abrir la interfaz, por ejemplo `/config thinking=false`, `/config theme=dark`, o `/config model=sonnet`. El formulario `key=value` también funciona en modo no interactivo (`-p`) y desde la aplicación móvil de Claude a través de [Remote Control](/docs/es/remote-control). El formulario `key=value` no puede activar una configuración que necesite tu confirmación en el panel, como [`autoContinueAtUsageLimit`](/docs/es/interactive-mode#turn-automatic-continue-off), aunque puede desactivarla. Ejecuta `/config --help` para enumerar las claves que acepta. Alias: `/settings` |


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

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

87| `/doctor` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una verificación de configuración que diagnostica problemas y puede repararlos. Verifica la salud de la instalación, incluidas instalaciones duplicadas o sobrantes, problemas de `PATH` y archivos de configuración no analizables. Encuentra skills, servidores MCP y plugins no utilizados versus su costo de contexto, marca [hooks](/docs/es/hooks) lentos, y verifica si hay una versión más nueva en tu [canal de lanzamiento](/docs/es/setup#configure-release-channel). Deduplica archivos `CLAUDE.md` locales contra los registrados, recorta archivos [`CLAUDE.md`](/docs/es/memory#my-claude-md-is-too-large) registrados cortando contenido que Claude podría derivar de la base de código, y migra la orientación siempre cargada que permanece en [skills](/docs/es/skills) y archivos `CLAUDE.md` anidados que se cargan bajo demanda. También ofrece hacer que [auto mode](/docs/es/permissions#permission-modes) sea tu predeterminado y [pre-aprobar](/docs/es/permissions) comandos de solo lectura frecuentemente denegados. Reporta hallazgos primero y pide confirmación antes de cambiar nada. Desde la terminal, `claude doctor` imprime diagnósticos de instalación de solo lectura sin iniciar una sesión. Alias: `/checkup`. La verificación de recorte de `CLAUDE.md` requiere Claude Code v2.1.206 o posterior. Antes de v2.1.205, `/doctor` abría una pantalla de diagnósticos de solo lectura y presionar `f` enviaba el informe a Claude |87| `/doctor` | **[Skill](/docs/es/skills#bundled-skills).** Ejecuta una verificación de configuración que diagnostica problemas y puede repararlos. Verifica la salud de la instalación, incluidas instalaciones duplicadas o sobrantes, problemas de `PATH` y archivos de configuración no analizables. Encuentra skills, servidores MCP y plugins no utilizados versus su costo de contexto, marca [hooks](/docs/es/hooks) lentos, y verifica si hay una versión más nueva en tu [canal de lanzamiento](/docs/es/setup#configure-release-channel). Deduplica archivos `CLAUDE.md` locales contra los registrados, recorta archivos [`CLAUDE.md`](/docs/es/memory#my-claude-md-is-too-large) registrados cortando contenido que Claude podría derivar de la base de código, y migra la orientación siempre cargada que permanece en [skills](/docs/es/skills) y archivos `CLAUDE.md` anidados que se cargan bajo demanda. También ofrece hacer que [auto mode](/docs/es/permissions#permission-modes) sea tu predeterminado y [pre-aprobar](/docs/es/permissions) comandos de solo lectura frecuentemente denegados. Reporta hallazgos primero y pide confirmación antes de cambiar nada. Desde la terminal, `claude doctor` imprime diagnósticos de instalación de solo lectura sin iniciar una sesión. Alias: `/checkup`. La verificación de recorte de `CLAUDE.md` requiere Claude Code v2.1.206 o posterior. Antes de v2.1.205, `/doctor` abría una pantalla de diagnósticos de solo lectura y presionar `f` enviaba el informe a Claude |

88| `/effort [level\|auto\|status]` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level): `low` a `xhigh`, `max`, [`ultracode`](/docs/es/workflows#let-claude-decide-with-ultracode), o `auto`; `status` lo imprime. `max` y `ultracode` son solo de sesión; la clave [`ultracode`](/docs/es/settings-reference#ultracode) persiste. Ejecútalo mientras Claude está respondiendo y, una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica el nuevo nivel a la siguiente solicitud en ese turno. Antes de v2.1.242, Claude Code decidió desde una bandera de característica que obtuvo de Anthropic si ejecutar el comando a mitad de turno o ponerlo en cola hasta que el turno terminara, y siempre lo ponía en cola en una sesión que no [obtiene banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching), como en un [proveedor de terceros](/docs/es/third-party-integrations). Funciona en `-p` fuera de la [retención de esfuerzo](/docs/es/model-config#adjust-effort-level) |88| `/effort [level\|auto\|status]` | Establece el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level): `low` a `xhigh`, `max`, [`ultracode`](/docs/es/workflows#let-claude-decide-with-ultracode), o `auto`; `status` lo imprime. `max` y `ultracode` son solo de sesión; la clave [`ultracode`](/docs/es/settings-reference#ultracode) persiste. Ejecútalo mientras Claude está respondiendo y, una vez que confirmes la [advertencia de caché](/docs/es/prompt-caching#changing-effort-level), si Claude Code muestra una, Claude Code aplica el nuevo nivel a la siguiente solicitud en ese turno. Antes de v2.1.242, Claude Code decidió desde una bandera de característica que obtuvo de Anthropic si ejecutar el comando a mitad de turno o ponerlo en cola hasta que el turno terminara, y siempre lo ponía en cola en una sesión que no [obtiene banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching), como en un [proveedor de terceros](/docs/es/third-party-integrations). Funciona en `-p` |

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

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

91| `/fast [on\|off]` | Alterna [modo rápido](/docs/es/fast-mode) activado o desactivado. Ejecútalo mientras Claude está respondiendo y Claude Code alterna el modo rápido sin esperar a que el turno termine, aunque el turno en ejecución termina a su velocidad original. Antes de v2.1.242, Claude Code decidió desde una bandera de característica que obtuvo de Anthropic si ejecutar el comando a mitad de turno o ponerlo en cola hasta que el turno terminara, y siempre lo ponía en cola en una sesión que no [obtiene banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching). La disponibilidad en modo no interactivo con `-p` es limitada; consulta [Alternar modo rápido](/docs/es/fast-mode#toggle-fast-mode). Requiere Claude Code v2.1.205 o posterior |91| `/fast [on\|off]` | Alterna [modo rápido](/docs/es/fast-mode) activado o desactivado. Ejecútalo mientras Claude está respondiendo y Claude Code alterna el modo rápido sin esperar a que el turno termine, aunque el turno en ejecución termina a su velocidad original. Antes de v2.1.242, Claude Code decidió desde una bandera de característica que obtuvo de Anthropic si ejecutar el comando a mitad de turno o ponerlo en cola hasta que el turno terminara, y siempre lo ponía en cola en una sesión que no [obtiene banderas de característica](/docs/es/env-vars#features-that-need-feature-flag-fetching). La disponibilidad en modo no interactivo con `-p` es limitada; consulta [Alternar modo rápido](/docs/es/fast-mode#toggle-fast-mode). Requiere Claude Code v2.1.205 o posterior |


156| `/theme` | Cambia el tema de color. Incluye una opción `auto` que coincide con el fondo claro u oscuro de tu terminal, variantes claras y oscuras, temas accesibles para daltónicos (daltonizados), temas ANSI que usan la paleta de colores de tu terminal, y cualquier [tema personalizado](/docs/es/terminal-config#create-a-custom-theme) de `~/.claude/themes/` o plugins. Selecciona **New custom theme…** para crear uno |156| `/theme` | Cambia el tema de color. Incluye una opción `auto` que coincide con el fondo claro u oscuro de tu terminal, variantes claras y oscuras, temas accesibles para daltónicos (daltonizados), temas ANSI que usan la paleta de colores de tu terminal, y cualquier [tema personalizado](/docs/es/terminal-config#create-a-custom-theme) de `~/.claude/themes/` o plugins. Selecciona **New custom theme…** para crear uno |

157| `/tui [default\|fullscreen]` | Establece el renderizador de interfaz de usuario de terminal y relanza en él con tu conversación intacta. `fullscreen` habilita el [renderizador de pantalla alternativa sin parpadeos](/docs/es/fullscreen). Sin argumento, imprime el renderizador activo |157| `/tui [default\|fullscreen]` | Establece el renderizador de interfaz de usuario de terminal y relanza en él con tu conversación intacta. `fullscreen` habilita el [renderizador de pantalla alternativa sin parpadeos](/docs/es/fullscreen). Sin argumento, imprime el renderizador activo |

158| `/ultraplan <prompt>` | Eliminado. Usa [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) en su lugar. Anteriormente enviaba una tarea de planificación a una sesión de [Claude Code en la web](/docs/es/claude-code-on-the-web) para revisión en tu navegador |158| `/ultraplan <prompt>` | Eliminado. Usa [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) en su lugar. Anteriormente enviaba una tarea de planificación a una sesión de [Claude Code en la web](/docs/es/claude-code-on-the-web) para revisión en tu navegador |

159| `/ultrareview [PR or branch]` | Ejecuta una revisión de código profunda y multiagente en una sandbox en la nube con [ultrareview](/docs/es/ultrareview). Pasa una referencia de PR para revisar esa solicitud de extracción, o un nombre de rama para cambiar la base de comparación. La invocación preferida es ahora `/code-review ultra`, y `/ultrareview` permanece como un alias. Incluye 3 ejecuciones gratuitas en Pro y Max, luego requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |159| `/ultrareview [PR or branch]` | Ejecuta una revisión de código profunda y multiagente en una sandbox en la nube con [ultrareview](/docs/es/ultrareview). Pasa una referencia de PR para revisar esa solicitud de extracción, o una rama base o commit para cambiar la base de comparación. La invocación preferida es `/code-review ultra`, y `/ultrareview` es un alias. Incluye 3 ejecuciones gratuitas en Pro y Max, luego requiere [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

160| `/update-config [request]` | **[Skill](/docs/es/skills#bundled-skills).** Describe un cambio de configuración, como permitir un comando, establecer una variable de entorno, o agregar un [hook](/docs/es/hooks), y Claude edita el archivo [`settings.json`](/docs/es/settings) coincidente. Para opciones como tema y modelo, usa `/config` en su lugar |

160| `/upgrade` | Abre la página de actualización en tu navegador para cambiar a un nivel de plan superior. Cuando el navegador no se abre, el comando muestra un prompt de inicio de sesión sin imprimir la URL |161| `/upgrade` | Abre la página de actualización en tu navegador para cambiar a un nivel de plan superior. Cuando el navegador no se abre, el comando muestra un prompt de inicio de sesión sin imprimir la URL |

161| `/usage` | Muestra el costo de la sesión, límites de uso del plan y estadísticas de actividad. En un plan Pro, Max, Team o Enterprise, incluye un [desglose de lo que cuenta contra tus límites del plan](/docs/es/costs#plan-usage-breakdown). `/cost` y `/stats` son alias |162| `/usage` | Muestra el costo de la sesión, límites de uso del plan y estadísticas de actividad. En un plan Pro, Max, Team o Enterprise, incluye un [desglose de lo que cuenta contra tus límites del plan](/docs/es/costs#plan-usage-breakdown). `/cost` y `/stats` son alias |

162| `/usage-credits` | Configura créditos de uso, o solicítalos a tu administrador, cuando alcances un límite. Abre tu [configuración de facturación de créditos de uso](/docs/es/costs#add-usage-credits-to-your-subscription) en el navegador, excepto que los miembros de Team y Enterprise sin acceso de facturación en su lugar envíen una solicitud de créditos de uso a su administrador desde la CLI, después de confirmar en un diálogo que la solicitud notifica a sus administradores. Cuando no se puede abrir el navegador en la página de facturación, por ejemplo sobre SSH, el comando imprime la URL a visitar en su lugar; esto requiere Claude Code v2.1.205 o posterior, y versiones anteriores no mostraban nada en ese caso. Anteriormente `/extra-usage` |163| `/usage-credits` | Configura créditos de uso, o solicítalos a tu administrador, cuando alcances un límite. Abre tu [configuración de facturación de créditos de uso](/docs/es/costs#add-usage-credits-to-your-subscription) en el navegador, excepto que los miembros de Team y Enterprise sin acceso de facturación en su lugar envíen una solicitud de créditos de uso a su administrador desde la CLI, después de confirmar en un diálogo que la solicitud notifica a sus administradores. Cuando no se puede abrir el navegador en la página de facturación, por ejemplo sobre SSH, el comando imprime la URL a visitar en su lugar; esto requiere Claude Code v2.1.205 o posterior, y versiones anteriores no mostraban nada en ese caso. Anteriormente `/extra-usage` |

Details

102 📚 Inicio rápido · VS Code · Curso gratuito de 1 hora102 📚 Inicio rápido · VS Code · Curso gratuito de 1 hora

103 https://code.claude.com/docs/es/quickstart103 https://code.claude.com/docs/es/quickstart

104 https://code.claude.com/docs/es/vs-code104 https://code.claude.com/docs/es/vs-code

105 https://anthropic.skilljar.com/claude-code-in-action105 https://academy.claude.com/courses/claude-code-in-action

106 106 

107 Preguntas → este hilo. [Propietario] está a cargo.107 Preguntas → este hilo. [Propietario] está a cargo.

108 ```108 ```


228formato y ediciones mecánicas donde la velocidad gana. *Fable* es el modelo más228formato y ediciones mecánicas donde la velocidad gana. *Fable* es el modelo más

229capaz para sus tareas más difíciles y de mayor duración; no es el229capaz para sus tareas más difíciles y de mayor duración; no es el

230predeterminado, así que selecciónelo con `/model fable`, y tenga en cuenta que el contenido de ciberseguridad y230predeterminado, así que selecciónelo con `/model fable`, y tenga en cuenta que el contenido de ciberseguridad y

231biología se retrocede automáticamente a Opus. Opus 5 ejecuta sus propias231biología se retrocede automáticamente a Opus. Opus 5.5 y Opus 5 ejecutan sus propias

232comprobaciones, así que el contenido de ciberseguridad marcado cambia de modelos y el contenido232comprobaciones también: el contenido marcado cambia a un Opus anterior, excepto

233de biología marcado se rechaza.233que el contenido de biología marcado en Opus 5 se rechaza.

234 234 

235*Pruébalo ahora:* escribe `/model` y elige Sonnet si aún no lo has hecho. Es235*Pruébalo ahora:* escribe `/model` y elige Sonnet si aún no lo has hecho. Es

236el predeterminado correcto para la mayoría de tareas.236el predeterminado correcto para la mayoría de tareas.


239```239```

240 240 

241| Modelo | Mejor para |241| Modelo | Mejor para |

242| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |242| ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

243| Fable | Las tareas más difíciles y de mayor duración. Solo opción: selecciónelo con `/model fable`. El contenido de ciberseguridad o biología [se retrocede a Opus](/docs/es/model-config#automatic-model-fallback) |243| Fable | Las tareas más difíciles y de mayor duración. Solo opción: selecciónelo con `/model fable`. El contenido de ciberseguridad o biología [se retrocede a Opus](/docs/es/model-config#automatic-model-fallback) |

244| Opus | Refactores a gran escala, depuración compleja, decisiones de arquitectura, cambios de alto riesgo. En Opus 5, el contenido de ciberseguridad o biología desencadena [retroceso automático de modelo o un rechazo](/docs/es/model-config#automatic-model-fallback) |244| Opus | Refactores a gran escala, depuración compleja, decisiones de arquitectura, cambios de alto riesgo. En Opus 5.5 y Opus 5, el contenido de ciberseguridad o biología desencadena [retroceso automático de modelo o un rechazo](/docs/es/model-config#automatic-model-fallback) |

245| Sonnet | Trabajo de características cotidianas, corrección de errores, pruebas, documentación, revisión de código. Predeterminado recomendado. |245| Sonnet | Trabajo de características cotidianas, corrección de errores, pruebas, documentación, revisión de código. Predeterminado recomendado. |

246| Haiku | Preguntas rápidas, formato, ediciones mecánicas, iteración rápida |246| Haiku | Preguntas rápidas, formato, ediciones mecánicas, iteración rápida |

247 247 

Details

35 tokens: 280,35 tokens: 280,

36 color: '#6B6964',36 color: '#6B6964',

37 vis: 'hidden',37 vis: 'hidden',

38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block at the very end of the system prompt.',38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block.',

39 link: null39 link: null

40 }, {40 }, {

41 t: 0.08,41 t: 0.08,


1589* **Antes de que escriba algo**: CLAUDE.md, memoria automática, nombres de herramientas MCP y descripciones de skills se cargan en el contexto. [Los archivos AGENTS.md](/docs/es/memory#agents-md) también pueden cargarse, por su cuenta o junto con CLAUDE.md. Su propia configuración puede agregar más aquí, como un [estilo de salida](/docs/es/output-styles) o texto de [`--append-system-prompt`](/docs/es/cli-reference).1589* **Antes de que escriba algo**: CLAUDE.md, memoria automática, nombres de herramientas MCP y descripciones de skills se cargan en el contexto. [Los archivos AGENTS.md](/docs/es/memory#agents-md) también pueden cargarse, por su cuenta o junto con CLAUDE.md. Su propia configuración puede agregar más aquí, como un [estilo de salida](/docs/es/output-styles) o texto de [`--append-system-prompt`](/docs/es/cli-reference).

1590* **Mientras Claude trabaja**: cada lectura de archivo se suma al contexto, [reglas con alcance de ruta](/docs/es/memory#path-specific-rules) se cargan automáticamente junto con archivos coincidentes, y un [hook PostToolUse](/docs/es/hooks-guide) se activa después de cada edición.1590* **Mientras Claude trabaja**: cada lectura de archivo se suma al contexto, [reglas con alcance de ruta](/docs/es/memory#path-specific-rules) se cargan automáticamente junto con archivos coincidentes, y un [hook PostToolUse](/docs/es/hooks-guide) se activa después de cada edición.

1591* **El prompt de seguimiento**: un [subagent](/docs/es/sub-agents) maneja la investigación en su propia ventana de contexto separada, por lo que las lecturas de archivos grandes se mantienen fuera de la suya. Solo el resumen y un pequeño remolque de metadatos regresan.1591* **El prompt de seguimiento**: un [subagent](/docs/es/sub-agents) maneja la investigación en su propia ventana de contexto separada, por lo que las lecturas de archivos grandes se mantienen fuera de la suya. Solo el resumen y un pequeño remolque de metadatos regresan.

1592* **Al final**: `/compact` reemplaza la conversación con un resumen estructurado. La mayoría del contenido de inicio se recarga automáticamente; la tabla a continuación muestra qué sucede con cada mecanismo.1592* **Al final del recorrido**: ejecuta `/compact`, que reemplaza la conversación con un resumen estructurado. La mayoría del contenido de inicio se recarga automáticamente; la tabla a continuación muestra qué sucede con cada mecanismo.

1593 1593 

1594<h2 id="what-survives-compaction">1594<h2 id="what-survives-compaction">

1595 Qué sobrevive a la compactación1595 Qué sobrevive a la compactación


1602| Prompt del sistema y estilo de salida | Ambos siguen aplicándose |1602| Prompt del sistema y estilo de salida | Ambos siguen aplicándose |

1603| CLAUDE.md de raíz del proyecto y reglas sin alcance | Re-inyectadas desde el disco |1603| CLAUDE.md de raíz del proyecto y reglas sin alcance | Re-inyectadas desde el disco |

1604| Memoria automática | Re-inyectada desde el disco |1604| Memoria automática | Re-inyectada desde el disco |

1605| [Instantánea de estado de Git](/docs/es/settings-reference#includegitinstructions) | Claude Code lee una nueva desde su repositorio |

1605| El plan que Claude escribió en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) | Re-inyectado desde el disco |1606| El plan que Claude escribió en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) | Re-inyectado desde el disco |

1606| Reglas con frontmatter `paths:` | Claude Code las recarga cuando Claude lee archivos que coinciden |1607| Reglas con frontmatter `paths:` | Claude Code las recarga cuando Claude lee archivos que coinciden |

1607| CLAUDE.md anidado en subdirectorios | Claude Code lo recarga cuando Claude lee archivos en ese subdirectorio |1608| CLAUDE.md anidado en subdirectorios | Claude Code lo recarga cuando Claude lee archivos en ese subdirectorio |

costs.md +5 −5

Details

37 37 

38Estos totales se restablecen cuando `/clear` inicia una nueva sesión, por lo que el costo total de la siguiente sesión comienza en \$0. Antes de v2.1.211, continuaban acumulándose en `/clear` durante la vida útil del proceso de Claude Code.38Estos totales se restablecen cuando `/clear` inicia una nueva sesión, por lo que el costo total de la siguiente sesión comienza en \$0. Antes de v2.1.211, continuaban acumulándose en `/clear` durante la vida útil del proceso de Claude Code.

39 39 

40Para una respuesta de la API de Claude facturada a la [tasa de residencia de datos](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing) de 1.1×, Claude Code multiplica el precio de lista de los tokens de esa respuesta por 1.1 en la cifra de costo de sesión. Claude Code informa el mismo total en el [campo de costo de la línea de estado](/docs/es/statusline#cost-and-duration-tracking) y lo compara con [`--max-budget-usd`](/docs/es/cli-reference#cli-flags). Antes de v2.1.239, Claude Code no aplicaba el 1.1× a esas respuestas, por lo que la cifra de costo de sesión era menor que la factura.40Para una respuesta de la API de Claude facturada a la [tasa de residencia de datos](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing) de 1.1×, Claude Code multiplica el precio de lista de los tokens de esa respuesta por 1.1 en la cifra de costo de sesión. El mismo total aparece en el [campo de costo de la línea de estado](/docs/es/statusline#cost-and-duration-tracking), y la cifra multiplicada también cuenta hacia [`--max-budget-usd`](/docs/es/cli-reference#cli-flags). Antes de v2.1.239, Claude Code no aplicaba el 1.1× a esas respuestas, por lo que la cifra de costo de sesión era menor que la factura.

41 41 

42<h4 id="prompt-cache-statistics">42<h4 id="prompt-cache-statistics">

43 Estadísticas de caché de indicaciones43 Estadísticas de caché de indicaciones


275 Elija el modelo correcto275 Elija el modelo correcto

276</h3>276</h3>

277 277 

278Sonnet maneja bien la mayoría de tareas de codificación y cuesta menos que Opus. Reserve Opus para decisiones arquitectónicas complejas o razonamiento de múltiples pasos. Use `/model` para cambiar modelos a mitad de sesión, o establezca un valor predeterminado en `/config`. Para tareas simples de subagent, especifique `model: haiku` en su [configuración de subagent](/docs/es/sub-agents#choose-a-model).278Sonnet maneja bien la mayoría de tareas de codificación y cuesta menos que Opus. Reserve Opus para decisiones arquitectónicas complejas o razonamiento de múltiples pasos. Use `/model` para cambiar modelos a mitad de sesión, o establezca un valor predeterminado en `/config`. Un cambio a Opus también se aplica a los [subagentes que heredan el modelo de su sesión](/docs/es/model-config#setting-your-model). Para tareas simples de subagent, especifique `model: haiku` en su [configuración de subagent](/docs/es/sub-agents#choose-a-model).

279 279 

280<h3 id="reduce-mcp-server-overhead">280<h3 id="reduce-mcp-server-overhead">

281 Reduzca la sobrecarga del servidor MCP281 Reduzca la sobrecarga del servidor MCP


359 359 

360El pensamiento extendido está habilitado por defecto porque mejora significativamente el rendimiento en tareas complejas de planificación y razonamiento. Los tokens de pensamiento se facturan como tokens de salida, y el presupuesto predeterminado puede ser decenas de miles de tokens por solicitud dependiendo del modelo.360El pensamiento extendido está habilitado por defecto porque mejora significativamente el rendimiento en tareas complejas de planificación y razonamiento. Los tokens de pensamiento se facturan como tokens de salida, y el presupuesto predeterminado puede ser decenas de miles de tokens por solicitud dependiendo del modelo.

361 361 

362Para tareas más simples donde el razonamiento profundo no es necesario, puede reducir costos bajando el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) con `/effort` o en `/model`, o deshabilitando el pensamiento en `/config`. No puede desactivar el pensamiento en modelos Fable, que siempre usan pensamiento extendido.362Para tareas más simples donde el razonamiento profundo no es necesario, puede reducir costos bajando el [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) con `/effort` o en `/model`, o deshabilitando el pensamiento en `/config`. No puede desactivar el pensamiento en Opus 5.5 o los modelos Fable, que siempre usan pensamiento extendido.

363 363 

364En modelos con un [presupuesto de pensamiento fijo](/docs/es/model-config#adaptive-reasoning-and-fixed-thinking-budgets), también puede bajar el presupuesto estableciendo la [variable de entorno](/docs/es/env-vars) `MAX_THINKING_TOKENS`, por ejemplo `MAX_THINKING_TOKENS=8000`. Los modelos de razonamiento adaptativo ignoran presupuestos distintos de cero, así que use niveles de esfuerzo en su lugar.364En modelos con un [presupuesto de pensamiento fijo](/docs/es/model-config#adaptive-reasoning-and-fixed-thinking-budgets), también puede bajar el presupuesto estableciendo la [variable de entorno](/docs/es/env-vars) `MAX_THINKING_TOKENS`, por ejemplo `MAX_THINKING_TOKENS=8000`. Los modelos de razonamiento adaptativo ignoran presupuestos distintos de cero, así que use niveles de esfuerzo en su lugar.

365 365 

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

367 Delegue operaciones detalladas a subagents367 Delegue operaciones detalladas a subagentes

368</h3>368</h3>

369 369 

370Ejecutar pruebas, obtener documentación o procesar archivos de registro puede consumir contexto significativo. Delegue estos a [subagents](/docs/es/sub-agents#isolate-high-volume-operations) para que la salida detallada permanezca en el contexto del subagent mientras solo un resumen regresa a su conversación principal.370Ejecutar pruebas, obtener documentación o procesar archivos de registro puede consumir contexto significativo. Delegue estos a [subagentes](/docs/es/sub-agents#isolate-high-volume-operations) para que la salida detallada permanezca en el contexto del subagente mientras solo un resumen regresa a su conversación principal.

371 371 

372<h3 id="manage-agent-team-costs">372<h3 id="manage-agent-team-costs">

373 Gestione los costos del equipo de agentes373 Gestione los costos del equipo de agentes

desktop.md +2 −2

Details

508 508 

509Puede limitar plugins a su cuenta de usuario, un proyecto específico o solo locales. Si su organización gestiona plugins centralmente, esos plugins están disponibles en sesiones de escritorio de la misma manera que en la CLI.509Puede limitar plugins a su cuenta de usuario, un proyecto específico o solo locales. Si su organización gestiona plugins centralmente, esos plugins están disponibles en sesiones de escritorio de la misma manera que en la CLI.

510 510 

511El navegador de plugins no está disponible en sesiones en la nube, y los plugins que instale desde la aplicación de escritorio no están disponibles para sesiones en la nube. Para usar un plugin en una sesión en la nube, declare el plugin en el archivo `.claude/settings.json` del repositorio bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins) para que Claude Code [lo instale al iniciar la sesión](/docs/es/cloud-environments#what-carries-over-from-your-setup), o habilítelo para su cuenta de claude.ai para que Claude Code lo cargue como un [plugin sincronizado](/docs/es/plugins-reference#synced-plugins). Los plugins no están disponibles en sesiones WSL. Para la referencia completa de plugins incluyendo crear sus propios plugins, consulte [plugins](/docs/es/plugins).511El navegador de plugins no está disponible en sesiones en la nube, y los plugins que instale desde la aplicación de escritorio no están disponibles para sesiones en la nube. Una sesión en la nube tampoco instala plugins que el archivo `.claude/settings.json` del repositorio declara, como explica [Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup). Para usar un plugin en una sesión en la nube, habilítelo para su cuenta de claude.ai para que Claude Code lo cargue como un [plugin sincronizado](/docs/es/plugins-reference#synced-plugins). Los plugins no están disponibles en sesiones WSL. Para la referencia completa de plugins incluyendo crear sus propios plugins, consulte [plugins](/docs/es/plugins).

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 Configurar servidores de vista previa514 Configurar servidores de vista previa


735 735 

736Para establecer variables de entorno para sesiones locales y servidores de desarrollo en cualquier plataforma, abra el menú desplegable de entorno en el cuadro de solicitud, pase el cursor sobre **Local** y haga clic en el icono de engranaje para abrir el editor de entorno local. Las variables que guarda aquí se almacenan cifradas en su máquina y se aplican a cada sesión local y servidor de vista previa que inicia. También puede agregar variables a la clave `env` en su archivo `~/.claude/settings.json`, aunque estas llegan solo a sesiones de Claude y no a servidores de desarrollo. Consulte [variables de entorno](/docs/es/env-vars) para la lista completa de variables compatibles.736Para establecer variables de entorno para sesiones locales y servidores de desarrollo en cualquier plataforma, abra el menú desplegable de entorno en el cuadro de solicitud, pase el cursor sobre **Local** y haga clic en el icono de engranaje para abrir el editor de entorno local. Las variables que guarda aquí se almacenan cifradas en su máquina y se aplican a cada sesión local y servidor de vista previa que inicia. También puede agregar variables a la clave `env` en su archivo `~/.claude/settings.json`, aunque estas llegan solo a sesiones de Claude y no a servidores de desarrollo. Consulte [variables de entorno](/docs/es/env-vars) para la lista completa de variables compatibles.

737 737 

738[Extended thinking](/docs/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. En la API de Anthropic, establezca `MAX_THINKING_TOKENS` en `0` en el editor de entorno local para desactivar el pensamiento; esto no tiene efecto en modelos Fable, que siempre usan extended thinking. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.738[Extended thinking](/docs/es/model-config#extended-thinking) está habilitado de forma predeterminada, lo que mejora el rendimiento en tareas de razonamiento complejo pero usa tokens adicionales. En la API de Anthropic, establezca `MAX_THINKING_TOKENS` en `0` en el editor de entorno local para desactivar el pensamiento; esto no tiene efecto en Opus 5.5 o en los modelos Fable, que siempre usan extended thinking. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

739 739 

740En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), los valores de `MAX_THINKING_TOKENS` distintos de `0` se ignoran porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establezca `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.740En modelos con [razonamiento adaptativo](/docs/es/model-config#adjust-effort-level), los valores de `MAX_THINKING_TOKENS` distintos de `0` se ignoran porque el razonamiento adaptativo controla la profundidad del pensamiento en su lugar. En Opus 4.6 y Sonnet 4.6, establezca `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` en `1` para usar un presupuesto de pensamiento fijo; los modelos Fable, Sonnet 5 y Opus 4.7 y posteriores siempre usan razonamiento adaptativo y no tienen modo de presupuesto fijo.

741 741 

Details

16 Requisitos16 Requisitos

17</h2>17</h2>

18 18 

19* Ubuntu 22.04 o posterior, o Debian 12 o posterior19* Una distribución basada en Debian: Ubuntu 22.04 o posterior, o Debian 12 o posterior

20* x86\_64 o arm6420* x86\_64 o arm64

21 21 

22Otras distribuciones basadas en Debian que cumplan con estos requisitos pueden funcionar pero no se han probado oficialmente. En distribuciones que no estén basadas en Debian, como Fedora o Arch, ejecute la [CLI](/docs/es/setup#system-requirements) en su lugar. Si trabaja en Windows con WSL 2, instale la aplicación de escritorio de Windows y ejecute sesiones dentro de su distribución; consulte [Claude Code Desktop en WSL](/docs/es/desktop-wsl).22Otras distribuciones basadas en Debian que cumplan con estos requisitos pueden funcionar pero no se han probado oficialmente. En distribuciones que no estén basadas en Debian, como Fedora o Arch, ejecute la [CLI](/docs/es/setup#system-requirements) en su lugar. Si trabaja en Windows con WSL 2, instale la aplicación de escritorio de Windows y ejecute sesiones dentro de su distribución; consulte [Claude Code Desktop en WSL](/docs/es/desktop-wsl).

Details

42/plugin install github@claude-plugins-official42/plugin install github@claude-plugins-official

43```43```

44 44 

45`/plugin` abre un panel interactivo en la CLI del terminal. Si Claude responde que `/plugin` no está disponible en este entorno, use el [navegador de plugins](/docs/es/desktop#install-plugins) en la aplicación de escritorio de Claude, o declare el plugin bajo [`enabledPlugins`](/docs/es/settings-reference#enabledplugins) en `.claude/settings.json` para sesiones en la nube.45`/plugin` abre un panel interactivo en la CLI del terminal. Si Claude responde que `/plugin` no está disponible en este entorno, instale el plugin de otra manera:

46 

47* **Aplicación de escritorio de Claude**: use el [navegador de plugins](/docs/es/desktop#install-plugins).

48* **Extensión de VS Code**: instale desde el [diálogo **Manage plugins**](/docs/es/vs-code#manage-plugins).

49* **Sesiones en la nube**: habilite el plugin para su cuenta de claude.ai para que Claude Code lo cargue como un [plugin sincronizado](/docs/es/plugins-reference#synced-plugins).

46 50 

47Si la instalación falla, haga coincidir el mensaje que Claude Code reporta:51Si la instalación falla, haga coincidir el mensaje que Claude Code reporta:

48 52 


360Claude Code busca el plugin en su copia local del catálogo del mercado. La forma en que nombre el plugin controla si Claude Code actualiza esa copia primero:364Claude Code busca el plugin en su copia local del catálogo del mercado. La forma en que nombre el plugin controla si Claude Code actualiza esa copia primero:

361 365 

362* **Con un nombre de mercado**: cuando instala `plugin-name@marketplace-name`, en una sesión o con `claude plugin install`, Claude Code actualiza ese mercado antes de la búsqueda. Claude Code ejecuta la actualización incluso si desactivó [auto-update](#configure-auto-updates) para el mercado o estableció `DISABLE_AUTOUPDATER`. Antes de v2.1.232, Claude Code no actualizaba el mercado antes de la búsqueda. Claude Code omite esta actualización cuando:366* **Con un nombre de mercado**: cuando instala `plugin-name@marketplace-name`, en una sesión o con `claude plugin install`, Claude Code actualiza ese mercado antes de la búsqueda. Claude Code ejecuta la actualización incluso si desactivó [auto-update](#configure-auto-updates) para el mercado o estableció `DISABLE_AUTOUPDATER`. Antes de v2.1.232, Claude Code no actualizaba el mercado antes de la búsqueda. Claude Code omite esta actualización cuando:

363 * El mercado no fue [agregado desde GitHub, otro host de Git o una URL remota](#add-marketplaces).367 * El mercado no fue [agregado desde GitHub, otro host de Git, una URL remota](#add-marketplaces), o [claude.ai](#add-from-claude-ai).

364 * Un [directorio seed](/docs/es/plugin-marketplaces#pre-populate-plugins-for-containers) proporciona el mercado.368 * Un [directorio seed](/docs/es/plugin-marketplaces#pre-populate-plugins-for-containers) proporciona el mercado.

365 * Claude Code actualizó el mercado en los últimos 30 segundos.369 * Claude Code actualizó el mercado en los últimos 30 segundos.

366 * Estableció [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars).370 * Estableció [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars).


395 399 

396La fuente toma [las mismas formas que `/plugin marketplace add`](#add-marketplaces), como GitHub `owner/repo`, una URL de git o una ruta local, excepto que no puede contener espacios. Dé el nombre del plugin sin un sufijo `@marketplace`.400La fuente toma [las mismas formas que `/plugin marketplace add`](#add-marketplaces), como GitHub `owner/repo`, una URL de git o una ruta local, excepto que no puede contener espacios. Dé el nombre del plugin sin un sufijo `@marketplace`.

397 401 

398Si aún no ha agregado ese mercado, Claude Code muestra la fuente que resolvió y le pide que confirme antes de agregarlo. Rechazar cancela la instalación y no agrega nada. Una vez que se agrega el mercado, los detalles del plugin se abren y elige un [alcance de instalación](/docs/es/settings#where-settings-live).402Claude Code muestra la fuente que resolvió y le pide que confirme antes de agregar el mercado. Rechazar cancela la instalación y no agrega nada. Una vez que se agrega el mercado, los detalles del plugin se abren y elige un [alcance de instalación](/docs/es/settings#where-settings-live). Si la fuente coincide con un mercado que ya ha agregado, Claude Code omite la confirmación y abre los detalles del plugin en ese mercado.

399 403 

400<h2 id="manage-installed-plugins">404<h2 id="manage-installed-plugins">

401 Administrar plugins instalados405 Administrar plugins instalados

errors.md +156 −10

Details

71| `API Error: 401 Invalid authentication credentials` | [Autenticación](#api-error-401-invalid-authentication-credentials) |71| `API Error: 401 Invalid authentication credentials` | [Autenticación](#api-error-401-invalid-authentication-credentials) |

72| `Login expired · Please run /login` | [Autenticación](#login-expired) |72| `Login expired · Please run /login` | [Autenticación](#login-expired) |

73| `Claude login not accepted · Run /login, then try again` | [Autenticación](#claude-login-not-accepted) |73| `Claude login not accepted · Run /login, then try again` | [Autenticación](#claude-login-not-accepted) |

74| `Artifacts need a claude.ai login` | [Autenticación](#artifacts-need-a-claude-ai-login) |

74| `Not signed in to the Cloud gateway — run /login.` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |75| `Not signed in to the Cloud gateway — run /login.` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |

75| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |76| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Autenticación](#administrator-policy-requires-a-cloud-gateway-sign-in) |

76| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Autenticación](#login-expired) |77| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Autenticación](#login-expired) |


87| `Issuer mismatch in authorization response (RFC 9207)` | [Autenticación](#issuer-mismatch-in-authorization-response) |88| `Issuer mismatch in authorization response (RFC 9207)` | [Autenticación](#issuer-mismatch-in-authorization-response) |

88| `Cloud gateway session expired — run /login to reconnect.` | [Autenticación](#cloud-gateway-session-expired) |89| `Cloud gateway session expired — run /login to reconnect.` | [Autenticación](#cloud-gateway-session-expired) |

89| `Cloud gateway <url> no longer accepts this session` | [Autenticación](#cloud-gateway-session-expired) |90| `Cloud gateway <url> no longer accepts this session` | [Autenticación](#cloud-gateway-session-expired) |

91| `Sign-in timed out while waiting for you to continue. Try again.` | [Autenticación](#sign-in-timed-out-while-waiting-for-you-to-continue) |

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

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

92| `Google Cloud credentials expired or invalid` | [Autenticación](#google-cloud-credentials-expired-or-invalid) |94| `Google Cloud credentials expired or invalid` | [Autenticación](#google-cloud-credentials-expired-or-invalid) |


149| `effort '<level>' is not supported when thinking is disabled` | [Errores de solicitud](#effort-isnt-available-with-thinking-turned-off) |151| `effort '<level>' is not supported when thinking is disabled` | [Errores de solicitud](#effort-isnt-available-with-thinking-turned-off) |

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

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

154| `API Error: 400 orphaned tool_result in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

155| `API Error: 400 duplicate tool_use ID in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

152| `[Unsupported tool content removed]` | [Errores de solicitud](#unsupported-tool-content-removed) |156| `[Unsupported tool content removed]` | [Errores de solicitud](#unsupported-tool-content-removed) |

153| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errores de solicitud](#unsupported-tool-content-removed) |157| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errores de solicitud](#unsupported-tool-content-removed) |

154| `<model> can't help with this. Start a new session to continue` | [Errores de solicitud](#usage-policy-refusal) |158| `<model> can't help with this. Start a new session to continue` | [Errores de solicitud](#usage-policy-refusal) |

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

156| `<model>'s safeguards flagged this message` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |160| `<model>'s safeguards flagged this message` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

161| `Opus 5.5's safeguards flagged this session` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

157| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |162| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Errores de solicitud](#safety-measures-flagged-a-cybersecurity-topic) |

158| `Installation was killed before it could finish (exit code 137)` | [Errores de instalación](#installation-was-killed-before-it-could-finish) |163| `Installation was killed before it could finish (exit code 137)` | [Errores de instalación](#installation-was-killed-before-it-could-finish) |

159| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |164| `The connection dropped while downloading the update` | [Errores de instalación](#the-connection-dropped-while-downloading-the-update) |


199| `No conversation found with session ID: <session-id>` | [Errores de línea de comandos](#no-conversation-found-with-the-session-id) |204| `No conversation found with session ID: <session-id>` | [Errores de línea de comandos](#no-conversation-found-with-the-session-id) |

200| `Cannot switch renderers in this session` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |205| `Cannot switch renderers in this session` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |

201| `Cannot switch renderers while work is running in the background` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |206| `Cannot switch renderers while work is running in the background` | [Errores de línea de comandos](#cannot-switch-renderers-in-this-session) |

207| `Couldn't open Claude Desktop` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |

208| `Failed to open Claude Desktop. Please try opening it manually.` | [Errores de línea de comandos](#couldnt-open-claude-desktop) |

202| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |209| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |

203| `Your Zed keymap isn't a readable list of keybindings` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |210| `Your Zed keymap isn't a readable list of keybindings` | [Errores de línea de comandos](#terminal-setup-left-your-zed-keymap-unchanged) |

204| `Skill usage reports are not available on this connection.` | [Errores de línea de comandos](#skill-usage-reports-are-not-available-on-this-connection) |211| `Skill usage reports are not available on this connection.` | [Errores de línea de comandos](#skill-usage-reports-are-not-available-on-this-connection) |


206| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |213| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Errores de línea de comandos](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

207| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errores de plugins](#plugin-eval-is-currently-in-early-access) |214| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Errores de plugins](#plugin-eval-is-currently-in-early-access) |

208| `Marketplace "<name>" is registered from an untrusted source` | [Errores de plugins](#marketplace-is-registered-from-an-untrusted-source) |215| `Marketplace "<name>" is registered from an untrusted source` | [Errores de plugins](#marketplace-is-registered-from-an-untrusted-source) |

216| `Marketplace "<name>" is already added from a different source` | [Errores de plugins](#marketplace-is-already-added-from-a-different-source) |

209| `references ${user_config.*} in a shell-form command` | [Errores de plugins](#plugin-command-references-user-config) |217| `references ${user_config.*} in a shell-form command` | [Errores de plugins](#plugin-command-references-user-config) |

210| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Errores de plugins](#plugin-command-references-user-config) |218| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Errores de plugins](#plugin-command-references-user-config) |

211| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Errores de plugins](#plugin-command-references-user-config) |219| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Errores de plugins](#plugin-command-references-user-config) |


216| `Plugin source path refused` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |224| `Plugin source path refused` | [Errores de plugins](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

217| `Failed to load marketplace configuration` | [Errores de plugins](#failed-to-load-marketplace-configuration) |225| `Failed to load marketplace configuration` | [Errores de plugins](#failed-to-load-marketplace-configuration) |

218| `Marketplace configuration file is corrupted` | [Errores de plugins](#failed-to-load-marketplace-configuration) |226| `Marketplace configuration file is corrupted` | [Errores de plugins](#failed-to-load-marketplace-configuration) |

227| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Errores de plugins](#plugin-is-required-by-your-organization) |

219| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |228| `would be spawned with zero tools — refusing` | [Errores de herramientas](#agent-would-be-spawned-with-zero-tools) |

220| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |229| `File is covered by a Read deny rule in your permission settings` | [Errores de herramientas](#file-is-covered-by-a-read-deny-rule) |

221| `subagent_type is required: the general-purpose agent is not available in this session` | [Errores de herramientas](#subagent-type-is-required) |230| `subagent_type is required: the general-purpose agent is not available in this session` | [Errores de herramientas](#subagent-type-is-required) |


246| `Can't open MCP settings in a background session` | [Errores de sesión en segundo plano](#commands-refused-in-a-background-session) |255| `Can't open MCP settings in a background session` | [Errores de sesión en segundo plano](#commands-refused-in-a-background-session) |

247| `blocked because the path is spelled in a form that cannot be safely resolved` | [Errores de sesión en segundo plano](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |256| `blocked because the path is spelled in a form that cannot be safely resolved` | [Errores de sesión en segundo plano](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |

248| `blocked because the path is network-shaped` | [Errores de sesión en segundo plano](#write-or-command-blocked-because-the-path-names-a-network-location) |257| `blocked because the path is network-shaped` | [Errores de sesión en segundo plano](#write-or-command-blocked-because-the-path-names-a-network-location) |

258| `is isolated in the worktree <path>, but this command <reason>. Refusing to run it` | [Errores de sesión en segundo plano](#command-blocked-by-the-worktree-isolation-checks) |

259| `too complex to verify that it stays inside the worktree` | [Errores de sesión en segundo plano](#command-blocked-by-the-worktree-isolation-checks) |

249| `This session has no saved transcript` | [Errores de sesión en segundo plano](#this-session-has-no-saved-transcript) |260| `This session has no saved transcript` | [Errores de sesión en segundo plano](#this-session-has-no-saved-transcript) |

250| `Can't open — this session is running in another terminal` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |261| `Can't open — this session is running in another terminal` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |

251| `This conversation is already open in another running Claude session` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |262| `This conversation is already open in another running Claude session` | [Errores de sesión en segundo plano](#this-session-is-running-in-another-terminal) |


281| `MCP server <name> is blocked by enterprise managed policy` | [Advertencias de configuración](#mcp-server-is-blocked-by-enterprise-managed-policy) |292| `MCP server <name> is blocked by enterprise managed policy` | [Advertencias de configuración](#mcp-server-is-blocked-by-enterprise-managed-policy) |

282| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |293| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |

283| `Managed settings drop-in directory could not be read` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |294| `Managed settings drop-in directory could not be read` | [Advertencias de configuración](#managed-settings-document-could-not-be-parsed) |

295| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Advertencias de configuración](#otelheadershelper-failed) |

284| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Advertencias de configuración](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |296| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Advertencias de configuración](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

285| `headersHelper not run — this workspace has no persisted trust` | [Advertencias de configuración](#headershelper-not-run) |297| `headersHelper not run — this workspace has no persisted trust` | [Advertencias de configuración](#headershelper-not-run) |

286| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Advertencias de configuración](#malformed-tool-content-rule) |298| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Advertencias de configuración](#malformed-tool-content-rule) |


624**Qué hacer:**636**Qué hacer:**

625 637 

626* Ejecute `/model` y seleccione la variante sin el sufijo `[1m]` para volver a la ventana de contexto estándar638* Ejecute `/model` y seleccione la variante sin el sufijo `[1m]` para volver a la ventana de contexto estándar

627* Donde el mensaje menciona `/usage-credits`, ejecútelo para activar la facturación medida para la variante de 1M en Pro y Max, o para solicitar créditos de uso a su administrador en Team y Enterprise. Reinicie Claude Code una vez que los créditos de uso estén activados. Hasta que reinicie, la sesión permanece en el límite de contexto estándar.639* Donde el mensaje menciona `/usage-credits`, ejecútelo para activar la facturación medida para la variante de 1M en Pro y Max, o para solicitar créditos de uso a su administrador en Team y Enterprise. Una vez que los créditos de uso estén activados, reinicie Claude Code o inicie una nueva sesión, lo que diga el mensaje. Hasta entonces, la sesión permanece en el límite de contexto estándar.

628* Si el error persiste después de `/model`, un ID de modelo de 1M puede estar configurado en otro lugar. Consulte [Setting your model](/docs/es/model-config#setting-your-model) para ver las ubicaciones de configuración a verificar en orden de prioridad.640* Si el error persiste después de `/model`, un ID de modelo de 1M puede estar configurado en otro lugar. Consulte [Setting your model](/docs/es/model-config#setting-your-model) para ver las ubicaciones de configuración a verificar en orden de prioridad.

629* Para eliminar variantes de 1M del selector de modelo por completo, establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars)641* Para eliminar variantes de 1M del selector de modelo por completo, establezca [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars)

630 642 


861* Ejecute el comando configurado en `apiKeyHelper` directamente en su shell para reproducir el fallo873* Ejecute el comando configurado en `apiKeyHelper` directamente en su shell para reproducir el fallo

862* Si el comando informa una sesión expirada, vuelva a autenticarse con su proveedor de credenciales, por ejemplo iniciando sesión en su SSO o bóveda de secretos nuevamente874* Si el comando informa una sesión expirada, vuelva a autenticarse con su proveedor de credenciales, por ejemplo iniciando sesión en su SSO o bóveda de secretos nuevamente

863* Corrija el comando para que imprima solo la clave en stdout, como un único token de ASCII imprimible de hasta 16.384 caracteres, y salga con código 0. Consulte [rotar credenciales con apiKeyHelper](/docs/es/llm-gateway-connect#rotate-credentials-with-apikeyhelper) para una configuración que funcione.875* Corrija el comando para que imprima solo la clave en stdout, como un único token de ASCII imprimible de hasta 16.384 caracteres, y salga con código 0. Consulte [rotar credenciales con apiKeyHelper](/docs/es/llm-gateway-connect#rotate-credentials-with-apikeyhelper) para una configuración que funcione.

864* Ejecute `/status` para confirmar que `apiKeyHelper` es la fuente de credencial activa. Cada vez que el comando falla, su código de salida y salida de error aparecen en un panel `Authentication` en la terminal. Antes de v2.1.212, el panel se titulaba `Cloud authentication`.876* Ejecute `/status` para ver el fallo y confirme que `apiKeyHelper` es la fuente de credencial activa. La fila `apiKeyHelper` muestra `Failing` con el detalle del último fallo, como el código de salida y la salida de error del comando, y desaparece después de la siguiente ejecución exitosa. Antes de v2.1.274, `/status` mostraba solo la fuente de credencial, no el fallo.

877* Cada vez que el comando falla, su código de salida y salida de error también aparecen en un panel `Authentication` en la terminal. Antes de v2.1.212, el panel se titulaba `Cloud authentication`.

865 878 

866<h3 id="invalid-request-header-value">879<h3 id="invalid-request-header-value">

867 Valor de encabezado de solicitud inválido880 Valor de encabezado de solicitud inválido


1167 1180 

1168* Ejecute `/login`, complete el inicio de sesión, luego inicie la sesión nuevamente1181* Ejecute `/login`, complete el inicio de sesión, luego inicie la sesión nuevamente

1169 1182 

1183<h3 id="artifacts-need-a-claude-ai-login">

1184 Los artefactos necesitan un inicio de sesión de claude.ai

1185</h3>

1186 

1187Claude Code rechazó una publicación o lectura de [artefactos](/docs/es/artifacts) porque la sesión no tiene ningún inicio de sesión de claude.ai que pueda usar para artefactos.

1188 

1189Cada forma del mensaje comienza con las mismas palabras, seguidas de un remedio que depende de cómo se autentica su sesión. Sin ninguna credencial competidora se lee:

1190 

1191```text theme={null}

1192Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1193```

1194 

1195**Qué hacer:**

1196 

1197* Ejecute `/login` y seleccione **Claude account with subscription**. La opción **Anthropic Console account** no proporciona credenciales de claude.ai.

1198* Cuando el mensaje nombra una credencial que tiene precedencia, como `ANTHROPIC_API_KEY`, una configuración `apiKeyHelper`, o una clave de Console guardada por un `/login` anterior, elimínela de la manera que el mensaje dice, luego ejecute `/login`

1199* Cuando el mensaje dice que esta sesión remota se autentica a través de la máquina que la lanzó, inicie sesión en claude.ai en esa máquina, luego reconecte la sesión

1200* Cuando el mensaje dice que la credencial es inyectada por el entorno anfitrión de la sesión, no puede cambiarla en esa sesión; inicie una sesión que esté conectada a claude.ai

1201* Consulte [Disponibilidad](/docs/es/artifacts#availability) para los otros requisitos que tienen los artefactos, como plan, proveedor de modelo y política de organización

1202 

1170<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1203<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1171 La política del administrador requiere un inicio de sesión de puerta de enlace en la nube1204 La política del administrador requiere un inicio de sesión de puerta de enlace en la nube

1172</h3>1205</h3>


1535* Ejecute `/login` en la sesión y complete el inicio de sesión del navegador1568* Ejecute `/login` en la sesión y complete el inicio de sesión del navegador

1536* Para un lanzamiento no interactivo, inicie `claude` en el mismo entorno, ejecute `/login`, luego reejecutar su comando1569* Para un lanzamiento no interactivo, inicie `claude` en el mismo entorno, ejecute `/login`, luego reejecutar su comando

1537 1570 

1571<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1572 Inicio de sesión agotado mientras esperaba que continúe

1573</h3>

1574 

1575Durante un inicio de sesión de [puerta de enlace de aplicaciones de Claude](/docs/es/claude-apps-gateway), la puerta de enlace nombró la cuenta que inició sesión, y Claude Code le pidió que la confirmara antes de guardar la credencial. Dejó la confirmación abierta más allá de la expiración del propio inicio de sesión, y la puerta de enlace no emitió ningún token de actualización que pudiera renovarlo, por lo que Claude Code no almacenó nada cuando continuó:

1576 

1577```text theme={null}

1578Sign-in timed out while waiting for you to continue. Try again.

1579```

1580 

1581**Qué hacer:**

1582 

1583* Ejecute `/login` nuevamente y confirme la cuenta antes de que el inicio de sesión expire

1584 

1538<h3 id="gateway-refused-the-request">1585<h3 id="gateway-refused-the-request">

1539 La puerta de enlace rechazó la solicitud1586 La puerta de enlace rechazó la solicitud

1540</h3>1587</h3>


2268 2315 

2269**Qué hacer:**2316**Qué hacer:**

2270 2317 

2271* Ejecute `claude update` y reinicie Claude Code. Opus 4.7 necesita v2.1.111 o posterior. Opus 4.8 necesita v2.1.154 o posterior. Sonnet 5 necesita v2.1.197 o posterior. Opus 5 necesita v2.1.219 o posterior2318* Ejecute `claude update` y reinicie Claude Code. Opus 4.7 necesita v2.1.111 o posterior. Opus 4.8 necesita v2.1.154 o posterior. Sonnet 5 necesita v2.1.197 o posterior. Opus 5 necesita v2.1.219 o posterior. Opus 5.5 necesita v2.1.280 o posterior

2272* Si no puede actualizar, ejecute `/model` y seleccione Opus 4.6 o Sonnet 4.6 en su lugar2319* Si no puede actualizar, ejecute `/model` y seleccione Opus 4.6 o Sonnet 4.6 en su lugar

2273* Si encuentra esto en el [Agent SDK](/docs/es/agent-sdk/overview), actualice el paquete SDK en su lugar. Opus 4.8 necesita TypeScript SDK v0.3.154 o posterior y Python SDK v0.2.88 o posterior. Sonnet 5 necesita TypeScript SDK v0.3.197 o posterior. Opus 5 necesita TypeScript SDK v0.3.219 o posterior2320* Si encuentra esto en el [Agent SDK](/docs/es/agent-sdk/overview), actualice el paquete SDK en su lugar. Opus 4.8 necesita TypeScript SDK v0.3.154 o posterior y Python SDK v0.2.88 o posterior. Sonnet 5 necesita TypeScript SDK v0.3.197 o posterior. Opus 5 necesita TypeScript SDK v0.3.219 o posterior. Opus 5.5 necesita TypeScript SDK v0.3.280 o posterior

2274 2321 

2275<h3 id="effort-isnt-available-with-thinking-turned-off">2322<h3 id="effort-isnt-available-with-thinking-turned-off">

2276 El esfuerzo no está disponible con el pensamiento desactivado2323 El esfuerzo no está disponible con el pensamiento desactivado


2314 2361 

2315```text theme={null}2362```text theme={null}

2316API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.2363API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.

2364API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.

2365API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.

2317API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks2366API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks

2318API Error: 400 ... thinking blocks ... cannot be modified2367API Error: 400 ... thinking blocks ... cannot be modified

2319```2368```

2320 2369 

2321Las tres variantes significan lo mismo: la secuencia de bloques `tool_use`, `tool_result` y `thinking` en el historial ya no coincide con lo que la API espera.2370Todas las variantes significan lo mismo: la secuencia de bloques `tool_use`, `tool_result` y `thinking` en el historial ya no coincide con lo que la API espera.

2322 2371 

2323**Qué hacer:**2372**Qué hacer:**

2324 2373 


2376API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2425API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2377```2426```

2378 2427 

2379El mensaje vincula al [Programa de verificación de ciberseguridad](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que otorga acceso para trabajo de ciberseguridad legítimo.2428El mensaje vincula al [Programa de verificación de ciberseguridad](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), que otorga acceso para trabajo de ciberseguridad legítimo. En Opus 5.5, que requiere v2.1.280 o posterior, el mensaje abre con `Opus 5.5's safeguards flagged this session` en su lugar. Cuando la categoría marcada tiene un modelo alternativo disponible, Claude Code [cambia de modelos](/docs/es/model-config#automatic-model-fallback) en lugar de mostrar este error.

2380 2429 

2381En [Amazon Bedrock](/docs/es/amazon-bedrock), [Plataforma de agentes de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una bandera de ciberseguridad produce el mensaje de [rechazo de política de uso](#usage-policy-refusal) en su lugar.2430En [Amazon Bedrock](/docs/es/amazon-bedrock), [Plataforma de agentes de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una bandera de ciberseguridad produce el mensaje de [rechazo de política de uso](#usage-policy-refusal) en su lugar.

2382 2431 


3087**Qué hacer:**3136**Qué hacer:**

3088 3137 

3089* Ejecute `claude --resume <session-id>` con el ID de sesión del mensaje para reintentar3138* Ejecute `claude --resume <session-id>` con el ID de sesión del mensaje para reintentar

3139* Si cada reintento falla de la misma manera, ejecute `claude update` y reanude nuevamente. Las versiones anteriores a v2.1.275 fallan en la reanudación cuando la transcripción guardada contiene una entrada que no pueden leer.

3090* Si el reintento falla nuevamente, ejecute `claude` para iniciar una nueva sesión3140* Si el reintento falla nuevamente, ejecute `claude` para iniciar una nueva sesión

3091 3141 

3092<h3 id="no-conversation-found-with-the-session-id">3142<h3 id="no-conversation-found-with-the-session-id">


3139 3189 

3140* En una sesión iniciada sin esas restricciones, ejecute `/tui fullscreen`, o `/tui default` para cambiar de vuelta. Claude Code guarda la [configuración `tui`](/docs/es/settings-reference#tui) allí3190* En una sesión iniciada sin esas restricciones, ejecute `/tui fullscreen`, o `/tui default` para cambiar de vuelta. Claude Code guarda la [configuración `tui`](/docs/es/settings-reference#tui) allí

3141 3191 

3192<h3 id="couldnt-open-claude-desktop">

3193 No se pudo abrir Claude Desktop

3194</h3>

3195 

3196Ejecutó [`/desktop`](/docs/es/desktop#coming-from-the-cli), o su alias `/app`, y el comando del sistema que Claude Code usa para abrir Claude Desktop falló. La sesión permanece en la terminal.

3197 

3198```text theme={null}

3199Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and run /desktop again.

3200```

3201 

3202**Qué hacer:**

3203 

3204* Abra Claude Desktop usted mismo, luego ejecute `/desktop` nuevamente

3205* Para leer la salida de error completa de ese comando, active el registro de depuración con `/debug`, ejecute `/desktop` nuevamente, y verifique el registro de depuración

3206 

3207Antes de v2.1.275, el mensaje era `Failed to open Claude Desktop. Please try opening it manually.` y no decía qué falló.

3208 

3142<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3209<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3143 /terminal-setup dejó su mapa de atajos de teclado de Zed sin cambios3210 /terminal-setup dejó su mapa de atajos de teclado de Zed sin cambios

3144</h3>3211</h3>


3256* Si publica un marketplace de terceros que utilizó el nombre antes de que se reservara, cámbielo de nombre y pida a los usuarios que lo vuelvan a agregar desde su fuente3323* Si publica un marketplace de terceros que utilizó el nombre antes de que se reservara, cámbielo de nombre y pida a los usuarios que lo vuelvan a agregar desde su fuente

3257* Consulte la lista de nombres reservados en [Marketplace schema](/docs/es/plugin-marketplaces#marketplace-schema)3324* Consulte la lista de nombres reservados en [Marketplace schema](/docs/es/plugin-marketplaces#marketplace-schema)

3258 3325 

3326<h3 id="marketplace-is-already-added-from-a-different-source">

3327 Marketplace is already added from a different source

3328</h3>

3329 

3330Confirmó agregar un marketplace a través de [`/plugin install <plugin> --marketplace <source>`](/docs/es/discover-plugins#add-a-marketplace-and-install-in-one-command), y el catálogo que Claude Code obtuvo de esa fuente se llama a sí mismo igual que un marketplace que ya agregó desde una fuente diferente. Claude Code mantiene el marketplace existente en lugar de reemplazarlo, y el plugin no se instala.

3331 

3332```text theme={null}

3333Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

3334```

3335 

3336**Qué hacer:**

3337 

3338* Si el marketplace que ya agregó es el que desea, instale desde él por nombre: `/plugin install <plugin>@<name>`

3339* Para cambiar a la nueva fuente, ejecute `/plugin marketplace remove <name>`, luego reintente la instalación

3340 

3259<h3 id="plugin-command-references-user-config">3341<h3 id="plugin-command-references-user-config">

3260 Plugin command references user\_config in a shell command3342 Plugin command references user\_config in a shell command

3261</h3>3343</h3>


3380La [entrada de marketplace](/docs/es/plugin-marketplaces#plugin-entries) del plugin declara una ruta de fuente que Claude Code no puede resolver a una ubicación dentro del directorio del marketplace en sí, por lo que el plugin no se instala ni se carga. La negativa cubre:3462La [entrada de marketplace](/docs/es/plugin-marketplaces#plugin-entries) del plugin declara una ruta de fuente que Claude Code no puede resolver a una ubicación dentro del directorio del marketplace en sí, por lo que el plugin no se instala ni se carga. La negativa cubre:

3381 3463 

3382* Una ruta de entrada que es absoluta, sube fuera del marketplace con `..`, o está escrita como una ruta de red3464* Una ruta de entrada que es absoluta, sube fuera del marketplace con `..`, o está escrita como una ruta de red

3465* En macOS y Linux, una ruta de entrada que contiene una barra invertida en cualquier lugar después del `./` inicial

3383* Una entrada en un marketplace obtenido de una fuente remota, como git o una URL, que alcanza su destino a través de un enlace simbólico que se resuelve fuera del directorio del marketplace3466* Una entrada en un marketplace obtenido de una fuente remota, como git o una URL, que alcanza su destino a través de un enlace simbólico que se resuelve fuera del directorio del marketplace

3384* Una entrada relativa en un marketplace agregado desde una URL directa a su `marketplace.json`: Claude Code descarga solo ese archivo, por lo que no existen archivos de plugin locales para que la ruta nombre. Consulte [Plugins with relative paths fail in URL-based marketplaces](/docs/es/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)3467* Una entrada relativa en un marketplace agregado desde una URL directa a su `marketplace.json`: Claude Code descarga solo ese archivo, por lo que no existen archivos de plugin locales para que la ruta nombre. Consulte [Plugins with relative paths fail in URL-based marketplaces](/docs/es/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3385 3468 


3397 3480 

3398**Qué hacer:**3481**Qué hacer:**

3399 3482 

3400* Si mantiene el marketplace, escriba la `source` de la entrada como una ruta relativa simple como `./plugins/my-plugin`, y mantenga cualquier enlace simbólico que cruce apuntado dentro del directorio del marketplace3483* Si mantiene el marketplace, escriba la `source` de la entrada como una ruta relativa simple con barras diagonales, como `./plugins/my-plugin`, y mantenga cualquier enlace simbólico que cruce apuntado dentro del directorio del marketplace

3401* Si agregó el marketplace desde una URL directa, las entradas relativas no pueden resolverse. Pida al autor del marketplace que use [otra fuente de plugin](/docs/es/plugin-marketplaces#plugin-sources), o agregue el marketplace desde su repositorio de git en su lugar3484* Si agregó el marketplace desde una URL directa, las entradas relativas no pueden resolverse. Pida al autor del marketplace que use [otra fuente de plugin](/docs/es/plugin-marketplaces#plugin-sources), o agregue el marketplace desde su repositorio de git en su lugar

3402 3485 

3403<h3 id="failed-to-load-marketplace-configuration">3486<h3 id="failed-to-load-marketplace-configuration">


3424* Abra `~/.claude/plugins/known_marketplaces.json` y repare el JSON, o corrija las entradas que el mensaje nombra como no coincidentes con el esquema del registro3507* Abra `~/.claude/plugins/known_marketplaces.json` y repare el JSON, o corrija las entradas que el mensaje nombra como no coincidentes con el esquema del registro

3425* Si no puede repararlo, elimine el archivo o reemplace su contenido con `{}`, luego vuelva a agregar cada marketplace con `claude plugin marketplace add <source>`. Claude Code vuelve a registrar los marketplaces que su configuración de usuario o administrada declara en [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) la próxima vez que lo inicie en una carpeta que haya confiado.3508* Si no puede repararlo, elimine el archivo o reemplace su contenido con `{}`, luego vuelva a agregar cada marketplace con `claude plugin marketplace add <source>`. Claude Code vuelve a registrar los marketplaces que su configuración de usuario o administrada declara en [`extraKnownMarketplaces`](/docs/es/settings-reference#extraknownmarketplaces) la próxima vez que lo inicie en una carpeta que haya confiado.

3426 3509 

3510<h3 id="plugin-is-required-by-your-organization">

3511 Plugin is required by your organization

3512</h3>

3513 

3514Ejecutó `claude plugin disable`, o utilizó la pestaña **Installed** de `/plugin`, para desactivar un [plugin sincronizado desde claude.ai](/docs/es/plugins-reference#synced-plugins) que su organización marca como requerido:

3515 

3516```text theme={null}

3517Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

3518```

3519 

3520Claude Code no guarda nada y el plugin permanece habilitado.

3521 

3522Cuando intenta desactivar un plugin del que depende un plugin requerido, Claude Code rechaza de la misma manera, con un mensaje que nombra el plugin requerido que lo necesita.

3523 

3524**Qué hacer:**

3525 

3526* Pida a un administrador de su organización claude.ai que cambie el estado requerido del plugin en claude.ai

3527 

3427<h2 id="tool-errors">3528<h2 id="tool-errors">

3428 Errores de herramientas3529 Errores de herramientas

3429</h2>3530</h2>


3452 3553 

3453* Corrija cada entrada que el error nombra contra las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools)3554* Corrija cada entrada que el error nombra contra las [herramientas disponibles para subagentes](/docs/es/sub-agents#available-tools)

3454* Elimine entradas para herramientas que la sesión no tiene, como herramientas MCP de un servidor que no está conectado3555* Elimine entradas para herramientas que la sesión no tiene, como herramientas MCP de un servidor que no está conectado

3455* Para una herramienta que [las subagentes de fondo descartan](/docs/es/sub-agents#available-tools), como `LSP`, elimine la entrada. Para mantener la herramienta, [desactive el modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off) y pida a Claude que ejecute la subagente en primer plano3556* Para una herramienta que [las subagentes de fondo descartan](/docs/es/sub-agents#available-tools), como `CronCreate`, elimine la entrada. Para mantener la herramienta, [desactive el modo fork](/docs/es/sub-agents#turn-fork-mode-on-or-off) y pida a Claude que ejecute la subagente en primer plano

3456* Elimine el campo `tools` en lugar de enumerar herramientas para dar a la subagente cada [herramienta disponible para subagentes](/docs/es/sub-agents#available-tools)3557* Elimine el campo `tools` en lugar de enumerar herramientas para dar a la subagente cada [herramienta disponible para subagentes](/docs/es/sub-agents#available-tools)

3457* Para una lista `tools` que contiene solo `Agent`, aumente el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) o dé al agente al menos otra herramienta: Claude Code retiene `Agent` en ese límite, por lo que una lista sin nada más en ella se resuelve a ninguna herramienta3558* Para una lista `tools` que contiene solo `Agent`, aumente el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) o dé al agente al menos otra herramienta: Claude Code retiene `Agent` en ese límite, por lo que una lista sin nada más en ella se resuelve a ninguna herramienta

3458 3559 


3649Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.3750Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.

3650```3751```

3651 3752 

3652El texto después de la ruta nombra la razón:3753Cada rechazo nombra su razón:

3653 3754 

3654* `its symlink resolution changed after permission was checked`: un enlace simbólico a lo largo de la ruta, o en una raíz de búsqueda Grep o Glob, fue reemplazado entre la verificación de permiso y la operación. En un rechazo de lectura, la frase entre paréntesis nombra qué comparación falló.3755* `its symlink resolution changed after permission was checked`: un enlace simbólico a lo largo de la ruta, o en una raíz de búsqueda Grep o Glob, fue reemplazado entre la verificación de permiso y la operación. En un rechazo de lectura, la frase entre paréntesis nombra qué comparación falló.

3655* `its parent-directory symlink resolution changed after permission was checked`: un directorio por el que pasa la ruta de escritura ya no se resuelve a la ubicación aprobada3756* `its parent-directory symlink resolution changed after permission was checked`: un directorio por el que pasa la ruta de escritura ya no se resuelve a la ubicación aprobada


3812* Generalmente nada: Claude reintenta con la ortografía local que el mensaje solicita3913* Generalmente nada: Claude reintenta con la ortografía local que el mensaje solicita

3813* Si el archivo está en un recurso compartido de red en lugar de un archivo local deletreado con una ruta de red, está fuera del espacio de trabajo local de la sesión; edítelo desde una sesión interactiva regular en su lugar3914* Si el archivo está en un recurso compartido de red en lugar de un archivo local deletreado con una ruta de red, está fuera del espacio de trabajo local de la sesión; edítelo desde una sesión interactiva regular en su lugar

3814 3915 

3916<h3 id="command-blocked-by-the-worktree-isolation-checks">

3917 Comando bloqueado por las comprobaciones de aislamiento de worktree

3918</h3>

3919 

3920Claude ejecutó un comando Bash o Monitor en una [sesión aislada en un worktree](/docs/es/worktrees#how-claude-code-enforces-isolation), y Claude Code lo rechazó por una de dos razones:

3921 

3922* El comando apunta git al checkout principal.

3923* Claude Code no puede verificar a partir del texto del comando que cualquier git que ejecute el comando permanezca dentro del worktree. Un comando que nunca nombra git aún puede ser rechazado por esta razón, porque expandir una indirección de variable como `${!name}` o ejecutar una sustitución de función Bash como `${ command; }` produce un valor en tiempo de ejecución que puede ser un comando en sí.

3924 

3925El medio del mensaje nombra lo que no se pudo verificar:

3926 

3927```text wrap theme={null}

3928This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.

3929```

3930 

3931**Qué hacer:**

3932 

3933* Generalmente nada: Claude lee el mensaje y reescribe el comando de la manera que su oración final solicita

3934* Si un comando que solicitó sigue siendo rechazado, deletree el valor marcado literalmente: reemplace la indirección o sustitución con su valor, y ejecute git como su propio comando simple desde dentro del worktree

3935* Para actuar en el checkout principal a propósito, ejecute el comando usted mismo en una terminal fuera de la sesión

3936 

3815<h3 id="this-session-has-no-saved-transcript">3937<h3 id="this-session-has-no-saved-transcript">

3816 Esta sesión no tiene transcripción guardada3938 Esta sesión no tiene transcripción guardada

3817</h3>3939</h3>


4201 4323 

4202Claude Code elimina las copias de seguridad de una sesión en el [barrido de retención](/docs/es/claude-directory#cleaned-up-automatically), por defecto aproximadamente 30 días después de que la sesión guardara una por última vez. Si reanuda una sesión después de eso, `/rewind` aún enumera sus puntos de control, pero la restauración a uno de ellos puede fallar con este error. Si el mensaje también dice `N paths were skipped for link safety`, consulte [Restored the code, but skipped files](#restored-the-code-but-skipped-files) para esas rutas.4324Claude Code elimina las copias de seguridad de una sesión en el [barrido de retención](/docs/es/claude-directory#cleaned-up-automatically), por defecto aproximadamente 30 días después de que la sesión guardara una por última vez. Si reanuda una sesión después de eso, `/rewind` aún enumera sus puntos de control, pero la restauración a uno de ellos puede fallar con este error. Si el mensaje también dice `N paths were skipped for link safety`, consulte [Restored the code, but skipped files](#restored-the-code-but-skipped-files) para esas rutas.

4203 4325 

4326Cuando bifurca una sesión, por ejemplo con [`--fork-session`](/docs/es/cli-reference#cli-flags) o [`/branch`](/docs/es/sessions#branch-a-session), Claude Code copia las copias de seguridad de la sesión original en la bifurcación. Cuando Claude Code no puede copiar una copia de seguridad, por ejemplo porque el disco está lleno, esa copia de seguridad falta en la bifurcación. La restauración a un punto de control que la necesita puede fallar con este error.

4327 

4204**Qué hacer:**4328**Qué hacer:**

4205 4329 

4206* Deshaga los cambios de otra manera: pida a Claude que revierta sus ediciones, o restaure los archivos desde el control de versiones. Cuando las copias de seguridad desaparecen, ejecutar `/rewind` nuevamente falla de la misma manera.4330* Deshaga los cambios de otra manera: pida a Claude que revierta sus ediciones, o restaure los archivos desde el control de versiones. Cuando las copias de seguridad desaparecen, ejecutar `/rewind` nuevamente falla de la misma manera.


4458* Si administra la máquina, corrija el documento nombrado para que se analice como un objeto JSON, o elimine el archivo, perfil o valor del registro. Un `managed-settings.json` vacío cuenta como `{}` y no bloquea el inicio.4582* Si administra la máquina, corrija el documento nombrado para que se analice como un objeto JSON, o elimine el archivo, perfil o valor del registro. Un `managed-settings.json` vacío cuenta como `{}` y no bloquea el inicio.

4459* Si no lo hace, pida a su administrador que corrija el documento implementado. Nada en sus propios archivos de configuración causa o borra este error.4583* Si no lo hace, pida a su administrador que corrija el documento implementado. Nada en sus propios archivos de configuración causa o borra este error.

4460 4584 

4585<h3 id="otelheadershelper-failed">

4586 otelHeadersHelper falló

4587</h3>

4588 

4589Claude Code muestra esta advertencia como una notificación en la interfaz de terminal, una vez por sesión interactiva, cuando el script [`otelHeadersHelper`](/docs/es/settings-reference#otelheadershelper) falla o imprime salida que no cumple con los [requisitos del script](/docs/es/monitoring-usage#script-requirements).

4590 

4591Mientras el script sigue fallando, las exportaciones fallan y su backend de telemetría no recibe nada de la sesión.

4592 

4593El texto después de `See /status:` dice qué falló, como el código de salida del script seguido de su salida de error:

4594 

4595```text theme={null}

4596otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable

4597```

4598 

4599**Qué hacer:**

4600 

4601* Ejecute `/status` para leer el detalle de la falla.

4602* Corrija el script para que salga 0 dentro de 30 segundos e imprima un objeto JSON de valores de encabezado de cadena en stdout. Consulte [requisitos del script](/docs/es/monitoring-usage#script-requirements).

4603* Si su organización implementa el script a través de [configuración administrada](/docs/es/managed-settings), pida a quien la mantenga que lo corrija.

4604 

4605En [modo no interactivo](/docs/es/headless) con `-p`, la misma falla aparece en stderr como `otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error>` en su lugar.

4606 

4461<h3 id="headershelper-not-run">4607<h3 id="headershelper-not-run">

4462 headersHelper no ejecutado4608 headersHelper no ejecutado

4463</h3>4609</h3>


4652 4798 

4653* Un [`--fallback-model`](/docs/es/cli-reference#cli-flags) configurado toma el control después de un error de disponibilidad, solo para ese turno, con un aviso en la transcripción4799* Un [`--fallback-model`](/docs/es/cli-reference#cli-flags) configurado toma el control después de un error de disponibilidad, solo para ese turno, con un aviso en la transcripción

4654* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible4800* Una verificación de inicio de Amazon Bedrock o de la plataforma de agentes de Google Cloud encuentra su modelo predeterminado no disponible

4655* El [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en Fable 5.1, Fable 5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción4801* El [respaldo automático de modelo](/docs/es/model-config#automatic-model-fallback) en Fable 5.1, Fable 5, Opus 5.5 y Opus 5 mueve la sesión al modelo de respaldo de la categoría marcada, cuando esa categoría tiene uno, y muestra un aviso en la transcripción

4656 4802 

4657La verificación de selección de modelo a continuación detecta el segundo y tercer caso; el primero aparece como un aviso de transcripción en lugar de un cambio de `/model`. La [configuración del modelo](/docs/es/model-config) explica cuándo se aplica cada respaldo.4803La verificación de selección de modelo a continuación detecta el segundo y tercer caso; el primero aparece como un aviso de transcripción en lugar de un cambio de `/model`. La [configuración del modelo](/docs/es/model-config) explica cuándo se aplica cada respaldo.

4658 4804 

fast-mode.md +12 −7

Details

12 12 

13El modo rápido es una configuración de alta velocidad para Claude Opus, haciendo que el modelo sea hasta 2.5x más rápido a un costo más alto por token. Actívalo con `/fast` cuando necesites velocidad para trabajo interactivo como iteración rápida o depuración en vivo, y desactívalo cuando el costo sea más importante que la latencia.13El modo rápido es una configuración de alta velocidad para Claude Opus, haciendo que el modelo sea hasta 2.5x más rápido a un costo más alto por token. Actívalo con `/fast` cuando necesites velocidad para trabajo interactivo como iteración rápida o depuración en vivo, y desactívalo cuando el costo sea más importante que la latencia.

14 14 

15El modo rápido no es un modelo diferente. Utiliza Claude Opus con una configuración de API diferente que prioriza la velocidad sobre la eficiencia de costos. Obtienes la misma calidad y capacidades con respuestas más rápidas. El modo rápido es compatible con Opus 5 y Opus 4.8. No está disponible en Sonnet, Haiku u otros modelos.15El modo rápido no es un modelo diferente. Utiliza Claude Opus con una configuración de API diferente que prioriza la velocidad sobre la eficiencia de costos. Obtienes la misma calidad y capacidades con respuestas más rápidas. El modo rápido es compatible con Opus 5.5, Opus 5 y Opus 4.8. No está disponible en Sonnet, Haiku u otros modelos.

16 16 

17Claude Code trata Opus 4.7 como cualquier otro modelo sin soporte de modo rápido: cambiar a él desactiva el modo rápido. El modo rápido para Opus 4.7 fue deprecado el 25 de junio de 2026 y se eliminó el 24 de julio de 2026.17Opus 4.7 no admite el modo rápido, por lo que cambiar a él desactiva el modo rápido. El modo rápido para Opus 4.7 fue deprecado el 25 de junio de 2026 y se eliminó el 24 de julio de 2026.

18 18 

19Lo que debes saber:19Lo que debes saber:

20 20 

21* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. La extensión VS Code sigue tu configuración [`fastMode`](#toggle-fast-mode) y ofrece un comando **Toggle fast mode** cuando el modelo seleccionado admite el modo rápido.21* Usa `/fast` para activar o desactivar el modo rápido en Claude Code CLI. La [extensión VS Code](/docs/es/vs-code) ofrece un comando **Toggle fast mode** cuando el modelo seleccionado admite el modo rápido. Claude Code guarda ese cambio en tu configuración [`fastMode`](#toggle-fast-mode).

22* Los precios del modo rápido por MTok de entrada/salida son \$10/\$50 en Opus 5 y Opus 4.8.22* Los precios del modo rápido por MTok de entrada/salida son \$8/\$40 en Opus 5.5 y \$10/\$50 en Opus 5 y Opus 4.8.

23* Disponible para usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise) y en Claude Console. Las organizaciones Team y Enterprise necesitan que un Propietario lo habilite primero, y las organizaciones Console necesitan que se aprovisione el acceso primero, ambos descritos en [Requisitos](#requirements).23* Disponible para usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise) y en Claude Console. Las organizaciones Team y Enterprise necesitan que un Propietario lo habilite primero, y las organizaciones Console necesitan que se aprovisione el acceso primero, ambos descritos en [Requisitos](#requirements).

24* Para los usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise), el modo rápido está disponible solo a través de créditos de uso y no está incluido en los límites de velocidad de la suscripción.24* Para los usuarios de Claude Code en planes de suscripción (Pro/Max/Team/Enterprise), el modo rápido está disponible solo a través de créditos de uso y no está incluido en los límites de velocidad de la suscripción.

25 25 


29 29 

30En la CLI, activa el modo rápido de cualquiera de estas formas:30En la CLI, activa el modo rápido de cualquiera de estas formas:

31 31 

32* Escribe `/fast` y presiona Tab para activar o desactivar32* Ejecuta `/fast`, presiona Space para activar o desactivar, luego presiona Enter para confirmar

33* Establece `"fastMode": true` en tu [archivo de configuración de usuario](/docs/es/settings)33* Establece `"fastMode": true` en tu [archivo de configuración de usuario](/docs/es/settings)

34 34 

35De forma predeterminada, el modo rápido que activas en una sesión interactiva persiste entre sesiones. Puedes configurar el modo rápido para que se reinicie cada sesión. Consulta [opción de participación por sesión](#require-per-session-opt-in) para obtener más detalles.35De forma predeterminada, el modo rápido que activas en una sesión interactiva persiste entre sesiones. Puedes configurar el modo rápido para que se reinicie cada sesión. Consulta [opción de participación por sesión](#require-per-session-opt-in) para obtener más detalles.


47* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo47* Un pequeño icono `↯` aparece junto al prompt mientras el modo rápido está activo

48* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado48* Ejecuta `/fast` nuevamente en cualquier momento para verificar si el modo rápido está activado o desactivado

49 49 

50Opus 5 es el valor predeterminado del modo rápido en Claude Code v2.1.219 y posterior. Antes de v2.1.219, el modo rápido utilizaba Opus 4.8 de forma predeterminada en v2.1.154 a v2.1.218, y Opus 4.7 en v2.1.142 a v2.1.153.50Opus 5.5 es el valor predeterminado del modo rápido en Claude Code v2.1.280 y posterior. Antes de v2.1.280, el modo rápido utilizaba Opus 5 de forma predeterminada a partir de v2.1.219, Opus 4.8 en v2.1.154 a v2.1.218, y Opus 4.7 en v2.1.142 a v2.1.153.

51 51 

52Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en Opus. Para cambiar a un modelo diferente, usa `/model`.52Cuando desactivas el modo rápido con `/fast` nuevamente, permaneces en Opus. Para cambiar a un modelo diferente, usa `/model`.

53 53 


80 80 

81| Modelo | Entrada (MTok) | Salida (MTok) |81| Modelo | Entrada (MTok) | Salida (MTok) |

82| -------- | -------------- | ------------- |82| -------- | -------------- | ------------- |

83| Opus 5.5 | \$8 | \$40 |

83| Opus 5 | \$10 | \$50 |84| Opus 5 | \$10 | \$50 |

84| Opus 4.8 | \$10 | \$50 |85| Opus 4.8 | \$10 | \$50 |

85 86 


145* **Habilitación del propietario para Team y Enterprise**: el modo rápido está deshabilitado de forma predeterminada para organizaciones Team y Enterprise. Un propietario debe [habilitar explícitamente el modo rápido](#enable-fast-mode-for-your-organization) antes de que los usuarios puedan acceder a él.146* **Habilitación del propietario para Team y Enterprise**: el modo rápido está deshabilitado de forma predeterminada para organizaciones Team y Enterprise. Un propietario debe [habilitar explícitamente el modo rápido](#enable-fast-mode-for-your-organization) antes de que los usuarios puedan acceder a él.

146 147 

147<Note>148<Note>

148 Dos configuraciones de organización pueden bloquear la activación del modo rápido con `/fast`:149 Cuatro configuraciones de organización pueden bloquear la activación del modo rápido con `/fast`:

149 150 

150 * **Modo rápido no habilitado**: si el modo rápido no ha sido habilitado para su organización, activar el modo rápido con `/fast` muestra "Fast mode has been disabled by your organization."151 * **Modo rápido no habilitado**: si el modo rápido no ha sido habilitado para su organización, activar el modo rápido con `/fast` muestra "Fast mode has been disabled by your organization."

152 * **Modo rápido desactivado por configuración administrada**: si su organización implementa [configuración administrada](/docs/es/managed-settings) que establece [`fastMode: false`](/docs/es/settings-reference#fastmode), activar el modo rápido con `/fast` muestra el mismo mensaje "Fast mode has been disabled by your organization".

153 * **Opción de participación requerida por sesión**: la configuración administrada que establece [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) rechaza `/fast on` con el mismo mensaje en todas partes excepto en una sesión de terminal interactiva.

151 * **Modelo de modo rápido no permitido**: si la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de su organización excluye el modelo Opus del modo rápido, activarlo se rechaza con "is not in your organization's allowed models". En una sesión ya en ejecución en un modelo Opus permitido que admita modo rápido, `/fast` en su lugar habilita el modo rápido en su modelo actual sin cambiar de modelos.154 * **Modelo de modo rápido no permitido**: si la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de su organización excluye el modelo Opus del modo rápido, activarlo se rechaza con "is not in your organization's allowed models". En una sesión ya en ejecución en un modelo Opus permitido que admita modo rápido, `/fast` en su lugar habilita el modo rápido en su modelo actual sin cambiar de modelos.

152</Note>155</Note>

153 156 


204 207 

205Esto es útil para controlar costos en organizaciones donde los usuarios ejecutan múltiples sesiones concurrentes. La preferencia del modo rápido del usuario aún se guarda, por lo que eliminar esta configuración restaura el comportamiento persistente predeterminado.208Esto es útil para controlar costos en organizaciones donde los usuarios ejecutan múltiples sesiones concurrentes. La preferencia del modo rápido del usuario aún se guarda, por lo que eliminar esta configuración restaura el comportamiento persistente predeterminado.

206 209 

210Cuando la configuración administrada establece la clave, `/fast on` funciona solo en una sesión de terminal interactiva. En todas partes, incluyendo [modo no interactivo](/docs/es/headless), la [extensión de VS Code](/docs/es/vs-code), y [sesiones en la nube](#use-fast-mode-in-cloud-sessions), se rechaza con un mensaje que su organización ha deshabilitado el modo rápido.

211 

207<h2 id="handle-rate-limits">212<h2 id="handle-rate-limits">

208 Manejar límites de velocidad213 Manejar límites de velocidad

209</h2>214</h2>

Details

21Las extensiones se conectan a diferentes partes del bucle agentico:21Las extensiones se conectan a diferentes partes del bucle agentico:

22 22 

23* **[CLAUDE.md](/docs/es/memory)** agrega contexto persistente que Claude ve en cada sesión23* **[CLAUDE.md](/docs/es/memory)** agrega contexto persistente que Claude ve en cada sesión

24* **[Output styles](/docs/es/output-styles)** establecen el rol, tono y formato de respuesta de Claude para cada respuesta en una sesión

24* **[Skills](/docs/es/skills)** agregan conocimiento reutilizable y flujos de trabajo invocables25* **[Skills](/docs/es/skills)** agregan conocimiento reutilizable y flujos de trabajo invocables

25* **[Code intelligence](/docs/es/tools-reference#lsp-tool-behavior)** conecta Claude a un servidor de lenguaje para navegación a nivel de símbolo y errores de tipo en vivo26* **[Code intelligence](/docs/es/tools-reference#lsp-tool-behavior)** conecta Claude a un servidor de lenguaje para navegación a nivel de símbolo y errores de tipo en vivo

26* **[MCP](/docs/es/mcp)** conecta Claude a servicios y herramientas externas27* **[MCP](/docs/es/mcp)** conecta Claude a servicios y herramientas externas


39Las características van desde contexto siempre activo que Claude ve en cada sesión, hasta capacidades bajo demanda que usted o Claude pueden invocar, hasta automatización en segundo plano que se ejecuta en eventos específicos. La tabla a continuación muestra qué está disponible y cuándo tiene sentido cada uno.40Las características van desde contexto siempre activo que Claude ve en cada sesión, hasta capacidades bajo demanda que usted o Claude pueden invocar, hasta automatización en segundo plano que se ejecuta en eventos específicos. La tabla a continuación muestra qué está disponible y cuándo tiene sentido cada uno.

40 41 

41| Característica | Qué hace | Cuándo usarlo | Ejemplo |42| Característica | Qué hace | Cuándo usarlo | Ejemplo |

42| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |43| -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |

43| **CLAUDE.md** | Contexto persistente cargado en cada conversación | Convenciones de proyecto, reglas "siempre haz X" | "Usa pnpm, no npm. Ejecuta pruebas antes de hacer commit." |44| **CLAUDE.md** | Contexto persistente cargado en cada conversación | Convenciones de proyecto, reglas "siempre haz X" | "Usa pnpm, no npm. Ejecuta pruebas antes de hacer commit." |

45| **[Output style](/docs/es/output-styles)** | Instrucciones que establecen el rol, tono y formato de respuesta de Claude para toda una sesión | Una voz, longitud o formato que desea en cada respuesta, o Claude trabajando como algo diferente a un ingeniero de software | El estilo Concise integrado para respuestas más cortas; un estilo personalizado que responde cada pregunta con un diagrama primero |

44| **Skill** | Instrucciones, conocimiento y flujos de trabajo que Claude puede usar | Contenido reutilizable, documentos de referencia, tareas repetibles | `/deploy` ejecuta su lista de verificación de implementación; skill de documentos API con patrones de endpoint |46| **Skill** | Instrucciones, conocimiento y flujos de trabajo que Claude puede usar | Contenido reutilizable, documentos de referencia, tareas repetibles | `/deploy` ejecuta su lista de verificación de implementación; skill de documentos API con patrones de endpoint |

45| **Subagent** | Contexto de ejecución aislado que devuelve resultados resumidos | Aislamiento de contexto, tareas paralelas, trabajadores especializados | Tarea de investigación que lee muchos archivos pero devuelve solo hallazgos clave |47| **Subagent** | Contexto de ejecución aislado que devuelve resultados resumidos | Aislamiento de contexto, tareas paralelas, trabajadores especializados | Tarea de investigación que lee muchos archivos pero devuelve solo hallazgos clave |

46| **[Dynamic workflow](/docs/es/workflows)** | Script que Claude escribe que ejecuta muchos subagents en segundo plano | Trabajo que crece más allá de un puñado de subagents, o hallazgos que desea verificar cruzadamente | Auditar una base de código completa, con un segundo conjunto de agentes verificando cada hallazgo |48| **[Dynamic workflow](/docs/es/workflows)** | Script que Claude escribe que ejecuta muchos subagents en segundo plano | Trabajo que crece más allá de un puñado de subagents, o hallazgos que desea verificar cruzadamente | Auditar una base de código completa, con un segundo conjunto de agentes verificando cada hallazgo |


59No necesita configurar todo de antemano. Cada característica tiene un desencadenante reconocible, y la mayoría de los equipos las agregan en aproximadamente este orden:61No necesita configurar todo de antemano. Cada característica tiene un desencadenante reconocible, y la mayoría de los equipos las agregan en aproximadamente este orden:

60 62 

61| Desencadenante | Agregar |63| Desencadenante | Agregar |

62| :-------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ |64| :---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ |

63| Claude se equivoca en una convención o comando dos veces | Agréguelo a [CLAUDE.md](/docs/es/memory) |65| Claude se equivoca en una convención o comando dos veces | Agréguelo a [CLAUDE.md](/docs/es/memory) |

66| Sigue pidiendo a Claude que sea más breve, que explique más, o que responda en el mismo formato | Establezca un [output style](/docs/es/output-styles) |

64| Sigue escribiendo el mismo prompt para iniciar una tarea | Guárdelo como una [skill](/docs/es/skills) invocable por el usuario |67| Sigue escribiendo el mismo prompt para iniciar una tarea | Guárdelo como una [skill](/docs/es/skills) invocable por el usuario |

65| Pega el mismo manual o procedimiento de varios pasos en el chat por tercera vez | Capturarlo como una [skill](/docs/es/skills) |68| Pega el mismo manual o procedimiento de varios pasos en el chat por tercera vez | Capturarlo como una [skill](/docs/es/skills) |

66| Sigue copiando datos de una pestaña del navegador que Claude no puede ver | Conecte ese sistema como un [servidor MCP](/docs/es/mcp) |69| Sigue copiando datos de una pestaña del navegador que Claude no puede ver | Conecte ese sistema como un [servidor MCP](/docs/es/mcp) |


112 115 

113 **Póngalo en una skill** si es material de referencia que Claude necesita a veces (documentos de API, guías de estilo) o un flujo de trabajo que desencadena con `/<name>` (implementar, revisar, lanzar).116 **Póngalo en una skill** si es material de referencia que Claude necesita a veces (documentos de API, guías de estilo) o un flujo de trabajo que desencadena con `/<name>` (implementar, revisar, lanzar).

114 117 

115 **Regla general:** Mantenga CLAUDE.md bajo 200 líneas. Si está creciendo, mueva contenido de referencia a skills o divida en archivos [`.claude/rules/`](/docs/es/memory#organize-rules-with-claude%2Frules%2F).118 **Regla general:** Mantenga CLAUDE.md bajo 200 líneas. Si está creciendo, mueva contenido de referencia a skills o divida en archivos [`.claude/rules/`](/docs/es/memory#organize-rules-with-claude/rules/).

119 </Tab>

120 

121 <Tab title="CLAUDE.md vs Output style">

122 Ambos dan a Claude instrucciones permanentes. CLAUDE.md contiene lo que Claude debe saber, y un output style establece cómo Claude responde.

123 

124 | Aspecto | CLAUDE.md | Output style |

125 | -------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |

126 | **Contiene** | Hechos y reglas sobre su proyecto | Un rol, tono y formato de respuesta |

127 | **Cambio** | Siempre cargado | Uno activo a la vez; [cambie estilos](/docs/es/output-styles#change-your-output-style) cuando quiera |

128 | **Mejor para** | Comandos de compilación, convenciones, reglas "nunca hagas X" | Respuestas más cortas, explicaciones junto con código, un rol no ingenieril |

129 

130 **Póngalo en CLAUDE.md** si es verdad del proyecto sea cual sea el estilo que esté usando: convenciones de codificación, comandos de compilación, estructura del proyecto.

131 

132 **Use un output style** si se trata de la respuesta en sí y podría querer desactivarlo nuevamente: longitud, formato, cuánto explica Claude, o un rol diferente como asistente de escritura. Claude Code incluye [estilos integrados](/docs/es/output-styles#built-in-output-styles), y puede escribir los suyos propios.

133 

134 **Se combinan.** CLAUDE.md permanece cargado sea cual sea el estilo que elija. Claude sigue ambos como instrucciones, por lo que ninguno se aplica. Para cualquier cosa que deba suceder cada vez, use un [hook](/docs/es/hooks-guide).

116 </Tab>135 </Tab>

117 136 

118 <Tab title="CLAUDE.md vs Rules vs Skills">137 <Tab title="CLAUDE.md vs Rules vs Skills">


187 206 

188Las características se pueden definir en múltiples niveles: en todo el usuario, por proyecto, a través de plugins o mediante políticas administradas. También puede anidar archivos CLAUDE.md en subdirectorios o colocar skills en paquetes específicos de un monorepo. Cuando la misma característica existe en múltiples niveles, así es como se superponen:207Las características se pueden definir en múltiples niveles: en todo el usuario, por proyecto, a través de plugins o mediante políticas administradas. También puede anidar archivos CLAUDE.md en subdirectorios o colocar skills en paquetes específicos de un monorepo. Cuando la misma característica existe en múltiples niveles, así es como se superponen:

189 208 

190* **Los archivos CLAUDE.md** son aditivos: todos los niveles contribuyen contenido al contexto de Claude simultáneamente. Los archivos de su directorio de trabajo y superior se cargan al iniciar; los subdirectorios se cargan mientras trabaja en ellos. Cuando las instrucciones entran en conflicto, Claude usa el juicio para reconciliarlas, con instrucciones más específicas típicamente teniendo precedencia. Consulte [cómo se cargan los archivos CLAUDE.md](/docs/es/memory#how-claude-md-files-load).209* **Los archivos CLAUDE.md** son aditivos: todos los niveles contribuyen contenido al contexto de Claude simultáneamente. Los archivos de su directorio de trabajo y superior se cargan al iniciar; los subdirectorios se cargan mientras trabaja en ellos. Cuando las instrucciones entran en conflicto, Claude usa el juicio para reconciliarlas. Consulte [cómo se cargan los archivos CLAUDE.md](/docs/es/memory#how-claude-md-files-load).

191* **Las skills y subagents** se anulan por nombre: cuando el mismo nombre existe en múltiples niveles, una definición gana según la prioridad (administrado > usuario > proyecto para skills; administrado > bandera CLI > proyecto > usuario > plugin para subagents). Las skills de plugin tienen [espacios de nombres](/docs/es/plugins#add-skills-to-your-plugin) para evitar conflictos. Consulte [descubrimiento de skills](/docs/es/skills#resolve-skills-that-share-a-name) y [alcance de subagent](/docs/es/sub-agents#choose-the-subagent-scope).210* **Las skills y subagents** se anulan por nombre: cuando el mismo nombre existe en múltiples niveles, una definición gana según la prioridad (administrado > usuario > proyecto para skills; administrado > bandera CLI > proyecto > usuario > plugin para subagents). Las skills de plugin tienen [espacios de nombres](/docs/es/plugins#add-skills-to-your-plugin) para evitar conflictos. Consulte [descubrimiento de skills](/docs/es/skills#resolve-skills-that-share-a-name) y [alcance de subagent](/docs/es/sub-agents#choose-the-subagent-scope).

192* **Los servidores MCP** se anulan por nombre: local > proyecto > usuario. Consulte [alcance de MCP](/docs/es/mcp#scope-hierarchy-and-precedence).211* **Los servidores MCP** se anulan por nombre: local > proyecto > usuario. Consulte [alcance de MCP](/docs/es/mcp#scope-hierarchy-and-precedence).

193* **Los hooks** se fusionan: todos los hooks registrados se disparan para sus eventos coincidentes independientemente de la fuente. Consulte [hooks](/docs/es/hooks).212* **Los hooks** se fusionan: todos los hooks registrados se disparan para sus eventos coincidentes independientemente de la fuente. Consulte [hooks](/docs/es/hooks).


220Cada característica tiene una estrategia de carga y costo de contexto diferentes:239Cada característica tiene una estrategia de carga y costo de contexto diferentes:

221 240 

222| Característica | Cuándo se carga | Qué se carga | Costo de contexto |241| Característica | Cuándo se carga | Qué se carga | Costo de contexto |

223| -------------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |242| -------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |

224| **CLAUDE.md** | Inicio de sesión | Contenido completo | Cada solicitud |243| **CLAUDE.md** | Inicio de sesión | Contenido completo | Cada solicitud |

244| **Estilos de salida** | Inicio de sesión, y nuevamente cuando cambia de estilos | Las instrucciones completas del estilo activo; nada para el estilo Predeterminado | Cada solicitud |

225| **Skills** | Inicio de sesión + cuando se usa | Descripciones al inicio, contenido completo cuando se usa | Bajo (descripciones cada solicitud)\* |245| **Skills** | Inicio de sesión + cuando se usa | Descripciones al inicio, contenido completo cuando se usa | Bajo (descripciones cada solicitud)\* |

226| **Servidores MCP** | Inicio de sesión | Nombres de herramientas; esquemas completos bajo demanda | Bajo hasta que se usa una herramienta |246| **Servidores MCP** | Inicio de sesión | Nombres de herramientas; esquemas completos bajo demanda | Bajo hasta que se usa una herramienta |

227| **Inteligencia de código** | Después de ediciones de archivo y bajo demanda | Diagnósticos después de ediciones; ubicaciones de símbolos en búsqueda | Bajo; reduce lecturas de archivo en otros lugares |247| **Inteligencia de código** | Después de ediciones de archivo y bajo demanda | Diagnósticos después de ediciones; ubicaciones de símbolos en búsqueda | Bajo; reduce lecturas de archivo en otros lugares |

fullscreen.md +2 −2

Details

234 234 

235Ejecute `/clear` para iniciar una nueva conversación.235Ejecute `/clear` para iniciar una nueva conversación.

236 236 

237Para borrar la pantalla y mantener la conversación, presione `Ctrl+L`. Los mensajes anteriores se desplazan hacia arriba fuera de la vista, y puede desplazarse hacia atrás con `PgUp` o la rueda del ratón para leerlos de nuevo. Antes de v2.1.260, `Ctrl+L` redibujaba la pantalla sin borrarla. Antes de v2.1.238, presionarlo dos veces en dos segundos ejecutaba `/clear`.237Si la pantalla se ve distorsionada o parcialmente en blanco, presione `Ctrl+L` para redibujar la pantalla. El redibujado mantiene la conversación y su entrada en su lugar.

238 238 

239`Cmd+K` hace lo mismo que `Ctrl+L` cuando su terminal lo pasa a Claude Code. iTerm2 y Terminal.app manejan `Cmd+K` por sí mismos, y Claude Code redibuja la conversación en lugar de borrarla, así que presione `Ctrl+L` en esas terminales.239`Cmd+K` hace lo mismo que `Ctrl+L` cuando su terminal lo pasa a Claude Code. iTerm2 y Terminal.app manejan `Cmd+K` por sí mismos y borran su propia pantalla, y Claude Code detecta la pantalla borrada y repinta la conversación. Antes de v2.1.280, comenzando con v2.1.260, presionar `Ctrl+L` o `Cmd+K` donde llega a Claude Code, borraba la pantalla en renderizado a pantalla completa. Antes de v2.1.238, presionar `Ctrl+L` dos veces en dos segundos ejecutaba `/clear`.

240 240 

241<h2 id="use-with-tmux">241<h2 id="use-with-tmux">

242 Usar con tmux242 Usar con tmux

Details

300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

301 prompt: "Generate a summary of yesterday's commits and open issues"301 prompt: "Generate a summary of yesterday's commits and open issues"

302 claude_args: |302 claude_args: |

303 --model claude-opus-4-8303 --model claude-opus-5-5

304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"

305```305```

306 306 

glossary.md +12 −0

Details

208 208 

209Más información: [Use extended thinking](/docs/es/model-config#extended-thinking)209Más información: [Use extended thinking](/docs/es/model-config#extended-thinking)

210 210 

211<h2 id="f">

212 F

213</h2>

214 

215<h3 id="frontmatter">

216 Frontmatter

217</h3>

218 

219Un bloque de configuración YAML en la parte superior de un archivo Markdown, entre una línea de apertura `---` y una línea de cierre `---`. Las skills, subagentes, estilos de salida y reglas leen su configuración desde frontmatter, como la `description` de una skill o las `tools` de un subagente, y tratan todo lo que viene después del `---` de cierre como las instrucciones. El `---` de apertura debe ser la primera línea del archivo. Cada tipo de archivo acepta su propio conjunto de campos.

220 

221Más información: [Frontmatter de skills](/docs/es/skills#frontmatter-reference), [Frontmatter de subagentes](/docs/es/sub-agents#supported-frontmatter-fields), [Frontmatter de estilos de salida](/docs/es/output-styles#frontmatter), [Frontmatter de reglas](/docs/es/memory#rules-frontmatter-reference)

222 

211<h2 id="h">223<h2 id="h">

212 H224 H

213</h2>225</h2>

Details

238 238 

239Establezca estas variables de entorno en ID de modelo específicos de Google Cloud's Agent Platform.239Establezca estas variables de entorno en ID de modelo específicos de Google Cloud's Agent Platform.

240 240 

241Sin `ANTHROPIC_DEFAULT_OPUS_MODEL`, el alias `opus` en Google Cloud's Agent Platform se resuelve a Opus 5, y sin `ANTHROPIC_DEFAULT_SONNET_MODEL`, el alias `sonnet` se resuelve a Sonnet 4.5. Este ejemplo fija cada alias a una versión específica:241Sin `ANTHROPIC_DEFAULT_OPUS_MODEL`, el alias `opus` en Google Cloud's Agent Platform se resuelve a Opus 5.5, y sin `ANTHROPIC_DEFAULT_SONNET_MODEL`, el alias `sonnet` se resuelve a Sonnet 4.5. Este ejemplo fija cada alias a una versión específica:

242 242 

243```bash theme={null}243```bash theme={null}

244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'


252 252 

253| Tipo de modelo | Valor predeterminado |253| Tipo de modelo | Valor predeterminado |

254| :-------------------- | :--------------------------- |254| :-------------------- | :--------------------------- |

255| Modelo principal | `claude-opus-5` |255| Modelo principal | `claude-opus-5-5` |

256| Modelo pequeño/rápido | `claude-sonnet-4-5@20250929` |256| Modelo pequeño/rápido | `claude-sonnet-4-5@20250929` |

257 257 

258Las tareas en segundo plano como la generación de títulos de sesión utilizan el modelo pequeño/rápido, normalmente un modelo de clase Haiku. En Google Cloud's Agent Platform, Claude Code utiliza el modelo Sonnet predeterminado para tareas en segundo plano porque Haiku puede no estar habilitado en todos los proyectos o regiones. Dos selecciones cambian qué modelo las realiza:258Las tareas en segundo plano como la generación de títulos de sesión utilizan el modelo pequeño/rápido, normalmente un modelo de clase Haiku. En Google Cloud's Agent Platform, Claude Code utiliza el modelo Sonnet predeterminado para tareas en segundo plano porque Haiku puede no estar habilitado en todos los proyectos o regiones. Dos selecciones cambian qué modelo las realiza:


264 Los modelos Opus tienen un precio por token más alto que los modelos Sonnet, por lo que una implementación que no fija un modelo principal se factura a la tarifa de Opus una vez que se actualiza a v2.1.207 o posterior. Para mantener Sonnet 4.5 como el modelo principal, establezca `ANTHROPIC_MODEL` en su ID de modelo completo. Una implementación que dirige el valor predeterminado con `ANTHROPIC_DEFAULT_SONNET_MODEL` y no establece `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene su modelo Sonnet dirigido como el valor predeterminado.264 Los modelos Opus tienen un precio por token más alto que los modelos Sonnet, por lo que una implementación que no fija un modelo principal se factura a la tarifa de Opus una vez que se actualiza a v2.1.207 o posterior. Para mantener Sonnet 4.5 como el modelo principal, establezca `ANTHROPIC_MODEL` en su ID de modelo completo. Una implementación que dirige el valor predeterminado con `ANTHROPIC_DEFAULT_SONNET_MODEL` y no establece `ANTHROPIC_DEFAULT_OPUS_MODEL` mantiene su modelo Sonnet dirigido como el valor predeterminado.

265</Warning>265</Warning>

266 266 

267En v2.1.207 a v2.1.218, el modelo principal en Google Cloud's Agent Platform se establecía de forma predeterminada en Opus 4.8 y el alias `opus` se resolvía a Opus 4.8. Antes de v2.1.207, el modelo principal se establecía de forma predeterminada en Sonnet 4.5, el alias `opus` se resolvía a Opus 4.6, y las tareas en segundo plano siempre utilizaban el modelo principal.267Antes de v2.1.280, el modelo principal en Google Cloud's Agent Platform se establecía de forma predeterminada en Opus 5 y el alias `opus` se resolvía a Opus 5 desde v2.1.219. En v2.1.207 a v2.1.218, el modelo principal en Google Cloud's Agent Platform se establecía de forma predeterminada en Opus 4.8 y el alias `opus` se resolvía a Opus 4.8. Antes de v2.1.207, el modelo principal se establecía de forma predeterminada en Sonnet 4.5, el alias `opus` se resolvía a Opus 4.6, y las tareas en segundo plano siempre utilizaban el modelo principal.

268 268 

269Para personalizar aún más los modelos:269Para personalizar aún más los modelos:

270 270 

headless.md +2 −2

Details

109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

110```110```

111 111 

112Con `--output-format json`, la carga útil de respuesta incluye `total_cost_usd` y un desglose de costos por modelo, por lo que los llamadores con scripts pueden rastrear el gasto por invocación sin consultar el [panel de uso](/docs/es/costs). Ambas cifras son [estimaciones del lado del cliente](/docs/es/agent-sdk/cost-tracking) y pueden diferir de su factura real.112Con `--output-format json`, la carga útil de respuesta incluye `total_cost_usd` y un desglose de costos por modelo, por lo que los llamadores con scripts pueden rastrear el gasto sin consultar el [panel de uso](/docs/es/costs). Cuando continúa una conversación anterior con `--continue` o `--resume`, la ejecución informa el total completo de la conversación, [gastos de ejecuciones anteriores incluidos](/docs/es/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Ambas cifras son [estimaciones del lado del cliente](/docs/es/agent-sdk/cost-tracking) y pueden diferir de su factura real.

113 113 

114<Note>114<Note>

115 El stdin canalizado está limitado a 10MB. Si excede el límite, Claude Code sale con un error claro y un estado distinto de cero. Para trabajar con entradas más grandes, escriba el contenido en un archivo y haga referencia a la ruta del archivo en su indicador en lugar de canalizarlo.115 El stdin canalizado está limitado a 10MB. Si excede el límite, Claude Code sale con un error claro y un estado distinto de cero. Para trabajar con entradas más grandes, escriba el contenido en un archivo y haga referencia a la ruta del archivo en su indicador en lugar de canalizarlo.


212* **De forma predeterminada**: los bloques `tool_use` y `tool_result` del subagente.212* **De forma predeterminada**: los bloques `tool_use` y `tool_result` del subagente.

213* **Con [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/es/env-vars)**: también los bloques de texto y pensamiento del subagente, para que pueda reconstruir la transcripción de cada subagente. Esto requiere Claude Code v2.1.211 o posterior.213* **Con [`--forward-subagent-text`](/docs/es/cli-reference#cli-flags) o [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/es/env-vars)**: también los bloques de texto y pensamiento del subagente, para que pueda reconstruir la transcripción de cada subagente. Esto requiere Claude Code v2.1.211 o posterior.

214 214 

215Cuando habilita cualquiera de las opciones, Claude Code reenvía mensajes de [subagentes en cada profundidad de anidamiento](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents): cuando un subagente genera su propio subagente, los mensajes del subagente anidado llevan el ID de la llamada de herramienta Agent que lo generó en `parent_tool_use_id`, para que pueda reconstruir el árbol de anidamiento completo siguiendo esos IDs. Antes de v2.1.219, los mensajes de subagentes anidados no aparecían en la transmisión.215Cuando habilita cualquiera de las opciones, Claude Code reenvía mensajes de [subagentes en cada profundidad de anidamiento](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents), ya sea que cada uno fue generado con la herramienta Agent o iniciado como una [skill bifurcada](/docs/es/skills#run-skills-in-a-subagent). Los mensajes de subagentes que una skill bifurcada genera, y de skills bifurcadas iniciadas dentro de un subagente u otra skill bifurcada, requieren Claude Code v2.1.275 o posterior. En `parent_tool_use_id`, los mensajes del subagente anidado llevan el ID de la llamada de herramienta Agent o Skill que lo inició, para que pueda reconstruir el árbol de anidamiento completo siguiendo esos IDs. Antes de v2.1.219, los mensajes de subagentes anidados no aparecían en la transmisión.

216 216 

217Las skills que [se ejecutan en un subagente](/docs/es/skills#run-skills-in-a-subagent) aparecen en la transmisión de la misma manera: el primer mensaje de la skill bifurcada es un mensaje `user` que lleva el contenido de la skill que impulsa la ejecución. Si habilita cualquiera de las opciones, la transmisión también lleva los bloques de texto y pensamiento de la skill bifurcada. Antes de v2.1.265, solo los bloques `tool_use` y `tool_result` de una skill bifurcada aparecían en la transmisión.217Las skills que [se ejecutan en un subagente](/docs/es/skills#run-skills-in-a-subagent) aparecen en la transmisión de la misma manera: el primer mensaje de la skill bifurcada es un mensaje `user` que lleva el contenido de la skill que impulsa la ejecución. Si habilita cualquiera de las opciones, la transmisión también lleva los bloques de texto y pensamiento de la skill bifurcada. Antes de v2.1.265, solo los bloques `tool_use` y `tool_result` de una skill bifurcada aparecían en la transmisión.

218 218 

hooks.md +9 −4

Details

268| [Skill](/docs/es/skills) frontmatter | El resto de la sesión una vez que se invoca la skill. Consulta [Hooks en skills y agentes](#hooks-in-skills-and-agents) | Sí, definido en el archivo de skill |268| [Skill](/docs/es/skills) frontmatter | El resto de la sesión una vez que se invoca la skill. Consulta [Hooks en skills y agentes](#hooks-in-skills-and-agents) | Sí, definido en el archivo de skill |

269| [Subagente](/docs/es/sub-agents) frontmatter | Mientras ese subagente se está ejecutando | Sí, definido en el archivo del subagente |269| [Subagente](/docs/es/sub-agents) frontmatter | Mientras ese subagente se está ejecutando | Sí, definido en el archivo del subagente |

270 270 

271Las [sesiones en la nube](/docs/es/claude-code-on-the-web) no leen tu `~/.claude/settings.json` local; los hooks allí provienen del repositorio, lo que significa su `.claude/settings.json` en una sesión con un repositorio y los plugins que declara en cualquier sesión, y de la configuración administrada por servidor de tu organización. En un [entorno autohospedado](/docs/es/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code también ejecuta los hooks que el operador sembró desde `~/.claude/` del host del ejecutor, y ejecuta los hooks en el archivo de configuración administrada de la imagen del ejecutor cuando ese archivo está entre las [fuentes administradas que Claude Code aplica](/docs/es/managed-settings#how-claude-code-combines-managed-sources), lo que por defecto significa solo cuando ni la configuración administrada por servidor ni una política de Claude Code entregada por MDM suministran el nivel administrado. Consulta [qué se transfiere de tu configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup) para saber qué archivos llegan a una sesión en la nube.271Las [sesiones en la nube](/docs/es/claude-code-on-the-web) no leen tu `~/.claude/settings.json` local; los hooks allí provienen del repositorio `.claude/settings.json` en una sesión con un repositorio, de los plugins [sincronizados desde tu cuenta claude.ai](/docs/es/plugins-reference#synced-plugins), y de la configuración administrada por servidor de tu organización. En un [entorno autohospedado](/docs/es/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code también ejecuta los hooks que el operador sembró desde `~/.claude/` del host del ejecutor, y ejecuta los hooks en el archivo de configuración administrada de la imagen del ejecutor cuando ese archivo está entre las [fuentes administradas que Claude Code aplica](/docs/es/managed-settings#how-claude-code-combines-managed-sources), lo que por defecto significa solo cuando ni la configuración administrada por servidor ni una política de Claude Code entregada por MDM suministran el nivel administrado. Consulta [qué se transfiere de tu configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup) para saber qué archivos llegan a una sesión en la nube.

272 272 

273Para obtener detalles sobre la resolución de archivos de configuración, consulta [configuración](/docs/es/settings).273Para obtener detalles sobre la resolución de archivos de configuración, consulta [configuración](/docs/es/settings).

274 274 


1436 Entrada de UserPromptSubmit1436 Entrada de UserPromptSubmit

1437</h4>1437</h4>

1438 1438 

1439Ademá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ó.1439Además de los [campos de entrada comunes](#common-input-fields), los hooks UserPromptSubmit reciben el campo `prompt` que contiene el texto que el usuario envió. El contenido pegado que se colapsó en un marcador de posición `[Pasted text #N]` llega expandido en su lugar. En sesiones donde Claude Code [marca el texto pegado para Claude](/docs/es/terminal-config#how-claude-treats-pasted-text), ese contenido expandido se encuentra entre una línea `<pasted_content id="…">` y una línea `</pasted_content id="…">`, así que tenga en cuenta esas líneas si su hook analiza el prompt.

1440 1440 

1441```json theme={null}1441```json theme={null}

1442{1442{


2578 2578 

2579Ademá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 propia transcripción 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.2579Ademá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 propia transcripción 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.

2580 2580 

2581No cada evento SubagentStop proviene de un subagente que Claude generó. Claude Code también ejecuta agentes internos para algunas de sus propias características, como [sugerencias de prompt](/docs/es/interactive-mode#prompt-suggestions) y [preguntas secundarias `/btw`](/docs/es/interactive-mode#side-questions-with-%2Fbtw), y SubagentStop se dispara cuando uno de esos termina también. Para esos eventos, `agent_type` es el nombre del agente que la sesión en sí ejecuta, como uno establecido con [`--agent`](/docs/es/cli-reference#cli-flags) o la configuración [`agent`](/docs/es/settings-reference#agent), y una cadena vacía cuando la sesión se ejecuta sin uno.

2582 

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

2584 

2581En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) entrega su informe a través de esa herramienta antes de que se detenga. El campo `last_assistant_message` luego contiene el texto de cierre del subagente, si lo hay, que no es el informe entregado. El informe es la entrada `message` de esa llamada, que un hook `PreToolUse` o `PostToolUse` que coincida en `SubagentHandback` recibe como `tool_input.message`.2585En Claude Code v2.1.271 o posterior, un subagente que se ejecuta con la herramienta [`SubagentHandback`](/docs/es/tools-reference) entrega su informe a través de esa herramienta antes de que se detenga. El campo `last_assistant_message` luego contiene el texto de cierre del subagente, si lo hay, que no es el informe entregado. El informe es la entrada `message` de esa llamada, que un hook `PreToolUse` o `PostToolUse` que coincida en `SubagentHandback` recibe como `tool_input.message`.

2582 2586 

2583Los 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.2587Los 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.


3759Eventos que admiten los cinco tipos de hooks (`command`, `http`, `mcp_tool`, `prompt` y `agent`):3763Eventos que admiten los cinco tipos de hooks (`command`, `http`, `mcp_tool`, `prompt` y `agent`):

3760 3764 

3761* `PermissionDenied`3765* `PermissionDenied`

3762* `PermissionRequest`

3763* `PostToolBatch`3766* `PostToolBatch`

3764* `PostToolUse`3767* `PostToolUse`

3765* `PostToolUseFailure`3768* `PostToolUseFailure`


3772* `UserPromptExpansion`3775* `UserPromptExpansion`

3773* `UserPromptSubmit`3776* `UserPromptSubmit`

3774 3777 

3778`PermissionRequest` admite hooks `command`, `http`, `mcp_tool` y `prompt` pero no hooks `agent`. Si configura un hook de agente en este evento, Claude Code lo omite y el flujo de permisos continúa sin cambios. Para permitir o denegar desde un hook, devuelva el [objeto de decisión](#permissionrequest-decision-control) desde un hook de comando o HTTP.

3779 

3775Eventos que admiten hooks `command`, `http` y `mcp_tool` pero no `prompt` o `agent`:3780Eventos que admiten hooks `command`, `http` y `mcp_tool` pero no `prompt` o `agent`:

3776 3781 

3777* `ConfigChange`3782* `ConfigChange`


3904 Los hooks de agente son experimentales. El comportamiento y la configuración pueden cambiar en futuras versiones. Para flujos de trabajo de producción, prefiera [command hooks](#command-hook-fields).3909 Los hooks de agente son experimentales. El comportamiento y la configuración pueden cambiar en futuras versiones. Para flujos de trabajo de producción, prefiera [command hooks](#command-hook-fields).

3905</Warning>3910</Warning>

3906 3911 

3907Los hooks basados en agentes (`type: "agent"`) son como hooks basados en prompts pero con acceso a herramientas de múltiples turnos. En lugar de una única llamada LLM, un hook de agente genera un subagente que puede leer archivos, buscar código e inspeccionar la base de código para verificar condiciones. Los hooks de agente admiten los mismos eventos que los hooks basados en prompts.3912Los hooks basados en agentes (`type: "agent"`) son como hooks basados en prompts pero con acceso a herramientas de múltiples turnos. En lugar de una única llamada LLM, un hook de agente genera un subagente que puede leer archivos, buscar código e inspeccionar la base de código para verificar condiciones. Los hooks de agente admiten los mismos eventos que los [hooks basados en prompts](#prompt-based-hooks), excepto `PermissionRequest`.

3908 3913 

3909<h3 id="how-agent-hooks-work">3914<h3 id="how-agent-hooks-work">

3910 Cómo funcionan los hooks de agente3915 Cómo funcionan los hooks de agente

Details

24 24 

25Usted también es parte de este bucle. Puede interrumpir en cualquier momento para dirigir a Claude en una dirección diferente, proporcionar contexto adicional o pedirle que intente un enfoque diferente. Claude trabaja de forma autónoma pero permanece receptivo a su entrada.25Usted también es parte de este bucle. Puede interrumpir en cualquier momento para dirigir a Claude en una dirección diferente, proporcionar contexto adicional o pedirle que intente un enfoque diferente. Claude trabaja de forma autónoma pero permanece receptivo a su entrada.

26 26 

27El bucle agentico está impulsado por dos componentes: [modelos](#models) que razonan y [herramientas](#tools) que actúan. Claude Code sirve como el **arnés agentico** alrededor de Claude: proporciona las herramientas, la gestión del contexto y el entorno de ejecución que convierten un modelo de lenguaje en un agente de codificación capaz.27El bucle agentico está impulsado por dos componentes: [modelos](#models) que razonan y [herramientas](#tools) que actúan. Claude Code es la capa alrededor del modelo que proporciona las herramientas y gestiona el contexto que ve el modelo. Esta capa circundante es a lo que se refiere el término arnés agentico.

28 28 

29<h3 id="models">29<h3 id="models">

30 Modelos30 Modelos


238 Interrumpir y dirigir238 Interrumpir y dirigir

239</h4>239</h4>

240 240 

241Puede redirigir a Claude en cualquier momento sin esperar a que termine el turno o comenzar de nuevo:241Puede redirigir a Claude en cualquier momento sin comenzar de nuevo. Haga cualquiera de estas cosas:

242 242 

243* **Presione `Esc`** para detener a Claude inmediatamente. La llamada de herramienta en ejecución se cancela y Claude espera su siguiente instrucción. Si tiene mensajes en cola, Claude Code [los envía a continuación](/docs/es/interactive-mode#queue-messages-while-claude-works).243* **Presione `Esc`** para detener a Claude inmediatamente. La llamada de herramienta en ejecución se cancela y Claude espera su siguiente instrucción. Si tiene mensajes en cola, Claude Code [los envía a continuación](/docs/es/interactive-mode#queue-messages-while-claude-works).

244* **Escriba una corrección y presione `Enter`** para enviarla sin detener la herramienta en ejecución. Claude la lee tan pronto como se completa la acción actual y se ajusta antes de decidir su siguiente paso.244* **Escriba una corrección y presione `Enter`** sin detener a Claude. El mensaje se muestra en cola encima del cuadro de entrada. Si Claude está ejecutando llamadas de herramienta, lee el mensaje tan pronto como esas llamadas se completen, dentro del mismo turno, y se ajusta antes de su siguiente paso. [Enviar mensajes en cola mientras Claude trabaja](/docs/es/interactive-mode#queue-messages-while-claude-works) cubre cuándo se envían otras entradas en cola.

245 245 

246<h3 id="delegate-don’t-dictate">246<h3 id="delegate-don’t-dictate">

247 Delegue, no dicte247 Delegue, no dicte

Details

21</h3>21</h3>

22 22 

23| Atajo | Descripción | Contexto |23| Atajo | Descripción | Contexto |

24| :------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |24| :-------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

25| `Ctrl+C` | Interrumpir o borrar entrada | Interrumpe una operación en ejecución. Si nada se está ejecutando, la primera pulsación borra la entrada del símbolo del sistema y una segunda pulsación cierra Claude Code |25| `Ctrl+C` | Interrumpir o borrar entrada | Interrumpe una operación en ejecución. Si nada se está ejecutando, la primera pulsación borra la entrada del símbolo del sistema y una segunda pulsación cierra Claude Code |

26| `Ctrl+X Ctrl+K` | Detener todos los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión y desactivar [respuestas automáticas de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) para el resto de ella. Presione dos veces en 3 segundos para confirmar | Control de subagentes |26| `Ctrl+X Ctrl+K` | Detener todos los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión y desactivar [respuestas automáticas de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) para el resto de ella. Presione dos veces en 3 segundos para confirmar | Control de subagentes |

27| `Ctrl+D` | Salir de la sesión de Claude Code | La primera pulsación muestra una sugerencia de confirmación y una segunda pulsación dentro de 800 ms cierra. Cuando el símbolo del sistema tiene texto, `Ctrl+D` elimina el carácter después del cursor en su lugar |27| `Ctrl+D` | Salir de la sesión de Claude Code | La primera pulsación muestra una sugerencia de confirmación y una segunda pulsación dentro de 800 ms cierra. Cuando el símbolo del sistema tiene texto, `Ctrl+D` elimina el carácter después del cursor en su lugar |

28| `Ctrl+G` o `Ctrl+X Ctrl+E` | Abrir en el editor de texto predeterminado | Edite su símbolo del sistema o respuesta personalizada en su editor de texto predeterminado. `Ctrl+X Ctrl+E` es el enlace nativo de readline. Active **Mostrar última respuesta en editor externo** en `/config` para anteponer la respuesta anterior de Claude como contexto comentado con `#` arriba de su símbolo del sistema; Claude Code elimina el bloque de comentarios cuando guarda |28| `Ctrl+G` o `Ctrl+X Ctrl+E` | Abrir en el editor de texto predeterminado | Edite su símbolo del sistema o respuesta personalizada en su editor de texto predeterminado. `Ctrl+X Ctrl+E` es el enlace nativo de readline. Active **Mostrar última respuesta en editor externo** en `/config` para anteponer la respuesta anterior de Claude como contexto comentado con `#` arriba de su símbolo del sistema; Claude Code elimina el bloque de comentarios cuando guarda |

29| `Ctrl+L` | Redibujar o borrar la pantalla | Fuerza un redibujado completo de la terminal, manteniendo la entrada y el historial de conversación. Úselo para recuperarse si la pantalla se vuelve ilegible o parcialmente en blanco. En [renderizado a pantalla completa](/docs/es/fullscreen#clear-the-conversation), también borra la pantalla y puede desplazarse hacia arriba para ver los mensajes anteriores |29| `Ctrl+L` | Redibujar la pantalla | Fuerza un redibujado completo de la terminal, manteniendo la entrada y el historial de conversación. Úselo para recuperarse si la pantalla se vuelve ilegible o parcialmente en blanco. Consulte [Borrar la conversación](/docs/es/fullscreen#clear-the-conversation) para renderizado a pantalla completa |

30| `Ctrl+O` | Alternar visor de transcripción | Muestra el uso detallado de herramientas y ejecución, con una marca de tiempo y el modelo utilizado en cada mensaje del asistente. También expande líneas que se contraen de forma predeterminada, como llamadas MCP, mostradas como una sola línea `Called slack 3 times`, y [mensajes de sus otras sesiones](/docs/es/cross-session-messaging#what-a-message-looks-like), mostrados como una vista previa de una línea `Message from @<sender>` |30| `Ctrl+O` | Alternar visor de transcripción | Muestra el uso detallado de herramientas y ejecución, con una marca de tiempo y el modelo utilizado en cada mensaje del asistente. También expande líneas que se contraen de forma predeterminada, como llamadas MCP, mostradas como una sola línea `Called slack 3 times`, y [mensajes de sus otras sesiones](/docs/es/cross-session-messaging#what-a-message-looks-like), mostrados como una vista previa de una línea `Message from @<sender>` |

31| `Ctrl+R` | Búsqueda inversa del historial de comandos | Busque a través de comandos anteriores de forma interactiva |31| `Ctrl+R` | Búsqueda inversa del historial de comandos | Busque a través de comandos anteriores de forma interactiva |

32| `Ctrl+V` o `Cmd+V` (iTerm2) o `Alt+V` (Windows y WSL) | Pegar imagen desde el portapapeles | Inserta un chip `[Image #N]` en el cursor para que pueda hacer referencia a él posicionalmente en su símbolo del sistema. En WSL, tanto `Ctrl+V` como `Alt+V` están vinculados; use `Alt+V` si su terminal intercepta `Ctrl+V` |32| `Ctrl+V` o `Cmd+V` (iTerm2) o `Alt+V` (Windows y WSL) | Pegar imagen desde el portapapeles | Inserta un chip `[Image #N]` en el cursor para que pueda hacer referencia a él posicionalmente en su símbolo del sistema. En WSL, tanto `Ctrl+V` como `Alt+V` están vinculados; use `Alt+V` si su terminal intercepta `Ctrl+V` |


40| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Interrumpir Claude o cerrar un diálogo | Detiene la respuesta actual o la llamada de herramienta a mitad de turno para que pueda redirigir. Claude mantiene el trabajo realizado hasta ahora. Si tiene [mensajes en cola](#queue-messages-while-claude-works), Claude Code los envía a continuación. Cuando un diálogo está abierto, `Esc` cierra el diálogo. En un aviso de permiso, `Esc` rechaza la acción, lo mismo que [**No** sin un comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

41| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del símbolo del sistema contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Arriba` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](/docs/es/checkpointing) para restaurar o resumir código y conversación desde un punto anterior |41| `Esc` + `Esc` | Borrar borrador de entrada o rebobinar | Cuando la entrada del símbolo del sistema contiene texto, doble `Esc` lo borra y guarda el borrador en el historial para que `Arriba` lo recupere. Cuando la entrada está vacía, doble `Esc` abre el [menú de rebobinado](/docs/es/checkpointing) para restaurar o resumir código y conversación desde un punto anterior |

42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Interrumpe el turno actual para que sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos se envíen de inmediato en lugar de cuando termina el turno. En [modo shell](#shell-mode-with-prefix), la tecla pone en cola su comando sin interrumpir. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Enviar mensajes en cola ahora | Interrumpe el turno actual para que sus [mensajes en cola](#queue-messages-while-claude-works) y su borrador con ellos se envíen de inmediato en lugar de cuando termina el turno. En [modo shell](#shell-mode-with-prefix), la tecla pone en cola su comando sin interrumpir. En terminales que no reportan teclas extendidas, `Ctrl+Enter` llega como `Enter` simple; `Ctrl+X Ctrl+S` funciona en cualquier terminal. Requiere Claude Code v2.1.275 o posterior |

43| `Shift+Tab` o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](/docs/es/permission-modes). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |43| `Shift+Tab`, o `Alt+M` en Windows cuando el tiempo de ejecución de Node o Bun no habilita el modo de entrada VT | Ciclar modos de permiso | Cicle a través de `default` (etiquetado como Manual en el indicador de modo), `acceptEdits`, `plan` y, cuando esté disponible, `bypassPermissions` y luego `auto`. Desde `auto`, la primera pulsación cambia a `default`. Consulte [modos de permiso](/docs/es/permission-modes). En un aviso de permiso de archivo, la misma tecla cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto. Sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |

44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambiar modelo | Cambie modelos sin borrar su símbolo del sistema |

45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. No tiene efecto en Fable 5.1 o Fable 5, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Alternar pensamiento extendido | Habilitar o deshabilitar el modo de pensamiento extendido. No tiene efecto en Opus 5.5 o los modelos Fable, que siempre utilizan pensamiento extendido. Funciona en macOS sin configurar Option como Meta |

46| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/docs/es/fast-mode) |46| `Option+O` (macOS) o `Alt+O` (Windows/Linux) | Alternar modo rápido | Habilitar o deshabilitar [modo rápido](/docs/es/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">


593 593 

594Para averiguar cuál de estos sucedió, inicie `claude --debug` con la verificación ortográfica activada y escriba una palabra. Luego busque las líneas `[spellcheck]` en el registro de depuración en `~/.claude/debug/<session-id>.txt`. Una línea nombra el programa que Claude Code inició, o enumera los que buscó y no encontró. Las líneas posteriores dicen por qué se detuvo. Un error de diccionario faltante allí significa que el verificador no tiene diccionario para su valor `language`, o ninguno predeterminado cuando `language` no está establecido. Instale uno, o establezca `language` en un diccionario que tenga.594Para averiguar cuál de estos sucedió, inicie `claude --debug` con la verificación ortográfica activada y escriba una palabra. Luego busque las líneas `[spellcheck]` en el registro de depuración en `~/.claude/debug/<session-id>.txt`. Una línea nombra el programa que Claude Code inició, o enumera los que buscó y no encontró. Las líneas posteriores dicen por qué se detuvo. Un error de diccionario faltante allí significa que el verificador no tiene diccionario para su valor `language`, o ninguno predeterminado cuando `language` no está establecido. Instale uno, o establezca `language` en un diccionario que tenga.

595 595 

596<h2 id="invisible-characters-in-prompts">

597 Caracteres invisibles en indicaciones

598</h2>

599 

600El texto pegado puede contener caracteres Unicode que una terminal dibuja como nada en absoluto, como caracteres de etiqueta, controles bidireccionales y espacios de ancho cero, por lo que una indicación puede contener texto que nunca ve. Para evitar que el texto copiado lleve instrucciones que su terminal no dibuja, Claude Code elimina esos caracteres cuando presiona Intro, antes de enviar nada. Limpia tanto la indicación como el contenido de cualquier [referencia de texto pegado](/docs/es/terminal-config#paste-large-content) que la indicación incluya. Claude Code mantiene los conectores que escriben los scripts persa e índico y los selectores dentro de secuencias de emoji.

601 

602Si Claude Code eliminó algo, ese Intro no envía nada. La indicación limpia vuelve al cuadro de entrada con un aviso como `Se eliminaron 3 caracteres invisibles · revise y presione Intro para enviar`, y presionar Intro nuevamente envía el texto tal como se muestra.

603 

604Cuando pasa una indicación en la línea de comandos, como en `claude "fix the login bug"`, o canaliza una en una sesión interactiva, Claude Code no espera un segundo Intro. Elimina los caracteres, muestra un aviso y envía la indicación limpia. Si la indicación limpia comenzaría con `/`, Claude Code la coloca en el cuadro de entrada para que la revise y envíe.

605 

596<h2 id="review-changes-with-/diff">606<h2 id="review-changes-with-/diff">

597 Revise cambios con /diff607 Revise cambios con /diff

598</h2>608</h2>

keybindings.md +139 −113

Details

86Acciones disponibles en el contexto `Global`:86Acciones disponibles en el contexto `Global`:

87 87 

88| Acción | Predeterminado | Descripción |88| Acción | Predeterminado | Descripción |

89| :--------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------- |89| :--------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |

90| `app:interrupt` | Ctrl+C | Cancelar operación actual |90| `app:interrupt` | Ctrl+C | Cancelar operación actual |

91| `app:exit` | Ctrl+D | Salir de Claude Code. Presione dos veces dentro de 800 ms para confirmar |91| `app:exit` | Ctrl+D | Salir de Claude Code. Presione dos veces dentro de 800ms para confirmar |

92| `app:redraw` | (sin vincular) | Forzar redibujo de terminal |92| `app:redraw` | (sin asignar) | Forzar redibujado de terminal |

93| `app:toggleTodos` | Ctrl+T | Alternar visibilidad de la lista de tareas de Claude. Esta no es la vista de tarea de fondo [`/tasks`](/docs/es/commands) |93| `app:toggleTodos` | Ctrl+T | Alternar visibilidad de la lista de verificación de tareas de Claude. Esta no es la vista de tarea en segundo plano [`/tasks`](/docs/es/commands) |

94| `app:toggleTranscript` | Ctrl+O | Alternar transcripción detallada |94| `app:toggleTranscript` | Ctrl+O | Alternar transcripción detallada |

95 95 

96<h3 id="history-actions">96<h3 id="history-actions">


112Acciones disponibles en el contexto `Chat`:112Acciones disponibles en el contexto `Chat`:

113 113 

114| Acción | Predeterminado | Descripción |114| Acción | Predeterminado | Descripción |

115| :-------------------- | :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :-------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `chat:cancel` | Escape | Cancelar entrada actual |116| `chat:cancel` | Escape | Cancelar entrada actual |

117| `chat:clearInput` | Ctrl+L | Forzar un redibujo de pantalla completa, preservando la entrada y la conversación. En [renderizado de pantalla completa](/docs/es/fullscreen#clear-the-conversation), también limpiar la pantalla |117| `chat:clearInput` | Ctrl+L | Forzar un redibujado de pantalla completa, preservando la entrada y la conversación |

118| `chat:clearScreen` | Cmd+K | Lo mismo que `chat:clearInput`. Consulte [Limpiar la conversación](/docs/es/fullscreen#clear-the-conversation) para saber cómo se comporta Cmd+K en iTerm2 y Terminal.app |118| `chat:clearScreen` | Cmd+K | Igual que `chat:clearInput`. Consulte [Limpiar la conversación](/docs/es/fullscreen#clear-the-conversation) para ver cómo se comporta Cmd+K en iTerm2 y Terminal.app |

119| `chat:killAgents` | Ctrl+X Ctrl+K | Detener todos los [subagentes de fondo](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en ejecución en esta sesión y desactivar [respuestas automáticas de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) para el resto de ella |119| `chat:killAgents` | Ctrl+X Ctrl+K | Detener todos los [subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background) en esta sesión y desactivar [respuestas automáticas de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) para el resto de ella |

120| `chat:cycleMode` | Shift+Tab\* | Ciclar modos de permiso |120| `chat:cycleMode` | Shift+Tab\* | Ciclar modos de permisos |

121| `chat:modelPicker` | Meta+P | Abrir selector de modelo |121| `chat:modelPicker` | Meta+P | Abrir selector de modelo |

122| `chat:fastMode` | Meta+O | Alternar modo rápido |122| `chat:fastMode` | Meta+O | Alternar modo rápido |

123| `chat:thinkingToggle` | Meta+T | Alternar pensamiento extendido |123| `chat:thinkingToggle` | Meta+T | Alternar pensamiento extendido |

124| `chat:submit` | Enter | Enviar mensaje |124| `chat:submit` | Enter | Enviar mensaje |

125| `chat:queueSubmit` | Ctrl+X Enter | Enviar el mensaje, marcado para esperar su turno: mientras Claude está trabajando, Claude Code [lo pone en cola](/docs/es/interactive-mode#queue-messages-while-claude-works) y nunca interrumpe el turno. A diferencia de `chat:submit`, envía el borrador incluso mientras las sugerencias de autocompletado están resaltadas. Requiere v2.1.247 o posterior |125| `chat:queueSubmit` | Ctrl+X Enter | Enviar el mensaje, marcado para esperar su turno: mientras Claude está trabajando, Claude Code [lo pone en cola](/docs/es/interactive-mode#queue-messages-while-claude-works) y nunca interrumpe el turno. A diferencia de `chat:submit`, envía el borrador incluso mientras se resalta una sugerencia de autocompletado. Requiere v2.1.247 o posterior |

126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Interrumpir el turno en ejecución para que sus [mensajes en cola](/docs/es/interactive-mode#queue-messages-while-claude-works) y su borrador con ellos se envíen de inmediato. Cuando nada se está ejecutando, envía el borrador, y en [modo shell](/docs/es/interactive-mode#shell-mode-with-prefix) pone en cola el comando sin interrumpir. Las terminales que no informan de teclas extendidas entregan `Ctrl+Enter` como `Enter` simple, por lo que `Ctrl+X Ctrl+S` es el enlace que funciona en cualquier terminal. Requiere v2.1.275 o posterior |126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Interrumpir el turno en ejecución para que sus [mensajes en cola](/docs/es/interactive-mode#queue-messages-while-claude-works) y su borrador con ellos se envíen de inmediato. Cuando nada se está ejecutando, envía el borrador, y en [modo shell](/docs/es/interactive-mode#shell-mode-with-prefix) pone en cola el comando sin interrumpir. Las terminales que no informan de teclas extendidas entregan `Ctrl+Enter` como `Enter` simple, por lo que `Ctrl+X Ctrl+S` es el atajo que funciona en cualquier terminal. Requiere v2.1.275 o posterior |

127| `chat:newline` | Ctrl+J | Insertar una nueva línea sin enviar |127| `chat:newline` | Ctrl+J | Insertar una nueva línea sin enviar |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Deshacer última acción |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Deshacer última acción |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Abrir en editor externo. El [envío de entrada de vista de agente](/docs/es/agent-view#keyboard-shortcuts) también sigue los enlaces de una sola pulsación de tecla de esta acción |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Abrir en editor externo. El [envío de entrada de vista de agente](/docs/es/agent-view#keyboard-shortcuts) también sigue los atajos de teclado de una sola pulsación de esta acción |

130| `chat:stash` | Ctrl+S | Guardar indicación actual |130| `chat:stash` | Ctrl+S | Guardar indicación actual |

131| `chat:imagePaste` | Ctrl+V (Alt+V en Windows y WSL) | Pegar imagen desde el portapapeles. En WSL, ambos atajos de teclado están vinculados de forma predeterminada |131| `chat:imagePaste` | Ctrl+V (Alt+V en Windows y WSL) | Pegar imagen desde el portapapeles. En WSL, ambos atajos están vinculados de forma predeterminada |

132 132 

133\*En Windows sin modo VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), el valor predeterminado es Meta+M.133\*En Windows sin modo VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), el valor predeterminado es Meta+M.

134 134 


152Acciones disponibles en el contexto `Confirmation`:152Acciones disponibles en el contexto `Confirmation`:

153 153 

154| Acción | Predeterminado | Descripción |154| Acción | Predeterminado | Descripción |

155| :---------------------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |155| :---------------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

156| `confirm:yes` | Y, Enter | Confirmar acción |156| `confirm:yes` | Enter | Confirmar acción |

157| `confirm:no` | N, Escape | Rechazar acción |157| `confirm:no` | Escape | Rechazar acción |

158| `confirm:previous` | Arriba | Opción anterior |158| `confirm:previous` | Arriba | Opción anterior |

159| `confirm:next` | Abajo | Siguiente opción |159| `confirm:next` | Abajo | Siguiente opción |

160| `confirm:nextField` | Tab | Siguiente campo |160| `confirm:nextField` | Tab | Siguiente campo |

161| `confirm:previousField` | (sin vincular) | Campo anterior |161| `confirm:previousField` | (sin asignar) | Campo anterior |

162| `confirm:toggle` | Espacio | Alternar selección |162| `confirm:toggle` | Space | Alternar selección |

163| `confirm:cycleMode` | Shift+Tab\* | Ciclar modos de permiso. En un indicador de permiso de archivo, cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto; sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el indicador ofrece esa opción |163| `confirm:cycleMode` | Shift+Tab\* | Ciclar modos de permisos. En un aviso de permiso de archivo, cierra un [campo de comentario](/docs/es/permissions#add-a-comment-when-you-answer-a-permission-prompt) abierto; sin campo abierto, selecciona la opción que permite la acción para el resto de la sesión, cuando el aviso ofrece esa opción |

164 164 

165\*En Windows sin modo VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), el valor predeterminado es Meta+M.165\*En Windows sin modo VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), el valor predeterminado es Meta+M.

166 166 

167Antes de v2.1.257, una acción `confirm:toggleExplanation`, vinculada a `Ctrl+E` de forma predeterminada, mostraba una explicación generada por modelo del comando en indicadores de permiso de Bash y PowerShell.167Antes de v2.1.257, una acción `confirm:toggleExplanation`, vinculada a `Ctrl+E` de forma predeterminada, mostraba una explicación generada por el modelo del comando en avisos de permisos de Bash y PowerShell.

168 

169Los diálogos utilizan `confirm:yes` y `confirm:no` para aceptar y cancelar incluso cuando no hacen una pregunta de sí o no. Si vincula una letra simple como `y` o `n` en este contexto, la letra también actúa sobre diálogos que nunca la muestran como una tecla. Un diálogo que muestra `y` y `n` como sus teclas las lee a sí mismo y no necesita vinculación.

170 

171Este ejemplo vincula `y` a `confirm:yes` y `n` a `confirm:no`:

172 

173```json theme={null}

174{

175 "bindings": [

176 {

177 "context": "Confirmation",

178 "bindings": {

179 "y": "confirm:yes",

180 "n": "confirm:no"

181 }

182 }

183 ]

184}

185```

186 

187Antes de v2.1.280, `y` también estaba vinculado a `confirm:yes` y `n` a `confirm:no` de forma predeterminada. Si creó su `keybindings.json` con `/keybindings` antes de v2.1.280, el archivo enumera ambas vinculaciones y permanecen en vigor hasta que elimine esas dos líneas.

168 188 

169<h3 id="permission-actions">189<h3 id="permission-actions">

170 Acciones de permiso190 Acciones de permisos

171</h3>191</h3>

172 192 

173Acciones disponibles en el contexto `Confirmation` para diálogos de permiso:193Acciones disponibles en el contexto `Confirmation` para diálogos de permisos:

174 194 

175| Acción | Predeterminado | Descripción |195| Acción | Predeterminado | Descripción |

176| :----------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------- |196| :----------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |

177| `permission:toggleDebug` | (sin vincular) | Alternar información de depuración de permiso. El valor predeterminado anterior de Ctrl+D se eliminó en v2.1.146 porque sombreaba `app:exit` |197| `permission:toggleDebug` | (sin asignar) | Alternar información de depuración de permisos. El valor predeterminado anterior de Ctrl+D se eliminó en v2.1.146 porque sombreaba `app:exit` |

178 198 

179<h3 id="transcript-actions">199<h3 id="transcript-actions">

180 Acciones de transcripción200 Acciones de transcripción


185| Acción | Predeterminado | Descripción |205| Acción | Predeterminado | Descripción |

186| :------------------------- | :---------------- | :--------------------------------- |206| :------------------------- | :---------------- | :--------------------------------- |

187| `transcript:toggleShowAll` | Ctrl+E | Alternar mostrar todo el contenido |207| `transcript:toggleShowAll` | Ctrl+E | Alternar mostrar todo el contenido |

188| `transcript:exit` | q, Ctrl+C, Escape | Salir de vista de transcripción |208| `transcript:exit` | q, Ctrl+C, Escape | Salir de la vista de transcripción |

189 209 

190`transcript:toggleShowAll` se aplica solo en el renderizador clásico; en [renderizado de pantalla completa](/docs/es/fullscreen), el visor de transcripción no ofrece un conmutador mostrar todo.210`transcript:toggleShowAll` se aplica solo en el renderizador clásico; en [renderizado de pantalla completa](/docs/es/fullscreen), el visor de transcripción no ofrece un alternar mostrar todo.

191 211 

192<h3 id="history-search-actions">212<h3 id="history-search-actions">

193 Acciones de búsqueda de historial213 Acciones de búsqueda de historial


203| `historySearch:execute` | Enter | Ejecutar comando seleccionado |223| `historySearch:execute` | Enter | Ejecutar comando seleccionado |

204| `historySearch:cycleScope` | Ctrl+S | Ciclar alcance: sesión, proyecto, en todas partes |224| `historySearch:cycleScope` | Ctrl+S | Ciclar alcance: sesión, proyecto, en todas partes |

205 225 

206Los valores predeterminados de `historySearch:next`, `historySearch:accept`, `historySearch:cancel` y `historySearch:execute` se aplican a la búsqueda de historial en línea en el renderizador clásico, que siempre busca indicaciones de todos los proyectos. `historySearch:cycleScope` solo tiene efecto en [renderizado de pantalla completa](/docs/es/fullscreen), donde `Ctrl+R` abre un diálogo de búsqueda en su lugar y `Ctrl+S` cicla su alcance. Las otras teclas del diálogo son fijas y no se pueden reasignar: `Enter` o `Tab` coloca la coincidencia resaltada en la entrada del indicador y `Esc` cancela.226Los valores predeterminados de `historySearch:next`, `historySearch:accept`, `historySearch:cancel` y `historySearch:execute` se aplican a la búsqueda de historial en línea en el renderizador clásico, que siempre busca indicaciones de todos los proyectos. `historySearch:cycleScope` solo tiene efecto en [renderizado de pantalla completa](/docs/es/fullscreen), donde `Ctrl+R` abre un diálogo de búsqueda en su lugar y `Ctrl+S` cicla su alcance. Las otras teclas del diálogo son fijas y no se pueden reasignar: `Enter` o `Tab` coloca la coincidencia resaltada en la entrada de indicación y `Esc` cancela.

207 227 

208<h3 id="task-actions">228<h3 id="task-actions">

209 Acciones de tarea229 Acciones de tarea


212Acciones disponibles en el contexto `Task`:232Acciones disponibles en el contexto `Task`:

213 233 

214| Acción | Predeterminado | Descripción |234| Acción | Predeterminado | Descripción |

215| :---------------- | :-------------------- | :----------------------------------------------------------------------------------- |235| :---------------- | :-------------------- | :------------------------------------------------------------------------------------------------- |

216| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Tarea de fondo actual. El acorde Ctrl+X Ctrl+B evita el conflicto de prefijo de tmux |236| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Poner tarea actual en segundo plano. El acorde Ctrl+X Ctrl+B evita el conflicto de prefijo de tmux |

217 237 

218<h3 id="theme-actions">238<h3 id="theme-actions">

219 Acciones de tema239 Acciones de tema


242Acciones disponibles en el contexto `Tabs`:262Acciones disponibles en el contexto `Tabs`:

243 263 

244| Acción | Predeterminado | Descripción |264| Acción | Predeterminado | Descripción |

245| :-------------- | :------------------- | :---------------- |265| :-------------- | :-------------- | :---------------- |

246| `tabs:next` | Tab, Derecha | Siguiente pestaña |266| `tabs:next` | Tab, Right | Siguiente pestaña |

247| `tabs:previous` | Shift+Tab, Izquierda | Pestaña anterior |267| `tabs:previous` | Shift+Tab, Left | Pestaña anterior |

248 268 

249<h3 id="attachments-actions">269<h3 id="attachments-actions">

250 Acciones de adjuntos270 Acciones de adjuntos


253Acciones disponibles en el contexto `Attachments`:273Acciones disponibles en el contexto `Attachments`:

254 274 

255| Acción | Predeterminado | Descripción |275| Acción | Predeterminado | Descripción |

256| :--------------------- | :------------------ | :------------------------------ |276| :--------------------- | :---------------- | :--------------------------------- |

257| `attachments:next` | Derecha | Siguiente adjunto |277| `attachments:next` | Right | Siguiente adjunto |

258| `attachments:previous` | Izquierda | Adjunto anterior |278| `attachments:previous` | Left | Adjunto anterior |

259| `attachments:remove` | Retroceso, Suprimir | Eliminar adjunto seleccionado |279| `attachments:remove` | Backspace, Delete | Eliminar adjunto seleccionado |

260| `attachments:exit` | Abajo, Escape | Salir de navegación de adjuntos |280| `attachments:exit` | Down, Escape | Salir de la navegación de adjuntos |

261 281 

262<h3 id="footer-actions">282<h3 id="footer-actions">

263 Acciones de pie de página283 Acciones de pie de página


266Acciones disponibles en el contexto `Footer`:286Acciones disponibles en el contexto `Footer`:

267 287 

268| Acción | Predeterminado | Descripción |288| Acción | Predeterminado | Descripción |

269| :---------------------- | :------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |289| :---------------------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

270| `footer:next` | Derecha | Siguiente elemento de pie de página |290| `footer:next` | Right | Siguiente elemento de pie de página |

271| `footer:previous` | Izquierda | Elemento de pie de página anterior |291| `footer:previous` | Left | Elemento de pie de página anterior |

272| `footer:up` | Arriba | Navegar hacia arriba en pie de página (deselecciona en la parte superior) |292| `footer:up` | Up | Navegar hacia arriba en el pie de página (deselecciona en la parte superior) |

273| `footer:down` | Abajo | Navegar hacia abajo en pie de página |293| `footer:down` | Down | Navegar hacia abajo en el pie de página |

274| `footer:openSelected` | Enter | Abrir elemento de pie de página seleccionado |294| `footer:openSelected` | Enter | Abrir elemento de pie de página seleccionado |

275| `footer:clearSelection` | Escape | Limpiar selección de pie de página |295| `footer:clearSelection` | Escape | Borrar selección de pie de página |

276| `footer:dismiss` | Retroceso, Suprimir | Descartar el enlace de [artefacto](/docs/es/artifacts) seleccionado del pie de página; el artefacto publicado en sí no se ve afectado. En otras filas de pie de página, estas teclas no tienen efecto. Requiere v2.1.217 o posterior |296| `footer:dismiss` | Backspace, Delete | Descartar el enlace de [artefacto](/docs/es/artifacts) seleccionado del pie de página; el artefacto publicado en sí no se ve afectado. En otras filas de pie de página, estas teclas no tienen efecto. Requiere v2.1.217 o posterior |

297 

298Mientras se selecciona un elemento de pie de página, como una fila en el panel de agente debajo de la indicación, `Enter` lo abre incluso cuando reasigna `Enter` en el contexto `Chat` a `chat:queueSubmit` o `chat:newline`.

299 

300Los atajos de teclado de `Chat` en teclas que el contexto `Footer` no vincula, como `Shift+Tab` para `chat:cycleMode`, siguen funcionando mientras se selecciona un elemento.

277 301 

278<h3 id="message-selector-actions">302<h3 id="message-selector-actions">

279 Acciones del selector de mensajes303 Acciones del selector de mensajes


282Acciones disponibles en el contexto `MessageSelector`:306Acciones disponibles en el contexto `MessageSelector`:

283 307 

284| Acción | Predeterminado | Descripción |308| Acción | Predeterminado | Descripción |

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

286| `messageSelector:up` | Arriba, K, Ctrl+P | Mover hacia arriba en la lista |310| `messageSelector:up` | Up, K, Ctrl+P | Mover hacia arriba en la lista |

287| `messageSelector:down` | Abajo, J, Ctrl+N | Mover hacia abajo en la lista |311| `messageSelector:down` | Down, J, Ctrl+N | Mover hacia abajo en la lista |

288| `messageSelector:top` | Ctrl+Arriba, Shift+Arriba, Meta+Arriba, Shift+K | Saltar al inicio |312| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | Saltar al principio |

289| `messageSelector:bottom` | Ctrl+Abajo, Shift+Abajo, Meta+Abajo, Shift+J | Saltar al final |313| `messageSelector:bottom` | Ctrl+Down, Shift+Down, Meta+Down, Shift+J | Saltar al final |

290| `messageSelector:select` | Enter | Seleccionar mensaje |314| `messageSelector:select` | Enter | Seleccionar mensaje |

291 315 

292<h3 id="diff-actions">316<h3 id="diff-actions">

293 Acciones de diff317 Acciones de diferencias

294</h3>318</h3>

295 319 

296Acciones disponibles en el contexto `DiffDialog`:320Acciones disponibles en el contexto `DiffDialog`:

297 321 

298| Acción | Predeterminado | Descripción |322| Acción | Predeterminado | Descripción |

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

300| `diff:dismiss` | Escape | Cerrar visor de diff; desde la vista de detalles, vuelve a la lista de archivos en su lugar |324| `diff:dismiss` | Escape | Cerrar visor de diferencias; desde la vista de detalle, vuelve a la lista de archivos en su lugar |

301| `diff:previousSource` | Izquierda | Fuente de diff anterior |325| `diff:previousSource` | Left | Fuente de diferencia anterior |

302| `diff:nextSource` | Derecha | Siguiente fuente de diff |326| `diff:nextSource` | Right | Siguiente fuente de diferencia |

303| `diff:previousFile` | Arriba, K | Archivo anterior en la lista de archivos; desplazarse hacia arriba una línea en la vista de detalles |327| `diff:previousFile` | Up, K | Archivo anterior en la lista de archivos; desplazarse hacia arriba una línea en la vista de detalle |

304| `diff:nextFile` | Abajo, J | Siguiente archivo en la lista de archivos; desplazarse hacia abajo una línea en la vista de detalles |328| `diff:nextFile` | Down, J | Siguiente archivo en la lista de archivos; desplazarse hacia abajo una línea en la vista de detalle |

305| `diff:viewDetails` | Enter | Ver detalles de diff |329| `diff:viewDetails` | Enter | Ver detalles de diferencias |

306| `diff:back` | (sin vincular) | Volver atrás en visor de diff. Escape realiza la acción de retroceso a través de `diff:dismiss`. El valor predeterminado anterior de Izquierda en la vista de detalles se eliminó en v2.1.203 |330| `diff:back` | (sin asignar) | Retroceder en el visor de diferencias. Escape realiza la acción de retroceso a través de `diff:dismiss`. El valor predeterminado anterior de Left en la vista de detalle se eliminó en v2.1.203 |

307 331 

308La vista de detalles de diff también vincula atajos de teclado de estilo paginador a las [acciones de desplazamiento](#scroll-actions) estándar. Estos enlaces son parte del contexto `DiffDialog` y se aplican solo en la vista de detalles; los valores predeterminados del contexto `Scroll` enumerados en [Acciones de desplazamiento](#scroll-actions) no cambian.332La vista de detalle de diferencias también vincula teclas de estilo paginador a las [acciones de desplazamiento](#scroll-actions) estándar. Estas vinculaciones son parte del contexto `DiffDialog` y se aplican solo en la vista de detalle; los valores predeterminados del contexto `Scroll` enumerados en [Acciones de desplazamiento](#scroll-actions) no cambian.

309 333 

310| Acción | Predeterminado | Descripción |334| Acción | Predeterminado | Descripción |

311| :-------------------- | :--------------- | :------------------------------------------------------- |335| :-------------------- | :------------- | :---------------------------------------------------- |

312| `scroll:pageUp` | Av Pág | Desplazarse hacia arriba la mitad de una ventana gráfica |336| `scroll:pageUp` | PageUp | Desplazarse hacia arriba media ventana gráfica |

313| `scroll:pageDown` | Re Pág | Desplazarse hacia abajo la mitad de una ventana gráfica |337| `scroll:pageDown` | PageDown | Desplazarse hacia abajo media ventana gráfica |

314| `scroll:fullPageUp` | Shift+Espacio, B | Desplazarse hacia arriba una ventana gráfica completa |338| `scroll:fullPageUp` | Shift+Space, B | Desplazarse hacia arriba una ventana gráfica completa |

315| `scroll:fullPageDown` | Espacio | Desplazarse hacia abajo una ventana gráfica completa |339| `scroll:fullPageDown` | Space | Desplazarse hacia abajo una ventana gráfica completa |

316| `scroll:top` | G, Inicio | Saltar al inicio |340| `scroll:top` | G, Home | Saltar al principio |

317| `scroll:bottom` | Shift+G, Fin | Saltar al final |341| `scroll:bottom` | Shift+G, End | Saltar al final |

318 342 

319<h3 id="diff-panel-actions">343<h3 id="diff-panel-actions">

320 Acciones del panel de diff344 Acciones del panel de diferencias

321</h3>345</h3>

322 346 

323Acciones para el [panel de diff](/docs/es/interactive-mode#diff-panel) que `/diff` abre en renderizado de pantalla completa. `app:cycleDiffBase` está en el contexto `DiffPanel`, que está activo mientras el panel está abierto; los otros están en `Global`. El panel requiere Claude Code v2.1.260 o posterior.347Acciones para el [panel de diferencias](/docs/es/interactive-mode#diff-panel) que `/diff` abre en renderizado de pantalla completa. `app:cycleDiffBase` está en el contexto `DiffPanel`, que está activo mientras el panel está abierto; los otros están en `Global`. El panel requiere Claude Code v2.1.260 o posterior.

324 348 

325| Acción | Predeterminado | Descripción |349| Acción | Predeterminado | Descripción |

326| :-------------------------- | :----------------------- | :------------------------------------------------------------------------------ |350| :-------------------------- | :------------------- | :------------------------------------------------------------------------------ |

327| `app:toggleReplTab` | (sin vincular) | Abrir o cerrar el panel de diff, lo mismo que ejecutar `/diff` |351| `app:toggleReplTab` | (sin asignar) | Abrir o cerrar el panel de diferencias, igual que ejecutar `/diff` |

328| `app:cycleDiffBase` | Ctrl+X B | Ciclar la base de comparación del panel: esta sesión, sin confirmar, luego rama |352| `app:cycleDiffBase` | Ctrl+X B | Ciclar la base de comparación del panel: esta sesión, sin confirmar, luego rama |

329| `app:diffFileListUp` | Ctrl+Arriba, Meta+Arriba | Desplazar la lista de archivos del panel hacia arriba cuando se desborda |353| `app:diffFileListUp` | Ctrl+Up, Meta+Up | Desplazarse hacia arriba en la lista de archivos del panel cuando se desborda |

330| `app:diffFileListDown` | Ctrl+Abajo, Meta+Abajo | Desplazar la lista de archivos del panel hacia abajo cuando se desborda |354| `app:diffFileListDown` | Ctrl+Down, Meta+Down | Desplazarse hacia abajo en la lista de archivos del panel cuando se desborda |

331| `app:toggleDiffNoiseFilter` | (sin vincular) | Mostrar u ocultar archivos de prueba y generados en el panel |355| `app:toggleDiffNoiseFilter` | (sin asignar) | Mostrar u ocultar archivos de prueba y generados en el panel |

332| `app:toggleDiffPreSession` | (sin vincular) | Expandir o contraer los cambios de antes de esta sesión |356| `app:toggleDiffPreSession` | (sin asignar) | Expandir o contraer los cambios de antes de esta sesión |

333 357 

334<h3 id="model-picker-actions">358<h3 id="model-picker-actions">

335 Acciones del selector de modelo359 Acciones del selector de modelo


339 363 

340| Acción | Predeterminado | Descripción |364| Acción | Predeterminado | Descripción |

341| :---------------------------- | :------------- | :------------------------------------------ |365| :---------------------------- | :------------- | :------------------------------------------ |

342| `modelPicker:decreaseEffort` | Izquierda | Disminuir nivel de esfuerzo |366| `modelPicker:decreaseEffort` | Left | Disminuir nivel de esfuerzo |

343| `modelPicker:increaseEffort` | Derecha | Aumentar nivel de esfuerzo |367| `modelPicker:increaseEffort` | Right | Aumentar nivel de esfuerzo |

344| `modelPicker:thisSessionOnly` | s | Aplicar modelo resaltado solo a esta sesión |368| `modelPicker:thisSessionOnly` | s | Aplicar modelo resaltado solo a esta sesión |

345 369 

346<h3 id="effort-slider-actions">370<h3 id="effort-slider-actions">

347 Acciones del control deslizante de esfuerzo371 Acciones del control deslizante de esfuerzo

348</h3>372</h3>

349 373 

350Acciones disponibles en el contexto `EffortSlider`, el control deslizante que se abre cuando ejecuta `/effort` sin argumentos. Las teclas Izquierda, Derecha, Enter y Escape del control deslizante no se pueden reasignar.374Acciones disponibles en el contexto `EffortSlider`, el control deslizante que se abre cuando ejecuta `/effort` sin argumentos. Las teclas Left, Right, Enter y Escape del control deslizante no se pueden reasignar.

351 375 

352| Acción | Predeterminado | Descripción |376| Acción | Predeterminado | Descripción |

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


360Acciones disponibles en el contexto `Select`:384Acciones disponibles en el contexto `Select`:

361 385 

362| Acción | Predeterminado | Descripción |386| Acción | Predeterminado | Descripción |

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

364| `select:next` | Abajo, J, Ctrl+N | Siguiente opción |388| `select:next` | Down, J, Ctrl+N | Siguiente opción |

365| `select:previous` | Arriba, K, Ctrl+P | Opción anterior |389| `select:previous` | Up, K, Ctrl+P | Opción anterior |

366| `select:pageUp` | Av Pág | Mover hacia arriba una página de opciones |390| `select:pageUp` | PageUp | Mover hacia arriba una página de opciones |

367| `select:pageDown` | Re Pág | Mover hacia abajo una página de opciones |391| `select:pageDown` | PageDown | Mover hacia abajo una página de opciones |

368| `select:first` | Inicio | Primera opción |392| `select:first` | Home | Primera opción |

369| `select:last` | Fin | Última opción |393| `select:last` | End | Última opción |

370| `select:accept` | Enter | Aceptar selección |394| `select:accept` | Enter | Aceptar selección |

371| `select:cancel` | Escape | Cancelar selección |395| `select:cancel` | Escape | Cancelar selección |

372 396 

373Claude Code aplica sus enlaces `select:pageUp`, `select:pageDown`, `select:first` y `select:last` en el menú `/skills`. En la mayoría de otras listas, como el selector `/model`, Claude Code pagina con Av Pág y Re Pág independientemente de sus enlaces e ignora Inicio y Fin.397Claude Code aplica sus vinculaciones de `select:pageUp`, `select:pageDown`, `select:first` y `select:last` en el menú `/skills`. En la mayoría de otras listas, como el selector `/model`, se aplican sus vinculaciones de `select:first` y `select:last`. PageUp y PageDown avanzan por las opciones en esas listas independientemente de sus vinculaciones.

398 

399Antes de v2.1.280, esas otras listas ignoraban Home, End y sus vinculaciones de `select:first` y `select:last`.

374 400 

375<h3 id="plugin-actions">401<h3 id="plugin-actions">

376 Acciones de plugin402 Acciones de plugins

377</h3>403</h3>

378 404 

379Acciones disponibles en el contexto `Plugin`:405Acciones disponibles en el contexto `Plugin`:

380 406 

381| Acción | Predeterminado | Descripción |407| Acción | Predeterminado | Descripción |

382| :---------------- | :------------- | :---------------------------------------------------------------------------------------------------------------- |408| :---------------- | :------------- | :---------------------------------------------------------------------------------------------------------------- |

383| `plugin:toggle` | Espacio | Alternar selección de plugin |409| `plugin:toggle` | Space | Alternar selección de plugin |

384| `plugin:install` | I | Instalar plugins seleccionados |410| `plugin:install` | I | Instalar plugins seleccionados |

385| `plugin:favorite` | F | Marcar como favorito el plugin seleccionado para que se ordene cerca de la parte superior de la pestaña Instalado |411| `plugin:favorite` | F | Marcar el plugin seleccionado como favorito para que se ordene cerca de la parte superior de la pestaña Instalado |

386 412 

387<h3 id="settings-actions">413<h3 id="settings-actions">

388 Acciones de configuración414 Acciones de configuración

389</h3>415</h3>

390 416 

391Acciones disponibles en el contexto `Settings`. Las acciones `select:accept` y `confirm:no` se reutilizan de los contextos [Selección](#select-actions) y [Confirmación](#confirmation-actions) con comportamiento específico de Configuración: los cambios se aplican a cada configuración tan pronto como la cambia, por lo que Escape cierra el panel con los cambios guardados en lugar de rechazarlos.417Acciones disponibles en el contexto `Settings`. Las acciones `select:accept` y `confirm:no` se reutilizan de los contextos [Select](#select-actions) y [Confirmation](#confirmation-actions) con comportamiento específico de Configuración: los cambios se aplican a cada configuración tan pronto como la cambia, por lo que Escape cierra el panel con sus cambios guardados en lugar de rechazarlos.

392 418 

393| Acción | Predeterminado | Descripción |419| Acción | Predeterminado | Descripción |

394| :---------------- | :------------- | :------------------------------------------------------- |420| :---------------- | :------------- | :------------------------------------------------------- |

395| `settings:search` | / | Entrar en modo de búsqueda |421| `settings:search` | / | Entrar en modo de búsqueda |

396| `settings:retry` | R | Reintentar carga de datos de uso en caso de error |422| `settings:retry` | R | Reintentar cargar datos de uso en caso de error |

397| `select:accept` | Enter, Espacio | Cambiar la configuración seleccionada o abrir su submenú |423| `select:accept` | Enter, Space | Cambiar la configuración seleccionada o abrir su submenú |

398| `confirm:no` | Escape | Cerrar el panel. Los cambios ya están guardados |424| `confirm:no` | Escape | Cerrar el panel. Los cambios ya están guardados |

399 425 

400<h3 id="agents-actions">426<h3 id="agents-actions">


408| `agents:switchView` | Ctrl+S | Cambiar [agrupación de sesión](/docs/es/agent-view#organize-the-list) entre estado y directorio |434| `agents:switchView` | Ctrl+S | Cambiar [agrupación de sesión](/docs/es/agent-view#organize-the-list) entre estado y directorio |

409| `agents:togglePin` | Ctrl+T | [Fijar o desfijar](/docs/es/agent-view#organize-the-list) la sesión seleccionada |435| `agents:togglePin` | Ctrl+T | [Fijar o desfijar](/docs/es/agent-view#organize-the-list) la sesión seleccionada |

410 436 

411Mientras la vista de agente está abierta, Claude Code usa el enlace `Agents` para cualquier tecla que el contexto `Agents` vincula, e ignora un enlace `Chat` o `Global` en la misma tecla. Por ejemplo, presionar Ctrl+S en la vista de agente cambia la agrupación de sesión en lugar de activar el `chat:stash` predeterminado.437Mientras la vista de agente está abierta, Claude Code utiliza la vinculación de `Agents` para cualquier tecla que el contexto `Agents` vincula, e ignora una vinculación de `Chat` o `Global` en la misma tecla. Por ejemplo, presionar Ctrl+S en la vista de agente cambia la agrupación de sesión en lugar de activar el `chat:stash` predeterminado.

412 438 

413El atajo del editor externo de entrada de envío no es una acción `Agents`. La vista de agente sigue el enlace `chat:externalEditor` del contexto `Chat`, Ctrl+G de forma predeterminada.439El atajo de editor externo de entrada de envío no es una acción de `Agents`. La vista de agente sigue la vinculación de `chat:externalEditor` del contexto `Chat`, Ctrl+G de forma predeterminada.

414 440 

415Los enlaces se activan en pulsaciones de tecla individuales en la vista de agente, por lo que el acorde Ctrl+X Ctrl+E vinculado a `chat:externalEditor` no abre el editor allí.441Los atajos de teclado se activan en pulsaciones simples en la vista de agente, por lo que el acorde Ctrl+X Ctrl+E vinculado a `chat:externalEditor` no abre el editor allí.

416 442 

417<h3 id="voice-actions">443<h3 id="voice-actions">

418 Acciones de voz444 Acciones de voz


422 448 

423| Acción | Predeterminado | Descripción |449| Acción | Predeterminado | Descripción |

424| :----------------- | :------------- | :------------------------------------------------------------------------ |450| :----------------- | :------------- | :------------------------------------------------------------------------ |

425| `voice:pushToTalk` | Espacio | Dictar una indicación. Mantener presionado o tocar según el modo `/voice` |451| `voice:pushToTalk` | Space | Dictar una indicación. Mantenga presionado o toque según el modo `/voice` |

426 452 

427<h3 id="scroll-actions">453<h3 id="scroll-actions">

428 Acciones de desplazamiento454 Acciones de desplazamiento


431Acciones disponibles en el contexto `Scroll` cuando [renderizado de pantalla completa](/docs/es/fullscreen) está habilitado:457Acciones disponibles en el contexto `Scroll` cuando [renderizado de pantalla completa](/docs/es/fullscreen) está habilitado:

432 458 

433| Acción | Predeterminado | Descripción |459| Acción | Predeterminado | Descripción |

434| :-------------------------- | :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------- |460| :-------------------------- | :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |

435| `scroll:lineUp` | `wheelup` | Desplazarse hacia arriba una línea. El desplazamiento de rueda de ratón activa esta acción |461| `scroll:lineUp` | `wheelup` | Desplazarse hacia arriba una línea. El desplazamiento de la rueda del ratón activa esta acción |

436| `scroll:lineDown` | `wheeldown` | Desplazarse hacia abajo una línea. El desplazamiento de rueda de ratón activa esta acción |462| `scroll:lineDown` | `wheeldown` | Desplazarse hacia abajo una línea. El desplazamiento de la rueda del ratón activa esta acción |

437| `scroll:pageUp` | Av Pág | Desplazarse hacia arriba la mitad de la altura de la ventana gráfica |463| `scroll:pageUp` | PageUp | Desplazarse hacia arriba media altura de ventana gráfica |

438| `scroll:pageDown` | Re Pág | Desplazarse hacia abajo la mitad de la altura de la ventana gráfica |464| `scroll:pageDown` | PageDown | Desplazarse hacia abajo media altura de ventana gráfica |

439| `scroll:top` | Ctrl+Inicio | Saltar al inicio de la conversación |465| `scroll:top` | Ctrl+Home | Saltar al inicio de la conversación |

440| `scroll:bottom` | Ctrl+Fin | Saltar al mensaje más reciente y reactivar el seguimiento automático |466| `scroll:bottom` | Ctrl+End | Saltar al mensaje más reciente y reactivar el seguimiento automático |

441| `scroll:halfPageUp` | (sin vincular) | Desplazarse hacia arriba la mitad de la altura de la ventana gráfica. Mismo comportamiento que `scroll:pageUp`, proporcionado para rebinds de estilo vi |467| `scroll:halfPageUp` | (sin asignar) | Desplazarse hacia arriba media altura de ventana gráfica. Mismo comportamiento que `scroll:pageUp`, proporcionado para reasignaciones de estilo vi |

442| `scroll:halfPageDown` | (sin vincular) | Desplazarse hacia abajo la mitad de la altura de la ventana gráfica. Mismo comportamiento que `scroll:pageDown`, proporcionado para rebinds de estilo vi |468| `scroll:halfPageDown` | (sin asignar) | Desplazarse hacia abajo media altura de ventana gráfica. Mismo comportamiento que `scroll:pageDown`, proporcionado para reasignaciones de estilo vi |

443| `scroll:fullPageUp` | (sin vincular) | Desplazarse hacia arriba la altura completa de la ventana gráfica |469| `scroll:fullPageUp` | (sin asignar) | Desplazarse hacia arriba la altura completa de la ventana gráfica |

444| `scroll:fullPageDown` | (sin vincular) | Desplazarse hacia abajo la altura completa de la ventana gráfica |470| `scroll:fullPageDown` | (sin asignar) | Desplazarse hacia abajo la altura completa de la ventana gráfica |

445| `selection:copy` | Ctrl+Shift+C / Cmd+C | Copiar el texto seleccionado al portapapeles |471| `selection:copy` | Ctrl+Shift+C / Cmd+C | Copiar el texto seleccionado al portapapeles |

446| `selection:clear` | (sin vincular) | Limpiar la selección de texto activa. Requiere v2.1.234 o posterior |472| `selection:clear` | (sin asignar) | Borrar la selección de texto activa. Requiere v2.1.234 o posterior |

447| `selection:extendLeft` | Shift+Izquierda | Extender la selección activa una columna hacia la izquierda |473| `selection:extendLeft` | Shift+Left | Extender la selección activa una columna hacia la izquierda |

448| `selection:extendRight` | Shift+Derecha | Extender la selección activa una columna hacia la derecha |474| `selection:extendRight` | Shift+Right | Extender la selección activa una columna hacia la derecha |

449| `selection:extendUp` | Shift+Arriba | Extender la selección activa una fila hacia arriba. Desplaza la ventana gráfica cuando la selección alcanza el borde superior |475| `selection:extendUp` | Shift+Up | Extender la selección activa una fila hacia arriba. Desplaza la ventana gráfica cuando la selección alcanza el borde superior |

450| `selection:extendDown` | Shift+Abajo | Extender la selección activa una fila hacia abajo. Desplaza la ventana gráfica cuando la selección alcanza el borde inferior |476| `selection:extendDown` | Shift+Down | Extender la selección activa una fila hacia abajo. Desplaza la ventana gráfica cuando la selección alcanza el borde inferior |

451| `selection:extendLineStart` | Shift+Inicio | Extender la selección activa al inicio de la línea |477| `selection:extendLineStart` | Shift+Home | Extender la selección activa al inicio de la línea |

452| `selection:extendLineEnd` | Shift+Fin | Extender la selección activa al final de la línea |478| `selection:extendLineEnd` | Shift+End | Extender la selección activa al final de la línea |

453 479 

454<h2 id="keystroke-syntax">480<h2 id="keystroke-syntax">

455 Sintaxis de pulsación de tecla481 Sintaxis de pulsación de tecla

Details

255 255 

256Esto es particularmente útil para [aislamiento de worktree de subagente](/docs/es/worktrees#isolate-subagents-with-worktrees). Los subagentes son instancias paralelas de Claude generadas para subtareas, y cada una que se ejecuta en un worktree obtiene un checkout ligero en lugar del árbol completo. Todos los worktrees en una sesión comparten el mismo `sparsePaths`, por lo que si un subagente necesita `packages/api/` y otro necesita `packages/web/`, enumere ambos.256Esto es particularmente útil para [aislamiento de worktree de subagente](/docs/es/worktrees#isolate-subagents-with-worktrees). Los subagentes son instancias paralelas de Claude generadas para subtareas, y cada una que se ejecuta en un worktree obtiene un checkout ligero en lugar del árbol completo. Todos los worktrees en una sesión comparten el mismo `sparsePaths`, por lo que si un subagente necesita `packages/api/` y otro necesita `packages/web/`, enumere ambos.

257 257 

258Enumere directorios en `sparsePaths`, no archivos individuales. Los archivos de nivel raíz como `package.json`, `tsconfig.base.json` y archivos de bloqueo siempre se verifican junto con los directorios que enumera. Los directorios de nivel raíz no, así que incluya `.claude` en la lista si desea que el `.claude/settings.json`, `.claude/rules/` o `.claude/skills/` de la raíz del repositorio estén disponibles dentro del worktree.258Enumere directorios en `sparsePaths`, no archivos individuales. Los archivos de nivel raíz como `package.json`, `tsconfig.base.json` y archivos de bloqueo siempre se verifican junto con los directorios que enumera. Los directorios de nivel raíz no, así que incluya `.claude` en la lista si desea que el `.claude/settings.json` de la raíz del repositorio o los archivos `.claude/rules/` estén disponibles dentro del worktree. Para skills de proyecto, agentes y comandos, consulte [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout).

259 259 

260El sparse checkout requiere que git habilite `extensions.worktreeConfig` en el `.git/config` compartido del repositorio mientras existe un worktree disperso. Claude Code elimina esa entrada después de que se elimina el último worktree, pero solo si Claude Code la agregó. Nunca elimina un valor que usted estableció. Antes de v2.1.207, la entrada permanecía después de que se eliminaba el último worktree, y las herramientas basadas en go-git como `tea` no podían abrir el repositorio hasta que ejecutaba `git config --unset extensions.worktreeConfig`.260El sparse checkout requiere que git habilite `extensions.worktreeConfig` en el `.git/config` compartido del repositorio mientras existe un worktree disperso. Claude Code elimina esa entrada después de que se elimina el último worktree, pero solo si Claude Code la agregó. Nunca elimina un valor que usted estableció. Antes de v2.1.207, la entrada permanecía después de que se eliminaba el último worktree, y las herramientas basadas en go-git como `tea` no podían abrir el repositorio hasta que ejecutaba `git config --unset extensions.worktreeConfig`.

261 261 

Details

578Estos son los errores más comunes al ejecutar Claude Code a través de una puerta de enlace, con la causa del lado de la puerta de enlace y la solución:578Estos son los errores más comunes al ejecutar Claude Code a través de una puerta de enlace, con la causa del lado de la puerta de enlace y la solución:

579 579 

580| Error | Causa | Solución |580| Error | Causa | Solución |

581| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |581| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

582| Una advertencia de inicio que nombra dos fuentes de credencial y termina en `auth may not work as expected`. Las versiones más antiguas muestran `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` en su lugar. | Una credencial de puerta de enlace y un inicio de sesión guardado están ambos activos; la variable se usa para solicitudes, pero el inicio de sesión obsoleto puede causar comportamiento de autenticación inesperado | Desestablezca la variable para usar el inicio de sesión guardado, o ejecute `/logout` para usar la credencial de puerta de enlace |582| Una advertencia de inicio que nombra dos fuentes de credencial y termina en `auth may not work as expected`. Las versiones más antiguas muestran `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` en su lugar. | Una credencial de puerta de enlace y un inicio de sesión guardado están ambos activos; la variable se usa para solicitudes, pero el inicio de sesión obsoleto puede causar comportamiento de autenticación inesperado | Desestablezca la variable para usar el inicio de sesión guardado, o ejecute `/logout` para usar la credencial de puerta de enlace |

583| Errores `401` que nombran un token inválido o no reconocido | La credencial no es una que la puerta de enlace emitió, o está en un encabezado que la puerta de enlace no lee | Confirme que la variable coincida con su tipo de credencial en la [tabla de credencial](#set-the-credential-variable), y regenere la clave en la puerta de enlace si fue revocada |583| Errores `401` que nombran un token inválido o no reconocido | La credencial no es una que la puerta de enlace emitió, o está en un encabezado que la puerta de enlace no lee | Confirme que la variable coincida con su tipo de credencial en la [tabla de credencial](#set-the-credential-variable), y regenere la clave en la puerta de enlace si fue revocada |

584| `Your apiKeyHelper script is failing`, o `apiKeyHelper failed:` en stderr en modo no interactivo | El comando en la configuración [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) no produjo una clave utilizable, por lo que las solicitudes llevan una clave de marcador de posición | Ejecute el comando directamente para ver por qué falla, y vuelva a autenticarse con su proveedor de credenciales si reporta una sesión expirada; consulte [la referencia de errores](/docs/es/errors#your-apikeyhelper-script-is-failing) |584| `Your apiKeyHelper script is failing`, o `apiKeyHelper failed:` en stderr en modo no interactivo | El comando en la configuración [`apiKeyHelper`](/docs/es/settings-reference#apikeyhelper) no produjo una clave utilizable, por lo que las solicitudes llevan una clave de marcador de posición | Ejecute el comando directamente para ver por qué falla, y vuelva a autenticarse con su proveedor de credenciales si reporta una sesión expirada; consulte [la referencia de errores](/docs/es/errors#your-apikeyhelper-script-is-failing) |


588| Errores `400` que nombran `thinking` o `adaptive`, como `Input tag 'adaptive' found` | La compilación del modelo upstream no acepta razonamiento adaptativo, que Claude Code solicita para modelos Claude 4.6 y posteriores | Actualice el upstream de la puerta de enlace. En Opus 4.6 y Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` funciona en su lugar. Las variables de capacidad de [configuración de modelo](/docs/es/model-config) se aplican solo a las configuraciones de proveedor, como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, no detrás de una puerta de enlace `ANTHROPIC_BASE_URL` |588| Errores `400` que nombran `thinking` o `adaptive`, como `Input tag 'adaptive' found` | La compilación del modelo upstream no acepta razonamiento adaptativo, que Claude Code solicita para modelos Claude 4.6 y posteriores | Actualice el upstream de la puerta de enlace. En Opus 4.6 y Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` funciona en su lugar. Las variables de capacidad de [configuración de modelo](/docs/es/model-config) se aplican solo a las configuraciones de proveedor, como `CLAUDE_CODE_USE_BEDROCK` y `CLAUDE_CODE_USE_VERTEX`, no detrás de una puerta de enlace `ANTHROPIC_BASE_URL` |

589| Errores `400` que indican un contexto o límite de token en las propias palabras de la puerta de enlace, como `ContextWindowExceededError` o `prompt token count of N exceeds the limit of M` | La puerta de enlace aplica un contexto más pequeño que la ventana nativa del modelo y reescribe el error upstream, por lo que Claude Code no lo reconoce como un [error demasiado largo](/docs/es/errors#prompt-is-too-long) y no compacta y reintenta automáticamente | Ejecute `/compact` para recuperar la sesión. Para prevenirlo, establezca `CLAUDE_CODE_AUTO_COMPACT_WINDOW` al límite de la puerta de enlace; Claude Code fija el valor a al menos 100,000 tokens y como máximo la ventana de contexto del modelo, por lo que no puede coincidir con un límite de puerta de enlace por debajo de 100,000, y `/compact` permanece como la recuperación allí. También establezca `CLAUDE_CODE_MAX_OUTPUT_TOKENS` por debajo del límite de salida del modelo de puerta de enlace |589| Errores `400` que indican un contexto o límite de token en las propias palabras de la puerta de enlace, como `ContextWindowExceededError` o `prompt token count of N exceeds the limit of M` | La puerta de enlace aplica un contexto más pequeño que la ventana nativa del modelo y reescribe el error upstream, por lo que Claude Code no lo reconoce como un [error demasiado largo](/docs/es/errors#prompt-is-too-long) y no compacta y reintenta automáticamente | Ejecute `/compact` para recuperar la sesión. Para prevenirlo, establezca `CLAUDE_CODE_AUTO_COMPACT_WINDOW` al límite de la puerta de enlace; Claude Code fija el valor a al menos 100,000 tokens y como máximo la ventana de contexto del modelo, por lo que no puede coincidir con un límite de puerta de enlace por debajo de 100,000, y `/compact` permanece como la recuperación allí. También establezca `CLAUDE_CODE_MAX_OUTPUT_TOKENS` por debajo del límite de salida del modelo de puerta de enlace |

590| Errores `400` en cada solicitud, en las propias palabras de la puerta de enlace rechazando un esquema de entrada de herramienta o su `pattern`, en Claude Code v2.1.265 a v2.1.267 | En un despliegue gradual en esas versiones, el esquema de [herramienta Artifact](/docs/es/artifacts#availability) lleva una expresión regular con clases de caracteres Unicode `\p{...}`. La API de Anthropic la acepta, pero una puerta de enlace o upstream que verifica el `pattern` de cada esquema de herramienta con su propio motor de expresiones regulares rechaza toda la solicitud | Actualice a v2.1.268 o posterior, que no envía la expresión regular. En una versión afectada, [desactive los artefactos](/docs/es/artifacts#disable-artifacts), que elimina la herramienta y su esquema de las solicitudes |590| Errores `400` en cada solicitud, en las propias palabras de la puerta de enlace rechazando un esquema de entrada de herramienta o su `pattern`, en Claude Code v2.1.265 a v2.1.267 | En un despliegue gradual en esas versiones, el esquema de [herramienta Artifact](/docs/es/artifacts#availability) lleva una expresión regular con clases de caracteres Unicode `\p{...}`. La API de Anthropic la acepta, pero una puerta de enlace o upstream que verifica el `pattern` de cada esquema de herramienta con su propio motor de expresiones regulares rechaza toda la solicitud | Actualice a v2.1.268 o posterior, que no envía la expresión regular. En una versión afectada, [desactive los artefactos](/docs/es/artifacts#disable-artifacts), que elimina la herramienta y su esquema de las solicitudes |

591| Errores `400` en cada solicitud, en las propias palabras de la puerta de enlace rechazando un tipo de herramienta no reconocido, como `Input tag 'advisor_20260301'`, en Claude Code v2.1.275 | En un despliegue gradual en esa versión, las solicitudes llevan una entrada de [herramienta advisor](/docs/es/advisor) incluso con el advisor desactivado. La API de Anthropic la acepta, pero una puerta de enlace o upstream que valida tipos de herramientas rechaza toda la solicitud; una que [reenvía campos del cuerpo de la solicitud sin cambios](/docs/es/llm-gateway-protocol#forward-as-open-lists) la pasa sin afectar. La entrada es una declaración que no lleva contenido de conversación | Actualice a v2.1.276 o posterior, que no envía la entrada detrás de una puerta de enlace `ANTHROPIC_BASE_URL` a menos que active el advisor. En v2.1.275, establezca [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`](/docs/es/env-vars), que elimina la entrada de las solicitudes |

591| Modelos faltantes del selector `/model` | Los nombres de modelos de puerta de enlace no están en la lista integrada de Claude Code, o Claude Code está mostrando una alineación [`modelPicker`](/docs/es/settings-reference#modelpicker) que reemplaza las opciones integradas | Habilite [descubrimiento de modelos de puerta de enlace](#add-gateway-models-to-the-model-picker) o agregue nombres con las variables de [configuración de modelo](/docs/es/model-config). Si Claude Code muestra una alineación `modelPicker` que reemplaza, agregue los modelos de puerta de enlace a ella, o pida a su administrador que los agregue cuando la configuración administrada lo proporcione |592| Modelos faltantes del selector `/model` | Los nombres de modelos de puerta de enlace no están en la lista integrada de Claude Code, o Claude Code está mostrando una alineación [`modelPicker`](/docs/es/settings-reference#modelpicker) que reemplaza las opciones integradas | Habilite [descubrimiento de modelos de puerta de enlace](#add-gateway-models-to-the-model-picker) o agregue nombres con las variables de [configuración de modelo](/docs/es/model-config). Si Claude Code muestra una alineación `modelPicker` que reemplaza, agregue los modelos de puerta de enlace a ella, o pida a su administrador que los agregue cuando la configuración administrada lo proporcione |

592| `/fast` reporta `Fast mode unavailable due to network connectivity issues` mientras las solicitudes de inferencia funcionan | La verificación de disponibilidad de [modo rápido](/docs/es/fast-mode) va directamente a `api.anthropic.com` y no sigue `ANTHROPIC_BASE_URL`, por lo que el egreso directo bloqueado falla la verificación. El mismo mensaje aparece en una red abierta cuando la verificación presenta una clave emitida por puerta de enlace de `ANTHROPIC_API_KEY` o un `apiKeyHelper` y Anthropic la rechaza | Agregue a la lista blanca `api.anthropic.com` si el egreso está bloqueado, o establezca una variable de omisión; para una clave de puerta de enlace rechazada solo las variables de omisión ayudan. Consulte [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |593| `/fast` reporta `Fast mode unavailable due to network connectivity issues` mientras las solicitudes de inferencia funcionan | La verificación de disponibilidad de [modo rápido](/docs/es/fast-mode) va directamente a `api.anthropic.com` y no sigue `ANTHROPIC_BASE_URL`, por lo que el egreso directo bloqueado falla la verificación. El mismo mensaje aparece en una red abierta cuando la verificación presenta una clave emitida por puerta de enlace de `ANTHROPIC_API_KEY` o un `apiKeyHelper` y Anthropic la rechaza | Agregue a la lista blanca `api.anthropic.com` si el egreso está bloqueado, o establezca una variable de omisión; para una clave de puerta de enlace rechazada solo las variables de omisión ayudan. Consulte [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

593| `/fast` reporta `Fast mode has been disabled by your organization` en una sesión autenticada con `ANTHROPIC_AUTH_TOKEN`, aunque la organización tiene modo rápido habilitado | La verificación de disponibilidad requiere un inicio de sesión en claude.ai o una clave de API de Anthropic; con solo un token portador, Claude Code trata el modo rápido como deshabilitado sin enviar la verificación | Establezca `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |594| `/fast` reporta `Fast mode has been disabled by your organization` en una sesión autenticada con `ANTHROPIC_AUTH_TOKEN`, aunque la organización tiene modo rápido habilitado | La verificación de disponibilidad requiere un inicio de sesión en claude.ai o una clave de API de Anthropic; con solo un token portador, Claude Code trata el modo rápido como deshabilitado sin enviar la verificación | Establezca `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; consulte [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

Details

144 144 

145Si sus desarrolladores establecen `ANTHROPIC_CUSTOM_HEADERS`, esos encabezados también aparecen en las solicitudes.145Si sus desarrolladores establecen `ANTHROPIC_CUSTOM_HEADERS`, esos encabezados también aparecen en las solicitudes.

146 146 

147<h3 id="gateway-hint-headers">

148 Encabezados de sugerencia de puerta de enlace

149</h3>

150 

151Claude Code también puede enviar sugerencias de enrutamiento: hechos por solicitud que una puerta de enlace o enrutador puede usar para programar, almacenar en caché o atribuir una solicitud. Requiere Claude Code v2.1.273 o posterior.

152 

153Si una solicitud los lleva depende de dónde Claude Code los envía:

154 

155* Conexión directa a la API de Anthropic: enviado por defecto

156* URL base personalizada: desactivado por defecto, porque un proxy que rechaza encabezados desconocidos fallaría la solicitud. Para recibirlos, establezca [`CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`](/docs/es/env-vars) para sus desarrolladores, por ejemplo en el bloque `env` de [configuración administrada](/docs/es/managed-settings)

157* Cualquier otro backend, incluidos Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry y Claude Platform en AWS: enviado solo cuando `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1` está establecido

158 

159Establecer `CLAUDE_CODE_GATEWAY_HINT_HEADERS` a `0` detiene los encabezados en cada conexión.

160 

161Los encabezados llevan solo lo que las filas a continuación enumeran: vocabularios fijos, nombres de herramientas y duraciones, nunca texto de solicitud o contenidos de archivo. Cada valor es ASCII imprimible.

162 

163| Encabezado | Descripción |

164| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

165| `x-claude-code-request-class` | Qué tipo de solicitud es esta: `main` para un turno de la conversación principal, `subagent` para un turno de un [subagente](/docs/es/sub-agents), `workflow` para un agente ejecutándose dentro de un flujo de trabajo, `compaction` para la solicitud de resumen que compacta una conversación, o `auxiliary` para solicitudes secundarias como títulos de sesión, clasificadores y resúmenes. Enviado en cada solicitud |

166| `x-claude-code-agent-type` | El tipo de subagente que emitió la solicitud: un nombre de tipo de agente integrado como `Explore`, `Plan` o `general-purpose`, o `custom` para un agente definido por el usuario, `teammate` para un miembro del [equipo de agentes](/docs/es/agent-teams) ejecutándose en el proceso del líder, o `fork` para un [fork](/docs/es/sub-agents#fork-the-current-conversation). Presente solo en los turnos propios de un subagente; la compactación o solicitudes secundarias de un subagente mantienen el ID del agente pero no llevan tipo. Un nombre de agente elegido por el usuario nunca se envía |

167| `x-claude-code-compaction` | Presente en la solicitud que resume la conversación durante una [compactación](/docs/es/prompt-caching#compacting-the-conversation). El valor dice qué la activó: `auto` cuando la ventana de contexto se acercaba a la capacidad, `manual` para `/compact`, o `reactive` cuando la API rechazó una solicitud como demasiado larga. Ausente en todas las otras solicitudes |

168| `x-claude-code-context-compacted` | Presente una vez, en la primera solicitud de conversación principal después de una compactación, con los mismos valores que `x-claude-code-compaction`. El prefijo de conversación antes de esta solicitud ya no se usa, así que un caché codificado en él puede descartarse |

169| `x-claude-code-prev-tool-durations` | Tiempo de ejecución medido de las llamadas de herramienta cuyos resultados lleva esta solicitud, como `<name>=<ms>;<name>=<ms>`, por ejemplo `Bash=742;Read=9`. Enviado en la siguiente solicitud de la misma conversación después de un lote de llamadas de herramienta, desde la sesión principal o un subagente |

170 

171Antes de analizar `x-claude-code-prev-tool-durations`, verifique cómo Claude Code construye el valor y qué deja fuera:

172 

173* Entradas: una por llamada de herramienta que se ejecutó, en el orden en que se recopiló su resultado, en milisegundos completos

174* Límite: Claude Code envía como máximo 32 entradas y 4 KB, manteniendo las primeras entradas

175* Codificación: los nombres de herramientas están codificados en porcentaje, cubriendo `%`, `;`, `=`, coma, espacio y cualquier carácter fuera de ASCII imprimible

176* Análisis: dividir en `;`, luego en `=`, y decodificar cada nombre

177* Ausencia: las llamadas de compactación, solicitudes secundarias y la primera solicitud de un nuevo mensaje nunca la llevan. No lea un encabezado faltante como un turno que no ejecutó herramientas

178* Tiempos: cada uno excluye solicitudes de permiso y hooks, y las llamadas de herramienta paralelas cada una reporta su propio tiempo, así que las entradas no suman la brecha entre solicitudes

179 

147<h3 id="forward-as-open-lists">180<h3 id="forward-as-open-lists">

148 Reenviar como listas abiertas181 Reenviar como listas abiertas

149</h3>182</h3>


221 254 

222* Cuando el proveedor ascendente rechaza el campo `thinking`, un mensaje del sistema a mitad de conversación, o el marcador `cache_control` en tal mensaje, Claude Code reintenta la solicitud y deshabilita la capacidad rechazada para el resto de la conversación255* Cuando el proveedor ascendente rechaza el campo `thinking`, un mensaje del sistema a mitad de conversación, o el marcador `cache_control` en tal mensaje, Claude Code reintenta la solicitud y deshabilita la capacidad rechazada para el resto de la conversación

223* Cuando el proveedor ascendente rechaza una [firma de pensamiento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluido con un `400` cuyo mensaje dice que el bloque está `bound to a different conversation`, Claude Code elimina bloques de pensamiento anteriores de la solicitud, reintenta, y los mantiene fuera de cada solicitud posterior. Las nuevas respuestas aún incluyen pensamiento256* Cuando el proveedor ascendente rechaza una [firma de pensamiento](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), incluido con un `400` cuyo mensaje dice que el bloque está `bound to a different conversation`, Claude Code elimina bloques de pensamiento anteriores de la solicitud, reintenta, y los mantiene fuera de cada solicitud posterior. Las nuevas respuestas aún incluyen pensamiento

257* Cuando la puerta de enlace o su proveedor ascendente rechaza la entrada de [herramienta asesor](/docs/es/advisor) en `tools` como un tipo de herramienta no reconocido, Claude Code reintenta la solicitud una vez sin esa entrada y su valor `anthropic-beta`. Las solicitudes posteriores a esa URL base dejan el asesor fuera hasta que Claude Code se cierre, y `/advisor` no está disponible para el desarrollador durante ese tiempo. Claude Code reconoce este rechazo por una respuesta `400` o `422` cuyo mensaje nombra el tipo de herramienta después de `Input tag`, como `Input tag 'advisor_20260301'`. Antes de v2.1.280, Claude Code no reintentaba este rechazo

224* Claude Code no reintenta rechazos de gestión de contexto o campos de esquema de herramienta, así que esos errores `400` llegan al desarrollador258* Claude Code no reintenta rechazos de gestión de contexto o campos de esquema de herramienta, así que esos errores `400` llegan al desarrollador

225 259 

226El rechazo `bound to a different conversation` proviene de la verificación de [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) de la API, que falla cuando el contenido de `system`, `tools`, o `messages` anteriores difiere de la solicitud que produjo el pensamiento. Una puerta de enlace que reescribe cualquiera de ese contenido puede causar el rechazo en sí; [Bibliotecas, proxies y puertas de enlace](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cubre qué pasar sin cambios.260El rechazo `bound to a different conversation` proviene de la verificación de [pensamiento preservado](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) de la API, que falla cuando el contenido de `system`, `tools`, o `messages` anteriores difiere de la solicitud que produjo el pensamiento. Una puerta de enlace que reescribe cualquiera de ese contenido puede causar el rechazo en sí; [Bibliotecas, proxies y puertas de enlace](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) cubre qué pasar sin cambios.

Details

180El mismo conjunto de variables se aplica cualquiera que sea el camino que elija. La mayoría de implementaciones solo necesitan `ANTHROPIC_BASE_URL` y una credencial; incluya las filas condicionales cuando su configuración de puerta de enlace lo requiera.180El mismo conjunto de variables se aplica cualquiera que sea el camino que elija. La mayoría de implementaciones solo necesitan `ANTHROPIC_BASE_URL` y una credencial; incluya las filas condicionales cuando su configuración de puerta de enlace lo requiera.

181 181 

182| Variable o configuración | Qué hace | Incluir cuando |182| Variable o configuración | Qué hace | Incluir cuando |

183| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |183| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

184| `ANTHROPIC_BASE_URL` | Envía las solicitudes de API de Claude Code a la puerta de enlace en lugar de `api.anthropic.com` | Siempre |184| `ANTHROPIC_BASE_URL` | Envía las solicitudes de API de Claude Code a la puerta de enlace en lugar de `api.anthropic.com` | Siempre |

185| `apiKeyHelper`, o una credencial en `ANTHROPIC_AUTH_TOKEN` o `ANTHROPIC_API_KEY` | Autentica cada solicitud a la puerta de enlace. El ayudante ejecuta un comando para obtener la clave; las variables contienen una clave estática, enviada como `Authorization: Bearer` y `x-api-key` respectivamente | Siempre; uno de los tres |185| `apiKeyHelper`, o una credencial en `ANTHROPIC_AUTH_TOKEN` o `ANTHROPIC_API_KEY` | Autentica cada solicitud a la puerta de enlace. El ayudante ejecuta un comando para obtener la clave; las variables contienen una clave estática, enviada como `Authorization: Bearer` y `x-api-key` respectivamente | Siempre; uno de los tres |

186| `ANTHROPIC_CUSTOM_HEADERS` | Añade encabezados HTTP adicionales a cada solicitud de API | Su puerta de enlace requiere un encabezado de inquilino o enrutamiento en cada solicitud |186| `ANTHROPIC_CUSTOM_HEADERS` | Añade encabezados HTTP adicionales a cada solicitud de API | Su puerta de enlace requiere un encabezado de inquilino o enrutamiento en cada solicitud |

187| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Envía los [encabezados de sugerencia de puerta de enlace](/docs/es/llm-gateway-protocol#gateway-hint-headers), que clasifican cada solicitud para decisiones de enrutamiento y programación en la puerta de enlace. Requiere Claude Code v2.1.273 o posterior | Su puerta de enlace lee los encabezados de sugerencia |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Consulta `/v1/models` de la puerta de enlace al inicio y añade los nombres devueltos al selector `/model` | Su puerta de enlace sirve `/v1/models` y desea que los selectores de los desarrolladores se rellenen desde ella |188| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Consulta `/v1/models` de la puerta de enlace al inicio y añade los nombres devueltos al selector `/model` | Su puerta de enlace sirve `/v1/models` y desea que los selectores de los desarrolladores se rellenen desde ella |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Detiene el envío de Claude Code de encabezados de capacidad de pre-lanzamiento y campos de cuerpo. [Deshabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre el alcance exacto | Su puerta de enlace reenvía a un Amazon Bedrock o Google Cloud's Agent Platform ascendente que rechaza campos beta. Consulte [Requisitos de la puerta de enlace](#gateway-requirements) |189| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Detiene el envío de Claude Code de encabezados de capacidad de pre-lanzamiento y campos de cuerpo. [Deshabilitar capacidades de pre-lanzamiento](/docs/es/llm-gateway-protocol#disable-pre-release-capabilities) cubre el alcance exacto | Su puerta de enlace reenvía a un Amazon Bedrock o Google Cloud's Agent Platform ascendente que rechaza campos beta. Consulte [Requisitos de la puerta de enlace](#gateway-requirements) |

189| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` o `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Restaura [modo rápido](/docs/es/fast-mode) cuando su verificación de disponibilidad, que llama a `api.anthropic.com` directamente en lugar de seguir `ANTHROPIC_BASE_URL`, falla, es interceptada, o se omite por falta de una credencial de Anthropic | Su organización usa modo rápido, y los desarrolladores se autentican con `ANTHROPIC_AUTH_TOKEN` solo, con una clave emitida por puerta de enlace en `ANTHROPIC_API_KEY` o desde un `apiKeyHelper`, o su red bloquea o intercepta solicitudes directas a `api.anthropic.com`; [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) cubre cuál de las dos variables coincide con su configuración |190| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` o `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Restaura [modo rápido](/docs/es/fast-mode) cuando su verificación de disponibilidad, que llama a `api.anthropic.com` directamente en lugar de seguir `ANTHROPIC_BASE_URL`, falla, es interceptada, o se omite por falta de una credencial de Anthropic | Su organización usa modo rápido, y los desarrolladores se autentican con `ANTHROPIC_AUTH_TOKEN` solo, con una clave emitida por puerta de enlace en `ANTHROPIC_API_KEY` o desde un `apiKeyHelper`, o su red bloquea o intercepta solicitudes directas a `api.anthropic.com`; [usar modo rápido detrás de proxies y puertas de enlace LLM](/docs/es/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) cubre cuál de las dos variables coincide con su configuración |

Details

361Algunas claves de aplicación no se descartan cuando son inválidas. Claude Code aplica una reserva más restrictiva hasta que se corrija el valor; la tabla muestra qué aplica para cada clave:361Algunas claves de aplicación no se descartan cuando son inválidas. Claude Code aplica una reserva más restrictiva hasta que se corrija el valor; la tabla muestra qué aplica para cada clave:

362 362 

363| Campo | Comportamiento cuando está presente pero es inválido |363| Campo | Comportamiento cuando está presente pero es inválido |

364| :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |364| :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ningún servidor MCP que los usuarios agreguen se admite. Los servidores que su organización entrega a través de [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) aún se cargan, y los servidores `managed-mcp.json` se cargan según [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated). Una entrada individual inválida se elimina y el subconjunto válido se aplica. |365| `allowedMcpServers` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ningún servidor MCP que los usuarios agreguen se admite. Los servidores que su organización entrega a través de [`managedMcpServers`](/docs/es/settings-reference#managedmcpservers) aún se cargan, y los servidores `managed-mcp.json` se cargan según [Cómo se evalúa un servidor](/docs/es/managed-mcp#how-a-server-is-evaluated). Una entrada individual inválida se elimina y el subconjunto válido se aplica. |

366| `allowedHttpHookUrls` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#allowedhttphookurls) administrada vacía hasta que corrija el valor, por lo que un hook HTTP se ejecuta solo si otro archivo de configuración enumera su URL. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |366| `allowedHttpHookUrls` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#allowedhttphookurls) administrada vacía hasta que corrija el valor, por lo que un hook HTTP se ejecuta solo si otro archivo de configuración enumera su URL. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

367| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |367| `httpHookAllowedEnvVars` | Claude Code aplica una [lista de permitidos](/docs/es/settings-reference#httphookallowedenvvars) administrada vacía hasta que corrija el valor, por lo que una variable de encabezado se interpola solo si otro archivo de configuración la nombra. Si solo una entrada individual es inválida, Claude Code elimina esa entrada y aplica el resto. |

368| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |368| `allowedChannelPlugins` | Claude Code aplica una lista de permitidos vacía hasta que corrija el valor, por lo que ningún plugin de canal pasado a `--channels` se admite. Si solo una entrada individual es inválida, elimina esa entrada y aplica el resto. |

369| `strictKnownMarketplaces` | Se aplica como una lista de permitidos vacía hasta que se corrija el valor, por lo que ninguna [fuente de marketplace](/docs/es/plugin-marketplaces#managed-marketplace-restrictions) se admite. Una entrada individual que es inválida o no se puede aplicar, como una expresión regular `hostPattern` que no se compila, se elimina y el subconjunto válido se aplica. |

369| `allowManagedHooksOnly` | Se trata como `true` hasta que se corrija: se aplican las [restricciones de hook](/docs/es/settings-reference#allowmanagedhooksonly) y, a menos que `disableCommandPluginSources` sea explícitamente `false`, los plugins de origen de comando se desactivan. |370| `allowManagedHooksOnly` | Se trata como `true` hasta que se corrija: se aplican las [restricciones de hook](/docs/es/settings-reference#allowmanagedhooksonly) y, a menos que `disableCommandPluginSources` sea explícitamente `false`, los plugins de origen de comando se desactivan. |

370| `allowManagedMcpServersOnly` | Se trata como `true`. |371| `allowManagedMcpServersOnly` | Se trata como `true`. |

371| `disableCommandPluginSources` | Se trata como `true`, por lo que los plugins de origen de comando permanecen desactivados hasta que se corrija el valor. |372| `disableCommandPluginSources` | Se trata como `true`, por lo que los plugins de origen de comando permanecen desactivados hasta que se corrija el valor. |

373| `disableSideloadFlags` | Se trata como `true` hasta que se corrija el valor, con los efectos enumerados para [`disableSideloadFlags`](/docs/es/settings-reference#disablesideloadflags). |

372| `availableModels` | Se aplica como una lista de permitidos vacía hasta que se corrija, por lo que solo el modelo predeterminado está disponible; una entrada que no es cadena se elimina y el subconjunto válido se aplica. |374| `availableModels` | Se aplica como una lista de permitidos vacía hasta que se corrija, por lo que solo el modelo predeterminado está disponible; una entrada que no es cadena se elimina y el subconjunto válido se aplica. |

373| `enforceAvailableModels` | Se trata como `true`. |375| `enforceAvailableModels` | Se trata como `true`. |

376| `syncClaudeAiPlugins` | Se trata como `false`, por lo que la sincronización de [plugins de claude.ai](/docs/es/settings-reference#syncclaudeaiplugins) está desactivada hasta que se corrija el valor. |

374| `forceLoginOrgUUID` | Ninguna organización puede iniciar sesión hasta que se corrija el valor. |377| `forceLoginOrgUUID` | Ninguna organización puede iniciar sesión hasta que se corrija el valor. |

375| `gatewayInternalNetworks` | Cuando el valor inválido proviene de la fuente administrada más alta en la máquina, `/login` rechaza cada nuevo inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en esa máquina hasta que se corrija el valor. |378| `gatewayInternalNetworks` | Cuando el valor inválido proviene de la fuente administrada más alta en la máquina, `/login` rechaza cada nuevo inicio de sesión de [puerta de enlace en la nube](/docs/es/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) en esa máquina hasta que se corrija el valor. |

376| `crossSessionInbound` | Se trata como `refuse`, el valor más restrictivo, por lo que los [mensajes entre sesiones](/docs/es/cross-session-messaging#control-inbound-messages) entrantes se rechazan hasta que se corrija el valor. El desarrollador ve [una advertencia](/docs/es/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |379| `crossSessionInbound` | Se trata como `refuse`, el valor más restrictivo, por lo que los [mensajes entre sesiones](/docs/es/cross-session-messaging#control-inbound-messages) entrantes se rechazan hasta que se corrija el valor. El desarrollador ve [una advertencia](/docs/es/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

377| `deniedMcpServers` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Un valor completamente inválido se descarta con una advertencia, ya que negar cada servidor bloquearía servidores que la política nunca nombró. |380| `deniedMcpServers` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Un valor completamente inválido se descarta con una advertencia, ya que negar cada servidor bloquearía servidores que la política nunca nombró. |

381| `blockedMarketplaces` | Una entrada individual inválida se elimina y el subconjunto válido se aplica. Una entrada que se analiza pero nunca puede coincidir, como una expresión regular `hostPattern` que no se compila, se mantiene con una advertencia. No bloquea nada hasta que se corrija, pero las [restricciones de marketplace](/docs/es/plugin-marketplaces#managed-marketplace-restrictions) permanecen activas. Un valor completamente inválido se descarta con una advertencia, ya que bloquear cada marketplace bloquearía fuentes que la política nunca nombró. |

378| `sandbox.credentials` | Una entrada inválida recuperable se degrada a `mode: "deny"` con una advertencia; una irrecuperable se elimina; las entradas válidas permanecen aplicadas. Consulte [entradas de credenciales inválidas](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings) |382| `sandbox.credentials` | Una entrada inválida recuperable se degrada a `mode: "deny"` con una advertencia; una irrecuperable se elimina; las entradas válidas permanecen aplicadas. Consulte [entradas de credenciales inválidas](/docs/es/settings-reference#invalid-credential-entries-in-managed-settings) |

379 383 

380`allowedHttpHookUrls` y `httpHookAllowedEnvVars` se fusionan en archivos de configuración, por lo que las entradas en su configuración de usuario, proyecto o local aún se aplican mientras la lista administrada está vacía. Las reservas para esas dos claves y para `allowedChannelPlugins` requieren Claude Code v2.1.267 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida.384`allowedHttpHookUrls` y `httpHookAllowedEnvVars` se fusionan en archivos de configuración, por lo que las entradas en su configuración de usuario, proyecto o local aún se aplican mientras la lista administrada está vacía. Las reservas para esas dos claves y para `allowedChannelPlugins` requieren Claude Code v2.1.267 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida. Las reservas para `strictKnownMarketplaces`, `blockedMarketplaces` y `disableSideloadFlags` requieren Claude Code v2.1.277 o posterior; las versiones anteriores descartan la clave completa cuando su valor o cualquier entrada es inválida.

381 385 

382`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se descarta en lugar de aplicarse.386`requiredMinimumVersion` y `requiredMaximumVersion` fallan abiertos por diseño: un valor inválido se descarta en lugar de aplicarse.

383 387 

memory.md +26 −9

Details

50Trate CLAUDE.md como el lugar donde escribe lo que de otro modo tendría que re-explicar. Agregue contenido cuando:50Trate CLAUDE.md como el lugar donde escribe lo que de otro modo tendría que re-explicar. Agregue contenido cuando:

51 51 

52* Claude comete el mismo error una segunda vez52* Claude comete el mismo error una segunda vez

53* Una revisión de código detecta algo que Claude debería haber sabido sobre esta base de código53* Una revisión de código detecta lo que sí llega al PR que Claude debería haber sabido sobre esta base de código

54* Usted escribe la misma corrección o aclaración en el chat que escribió en la sesión anterior54* Usted escribe la misma corrección o aclaración en el chat que escribió en la sesión anterior

55* Un nuevo compañero de equipo necesitaría el mismo contexto para ser productivo55* Un nuevo compañero de equipo necesitaría el mismo contexto para ser productivo

56 56 


82<Tip>82<Tip>

83 Ejecute `/init` para generar un CLAUDE.md inicial automáticamente. Claude analiza su base de código y crea un archivo con comandos de compilación, instrucciones de prueba y convenciones de proyecto que descubre. Si ya existe un CLAUDE.md, `/init` sugiere mejoras en lugar de sobrescribirlo. Refine desde allí con instrucciones que Claude no descubriría por sí solo.83 Ejecute `/init` para generar un CLAUDE.md inicial automáticamente. Claude analiza su base de código y crea un archivo con comandos de compilación, instrucciones de prueba y convenciones de proyecto que descubre. Si ya existe un CLAUDE.md, `/init` sugiere mejoras en lugar de sobrescribirlo. Refine desde allí con instrucciones que Claude no descubriría por sí solo.

84 84 

85 Configure `CLAUDE_CODE_NEW_INIT=1` para habilitar un flujo interactivo de múltiples fases. `/init` pregunta qué artefactos configurar: archivos CLAUDE.md, skills y hooks. Luego explora su base de código con un subagente, llena los vacíos mediante preguntas de seguimiento y presenta una propuesta revisable antes de escribir cualquier archivo.85 Para un flujo interactivo de múltiples fases en su lugar, configure la variable de entorno `CLAUDE_CODE_NEW_INIT` a `1` antes de ejecutar `/init`. Configúrela en su shell o en el bloque `env` de un archivo de configuración, como se muestra en [Establecer variables de entorno](/docs/es/env-vars#set-environment-variables). Con ella configurada, `/init` pregunta qué artefactos configurar: archivos CLAUDE.md, skills y hooks. Luego explora su base de código con un subagente, llena los vacíos mediante preguntas de seguimiento y presenta una propuesta revisable antes de escribir cualquier archivo. La variable solo cambia cómo se ejecuta `/init`, por lo que puede dejarla configurada.

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

166```166```

167 167 

168La forma en línea configura la variable para ese único lanzamiento en Bash o Zsh. Para mantenerla activada para cada sesión, agréguela al bloque `env` en `~/.claude/settings.json` como se muestra en [Establecer variables de entorno](/docs/es/env-vars#set-environment-variables).

169 

168Esto carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md` desde el directorio adicional. `CLAUDE.local.md` se omite si excluye `local` de [`--setting-sources`](/docs/es/cli-reference).170Esto carga `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md` y `CLAUDE.local.md` desde el directorio adicional. `CLAUDE.local.md` se omite si excluye `local` de [`--setting-sources`](/docs/es/cli-reference).

169 171 

170<h3 id="organize-rules-with-claude/rules/">172<h3 id="organize-rules-with-claude/rules/">


244 246 

245La sintaxis Glob trata `[` como el inicio de una expresión de corchetes como `[abc]`. Un patrón con un `[` que no se puede leer como una expresión de corchetes, como `photos [2024/**`, es inválido: no coincide con nada, y los otros patrones de la regla siguen funcionando. Para hacer coincidir un `[` literal en un nombre de archivo, escápelo como `photos \[2024/**`. Antes de v2.1.207, un patrón inválido hacía que la herramienta Read fallara para cada archivo contra el cual se evaluaba la regla, en lugar de no coincidir con nada.247La sintaxis Glob trata `[` como el inicio de una expresión de corchetes como `[abc]`. Un patrón con un `[` que no se puede leer como una expresión de corchetes, como `photos [2024/**`, es inválido: no coincide con nada, y los otros patrones de la regla siguen funcionando. Para hacer coincidir un `[` literal en un nombre de archivo, escápelo como `photos \[2024/**`. Antes de v2.1.207, un patrón inválido hacía que la herramienta Read fallara para cada archivo contra el cual se evaluaba la regla, en lugar de no coincidir con nada.

246 248 

249<h4 id="rules-frontmatter-reference">

250 Referencia de frontmatter de reglas

251</h4>

252 

253Configure una regla con [frontmatter](/docs/es/glossary#frontmatter) YAML entre marcadores `---` en la parte superior del archivo. `paths` es el único campo que Claude Code lee de una regla; cualquier otro campo se ignora sin un error. Claude Code elimina el frontmatter antes de cargar la regla en contexto.

254 

255| Campo | Requerido | Descripción |

256| :------ | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

257| `paths` | No | Patrones glob que [limitan la regla a archivos coincidentes](#path-specific-rules). Acepta una lista YAML o una cadena separada por comas |

258 

259Si el YAML entre los marcadores no se analiza, Claude Code ignora el frontmatter y carga la regla como si no tuviera `paths`. Ejecute `claude --debug` para ver el error de análisis.

260 

247<h4 id="share-rules-across-projects-with-symlinks">261<h4 id="share-rules-across-projects-with-symlinks">

248 Comparta reglas entre proyectos con enlaces simbólicos262 Comparta reglas entre proyectos con enlaces simbólicos

249</h4>263</h4>

250 264 

251El directorio `.claude/rules/` admite enlaces simbólicos, por lo que puede mantener un conjunto compartido de reglas y vincularlas en múltiples proyectos. Los enlaces simbólicos circulares se detectan y se manejan correctamente.265El directorio `.claude/rules/` admite enlaces simbólicos, por lo que puede mantener un conjunto compartido de reglas y vincularlas en múltiples proyectos. Los enlaces simbólicos circulares se detectan y se manejan correctamente.

252 266 

253Claude Code trata un enlace simbólico cuyo destino está fuera de su directorio de trabajo como una [importación externa](#import-additional-files). Las reglas vinculadas no se cargan hasta que apruebe importaciones externas para el proyecto, y después de eso solo se cargan las que no tienen un [campo `paths`](#path-specific-rules). Claude Code solo solicita esa aprobación cuando un archivo de memoria de proyecto importa un archivo fuera del directorio de trabajo con `@path`, no solo para enlaces simbólicos. Para cargar reglas compartidas sin esa aprobación, manténgalas en [`~/.claude/rules/`](#user-level-rules), donde se aplican a cada proyecto en su máquina.267Claude Code trata un enlace simbólico cuyo destino está fuera de su directorio de trabajo como una [importación externa](#import-additional-files). Las reglas vinculadas no se cargan hasta que apruebe importaciones externas para el proyecto, y después de eso solo se cargan las que no tienen un [campo `paths`](#path-specific-rules). Claude Code solo solicita esa aprobación cuando un archivo de memoria de proyecto importa un archivo fuera del directorio de trabajo con `@path`, no para enlaces simbólicos solos. Para cargar reglas compartidas sin esa aprobación, manténgalas en [`~/.claude/rules/`](#user-level-rules), donde se aplican a cada proyecto en su máquina.

254 268 

255Este ejemplo vincula tanto un directorio compartido como un archivo individual:269Este ejemplo vincula tanto un directorio compartido como un archivo individual:

256 270 


271└── workflows.md # Sus flujos de trabajo preferidos285└── workflows.md # Sus flujos de trabajo preferidos

272```286```

273 287 

274Las reglas a nivel de usuario se cargan antes que las reglas de proyecto, dando a las reglas de proyecto mayor prioridad.288Claude Code carga reglas a nivel de usuario antes que reglas de proyecto, por lo que una regla de proyecto aparece más tarde en el contexto de Claude que una regla de usuario. Ninguno de los dos conjuntos anula al otro: si una regla de usuario y una regla de proyecto entran en conflicto, Claude puede seguir cualquiera de ellas, por lo que mantenga los dos consistentes.

275 289 

276<h3 id="manage-claude-md-for-large-teams">290<h3 id="manage-claude-md-for-large-teams">

277 Administre CLAUDE.md para equipos grandes291 Administre CLAUDE.md para equipos grandes


424* Está en una versión de Claude Code anterior a v2.1.277438* Está en una versión de Claude Code anterior a v2.1.277

425* Su sesión no [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching), por ejemplo porque usa Amazon Bedrock u otro proveedor de terceros, o deshabilitó la telemetría. La sección vinculada tiene la lista completa439* Su sesión no [obtiene banderas de características de Anthropic](/docs/es/env-vars#features-that-need-feature-flag-fetching), por ejemplo porque usa Amazon Bedrock u otro proveedor de terceros, o deshabilitó la telemetría. La sección vinculada tiene la lista completa

426* Es su [primera sesión después de instalar o actualizar](/docs/es/env-vars#first-session-after-an-install-or-upgrade) a una versión con soporte de `AGENTS.md`. Claude lee `AGENTS.md` desde su siguiente sesión440* Es su [primera sesión después de instalar o actualizar](/docs/es/env-vars#first-session-after-an-install-or-upgrade) a una versión con soporte de `AGENTS.md`. Claude lee `AGENTS.md` desde su siguiente sesión

427* Usted u su organización establecieron [`disableAllHooks`](/docs/es/settings-reference#disableallhooks) o [`allowManagedHooksOnly`](/docs/es/settings-reference#allowmanagedhooksonly), o deshabilitó el plugin `agents-md` integrado en `/plugin`441* Usted deshabilitó el plugin `agents-md` integrado en `/plugin`

428 442 

429Para darle a Claude su `AGENTS.md` en estas sesiones, [impórtelo desde un `CLAUDE.md`](#share-one-file-with-other-coding-tools).443Para darle a Claude su `AGENTS.md` en estas sesiones, [impórtelo desde un `CLAUDE.md`](#share-one-file-with-other-coding-tools).

430 444 


435Un `AGENTS.md` que Claude lee a través de la configuración **Project instructions** difiere de un `CLAUDE.md` en estos lugares:449Un `AGENTS.md` que Claude lee a través de la configuración **Project instructions** difiere de un `CLAUDE.md` en estos lugares:

436 450 

437| | `CLAUDE.md` | `AGENTS.md` leído a través de la configuración |451| | `CLAUDE.md` | `AGENTS.md` leído a través de la configuración |

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

439| `/memory` y la lista **Memory files** en `/context` | Listado | No listado. Para confirmar que Claude lo leyó, busque la [línea `AGENTS.md loaded`](#when-claude-code-reads-agents-md) bajo el valor predeterminado, o pregúntele a Claude qué dicen sus instrucciones de proyecto |

440| [Hooks `InstructionsLoaded`](/docs/es/hooks#instructionsloaded) | Se activan | No se activan. Se activan como de costumbre para un `AGENTS.md` que un `CLAUDE.md` importa o vincula simbólicamente |453| [Hooks `InstructionsLoaded`](/docs/es/hooks#instructionsloaded) | Se activan | No se activan. Se activan como de costumbre para un `AGENTS.md` que un `CLAUDE.md` importa o vincula simbólicamente |

441| Directorios que agrega con `--add-dir` mientras [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) está establecido | Su `CLAUDE.md` se carga | Su `AGENTS.md` no se carga |454| Directorios que agrega con `--add-dir` mientras [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) está establecido | Su `CLAUDE.md` se carga | Su `AGENTS.md` no se carga |

442| Una importación `@path` de un archivo fuera de su directorio de trabajo | Claude Code le pide que apruebe [importaciones externas](#import-additional-files) | Se carga solo si ya aprobó importaciones externas para este proyecto, sin solicitud |455| Una importación `@path` de un archivo fuera de su directorio de trabajo | Claude Code le pide que apruebe [importaciones externas](#import-additional-files) | Se carga solo si ya aprobó importaciones externas para este proyecto, sin solicitud |


604 617 

605Para depurar:618Para depurar:

606 619 

607* Ejecute `/context` y verifique la lista bajo **Memory files** para verificar que sus archivos CLAUDE.md y CLAUDE.local.md se cargaron. Si un archivo `CLAUDE.md` no aparece allí, Claude no puede verlo. Un archivo `AGENTS.md` aparece allí solo cuando un `CLAUDE.md` lo importa, no cuando Claude [lo lee directamente](#where-agents-md-differs-from-claude-md). Use `/memory` para abrir y editar los archivos.620* Ejecute `/context` y verifique la lista bajo **Memory files** para verificar que sus archivos CLAUDE.md y CLAUDE.local.md se cargaron. Si un archivo `CLAUDE.md` no aparece allí, Claude no puede verlo. Use `/memory` para abrir y editar los archivos.

608* Verifique que el CLAUDE.md relevante esté en una ubicación que se cargue para su sesión (consulte [Elija dónde colocar los archivos CLAUDE.md](#choose-where-to-put-claude-md-files)).621* Verifique que el CLAUDE.md relevante esté en una ubicación que se cargue para su sesión (consulte [Elija dónde colocar los archivos CLAUDE.md](#choose-where-to-put-claude-md-files)).

609* Haga instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".622* Haga instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".

610* Busque instrucciones conflictivas en archivos CLAUDE.md. Si dos archivos dan orientación diferente para el mismo comportamiento, Claude puede elegir uno arbitrariamente.623* Busque instrucciones conflictivas en archivos CLAUDE.md. Si dos archivos dan orientación diferente para el mismo comportamiento, Claude puede elegir uno arbitrariamente.


6283. Verifique si su sesión es una que [no puede cargar `AGENTS.md`](#when-agents-md-support-is-unavailable), como una sesión en un proveedor de terceros o con telemetría deshabilitada.6413. Verifique si su sesión es una que [no puede cargar `AGENTS.md`](#when-agents-md-support-is-unavailable), como una sesión en un proveedor de terceros o con telemetría deshabilitada.

6294. Escriba `/config` en su sesión para abrir el panel de configuración y confirme que **Project instructions** no está establecido en `claude-md` o `managed-only`. Si no ve la configuración allí en absoluto, su sesión es una que [no puede cargar `AGENTS.md`](#when-agents-md-support-is-unavailable).6424. Escriba `/config` en su sesión para abrir el panel de configuración y confirme que **Project instructions** no está establecido en `claude-md` o `managed-only`. Si no ve la configuración allí en absoluto, su sesión es una que [no puede cargar `AGENTS.md`](#when-agents-md-support-is-unavailable).

630 643 

631`AGENTS.md` no aparece en `/memory` o `/context` cuando Claude lo lee directamente, así que busque la línea `AGENTS.md loaded` o pregúntele a Claude qué dicen sus instrucciones de proyecto en su lugar. Si desea mantener el `CLAUDE.md` que encontró, o su sesión no puede cargar `AGENTS.md`, [agregue un `CLAUDE.md` junto a su `AGENTS.md` que lo importe](#share-one-file-with-other-coding-tools).644Para verificar si Claude leyó su `AGENTS.md`, ejecute `/memory` y busque su ruta en la lista.

645 

646Antes de v2.1.280, `/memory` y `/context` no listaban un `AGENTS.md` que Claude leyera directamente. En esas versiones, pregúntele a Claude qué dicen sus instrucciones de proyecto en su lugar.

647 

648Si desea mantener el `CLAUDE.md` que encontró, o su sesión no puede cargar `AGENTS.md`, [agregue un `CLAUDE.md` junto a su `AGENTS.md` que lo importe](#share-one-file-with-other-coding-tools).

632 649 

633<h3 id="i-don’t-know-what-auto-memory-saved">650<h3 id="i-don’t-know-what-auto-memory-saved">

634 No sé qué guardó auto memory651 No sé qué guardó auto memory

model-config.md +41 −43

Details

47 47 

48| Proveedor | `opus` | `sonnet` |48| Proveedor | `opus` | `sonnet` |

49| :--------------------------------------------------- | :------- | :--------- |49| :--------------------------------------------------- | :------- | :--------- |

50| API de Anthropic | Opus 5 | Sonnet 5 |50| API de Anthropic | Opus 5.5 | Sonnet 5 |

51| [Claude Platform on AWS](/docs/es/claude-platform-on-aws) | Opus 5 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/es/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock, Agent Platform de Google Cloud | Opus 5 | Sonnet 4.5 |52| Amazon Bedrock, Agent Platform de Google Cloud | Opus 5.5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55<span id="fable-alias-resolution" />55<span id="fable-alias-resolution" />


60 60 

61Donde un alias se resuelve a un modelo más antiguo, los modelos más nuevos están disponibles seleccionando explícitamente el nombre de modelo completo o estableciendo `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.61Donde un alias se resuelve a un modelo más antiguo, los modelos más nuevos están disponibles seleccionando explícitamente el nombre de modelo completo o estableciendo `ANTHROPIC_DEFAULT_OPUS_MODEL` o `ANTHROPIC_DEFAULT_SONNET_MODEL`.

62 62 

63Antes de v2.1.219, `opus` se resolvía a Opus 4.8 en la API de Anthropic desde v2.1.154, y en Claude Platform on AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `opus` se resolvía a Opus 4.7 en Claude Platform on AWS y a Opus 4.6 en Amazon Bedrock y Agent Platform de Google Cloud.63Antes de v2.1.280, `opus` se resolvía a Opus 5 en la API de Anthropic, Claude Platform on AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.219. Antes de v2.1.219, `opus` se resolvía a Opus 4.8 en la API de Anthropic desde v2.1.154, y en Claude Platform on AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `opus` se resolvía a Opus 4.7 en Claude Platform on AWS y a Opus 4.6 en Amazon Bedrock y Agent Platform de Google Cloud.

64 64 

65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Los alias apuntan a la versión recomendada para su proveedor y se actualizan con el tiempo. Para fijar una versión específica, use el nombre de modelo completo, por ejemplo `claude-opus-5-5`, o establezca la variable de entorno correspondiente como `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Opus 5 requiere Claude Code v2.1.219 o posterior. Sonnet 5 requiere v2.1.197 o posterior. Opus 4.8 requiere v2.1.154 o posterior. Ejecute `claude update` para actualizar.68 Opus 5.5 requiere Claude Code v2.1.280 o posterior. Opus 5 requiere v2.1.219 o posterior. Sonnet 5 requiere v2.1.197 o posterior. Ejecute `claude update` para actualizar.

69</Note>69</Note>

70 70 

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


94 Fable 5.1 requiere Claude Code v2.1.257 o posterior. Si una solicitud de una versión anterior falla, consulte [Claude Code does not support this model](/docs/es/errors#claude-code-does-not-support-this-model). Ejecute `claude update` para actualizar. Para disponibilidad bajo retención de datos cero, consulte [Model availability under ZDR](/docs/es/zero-data-retention#model-availability-under-zdr).94 Fable 5.1 requiere Claude Code v2.1.257 o posterior. Si una solicitud de una versión anterior falla, consulte [Claude Code does not support this model](/docs/es/errors#claude-code-does-not-support-this-model). Ejecute `claude update` para actualizar. Para disponibilidad bajo retención de datos cero, consulte [Model availability under ZDR](/docs/es/zero-data-retention#model-availability-under-zdr).

95</Note>95</Note>

96 96 

97En la API de Anthropic, el selector `/model` enumera un modelo Fable solo después de que el servidor lo informe como disponible para su organización. Cuando escribe `/model fable` o un ID de modelo Fable, Claude Code verifica la disponibilidad directamente con el servidor, por lo que una selección escrita puede tener éxito incluso cuando el selector no enumera la entrada.97En la API de Anthropic, un modelo Fable aparece en el selector `/model` a menos que [`availableModels`](#restrict-model-selection) o [restricciones de modelo de organización](#organization-model-restrictions) lo excluyan. Cuando su organización no puede usar Fable en absoluto, por ejemplo bajo [retención de datos cero](/docs/es/zero-data-retention#model-availability-under-zdr), la fila permanece en el selector atenuada, con una nota sobre por qué.

98 98 

99<h4 id="fable-and-usage-credits">99<h4 id="fable-and-usage-credits">

100 Fable y créditos de uso100 Fable y créditos de uso


138 138 

139Escribir `/model <name>` directamente se comporta como `Enter`. Para cambiar solo para esta sesión, abra el selector con `/model` y presione `s` en la fila del modelo.139Escribir `/model <name>` directamente se comporta como `Enter`. Para cambiar solo para esta sesión, abra el selector con `/model` y presione `s` en la fila del modelo.

140 140 

141Si cambia modelos con `/model`, el cambio también llega a [subagentes que heredan el modelo de la conversación principal](/docs/es/sub-agents#choose-a-model), porque Claude Code resuelve su modelo desde el que su sesión está usando cuando Claude los inicia. Cambie a Opus antes de que Claude delegue investigación o ejecuciones de prueba a uno de ellos, y ese trabajo se ejecuta en Opus también. Para mantener un subagente personalizado en un modelo más pequeño, establezca `model` en su definición.

142 

141Si establece un modelo con `/model` en [modo no interactivo](/docs/es/headless), con la bandera `-p`, su elección se aplica solo a la sesión actual y no se guarda como predeterminado; `/model` en ese modo requiere Claude Code v2.1.205 o posterior. La configuración del proyecto y administrada aún tienen precedencia y se reaplicarán en el próximo inicio. Un [modelo predeterminado de organización](#organization-default-model) que su administrador ha configurado para anular la selección del usuario también se reaplicará en el próximo inicio.143Si establece un modelo con `/model` en [modo no interactivo](/docs/es/headless), con la bandera `-p`, su elección se aplica solo a la sesión actual y no se guarda como predeterminado; `/model` en ese modo requiere Claude Code v2.1.205 o posterior. La configuración del proyecto y administrada aún tienen precedencia y se reaplicarán en el próximo inicio. Un [modelo predeterminado de organización](#organization-default-model) que su administrador ha configurado para anular la selección del usuario también se reaplicará en el próximo inicio.

142 144 

143En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.145En v2.1.144 a v2.1.152, `/model` se aplicaba solo a la sesión actual y `d` en el selector guardaba un predeterminado.


443 445 

444El comportamiento de `default` depende de tu tipo de cuenta:446El comportamiento de `default` depende de tu tipo de cuenta:

445 447 

446* **Max, Team Premium, Enterprise y Anthropic API**: por defecto Opus 5448* **Pro, Max, Team, Enterprise y Anthropic API**: por defecto Opus 5.5

447* **Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud**: por defecto Opus 5449* **Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud**: por defecto Opus 5.5

448* **Pro y Team Standard**: por defecto Sonnet 5

449* **Microsoft Foundry**: por defecto Sonnet 4.5450* **Microsoft Foundry**: por defecto Sonnet 4.5

450 451 

451Antes de v2.1.219, `default` se resolvía a Opus 4.8 en Anthropic API, Max, Team Premium y Enterprise de pago por uso desde v2.1.154, y en Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `default` se resolvía a Opus 4.7 en Claude Platform en AWS y a Sonnet 4.5 en Amazon Bedrock y Agent Platform de Google Cloud.452Antes de v2.1.280, `default` se resolvía a Sonnet 5 en Pro y Team Standard, y a Opus 5 en Max, Team Premium, Enterprise, Anthropic API, Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.219. Antes de v2.1.219, `default` se resolvía a Opus 4.8 en Anthropic API, Max, Team Premium y Enterprise de pago por uso desde v2.1.154, y en Claude Platform en AWS, Amazon Bedrock y Agent Platform de Google Cloud desde v2.1.207. Antes de v2.1.207, `default` se resolvía a Opus 4.7 en Claude Platform en AWS y a Sonnet 4.5 en Amazon Bedrock y Agent Platform de Google Cloud.

452 453 

453Cuando un administrador ha establecido un [modelo predeterminado de la organización](#organization-default-model), `default` se resuelve a ese modelo en lugar del predeterminado del tipo de cuenta anterior. Requiere Claude Code v2.1.196 o posterior. `default` también puede resolverse al modelo que estableces con [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), bajo las condiciones enumeradas en su sección.454Cuando un administrador ha establecido un [modelo predeterminado de la organización](#organization-default-model), `default` se resuelve a ese modelo en lugar del predeterminado del tipo de cuenta anterior. Requiere Claude Code v2.1.196 o posterior. `default` también puede resolverse al modelo que estableces con [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), bajo las condiciones enumeradas en su sección.

454 455 


462 463 

463El alias del modelo `opusplan` proporciona un enfoque híbrido automatizado:464El alias del modelo `opusplan` proporciona un enfoque híbrido automatizado:

464 465 

465* **En modo plan**: utiliza `opus` para razonamiento complejo y decisiones de arquitectura466* **En plan mode**: utiliza `opus` para razonamiento complejo y decisiones de arquitectura

466* **En modo ejecución**: cambia automáticamente a `sonnet` para generación de código e implementación467* **En execution mode**: cambia automáticamente a `sonnet` para generación de código e implementación

467 468 

468Esto combina el razonamiento de Opus para la planificación con la eficiencia de Sonnet para la ejecución.469Esto combina el razonamiento de Opus para la planificación con la eficiencia de Sonnet para la ejecución.

469 470 

470La fase Opus del modo plan utiliza la misma ventana de contexto que la configuración del modelo `opus`, y la fase de ejecución utiliza la misma ventana que `sonnet`. Cuando `opus` y `sonnet` se resuelven a modelos que se ejecutan con la [ventana de contexto de 1M](#extended-context) por defecto, como lo hacen los modelos actuales en Anthropic API, ambas fases se ejecutan con ella. Para solicitar contexto de 1M para ambas fases donde no lo hacen, [establece el modelo](#setting-your-model) a `opusplan[1m]`, por ejemplo con `/model opusplan[1m]`. Establecerlo con `/model` requiere Claude Code v2.1.265 o posterior; en versiones anteriores, utiliza la bandera `--model` o la configuración `model` en su lugar.471La fase Opus del plan mode utiliza la misma ventana de contexto que la configuración del modelo `opus`, y la fase de ejecución utiliza la misma ventana que `sonnet`. Cuando `opus` y `sonnet` se resuelven a modelos que se ejecutan con la [ventana de contexto de 1M](#extended-context) por defecto, como lo hacen los modelos actuales en Anthropic API, ambas fases se ejecutan con ella. Para solicitar contexto de 1M para ambas fases donde no lo hacen, [establece el modelo](#setting-your-model) a `opusplan[1m]`, por ejemplo con `/model opusplan[1m]`. Establecerlo con `/model` requiere Claude Code v2.1.265 o posterior; en versiones anteriores, utiliza la bandera `--model` o la configuración `model` en su lugar.

471 472 

472Cuando [`availableModels`](#restrict-model-selection) excluye el Opus más nuevo pero permite una versión anterior, por ejemplo `["sonnet", "claude-opus-4-6"]`, `opusplan` utiliza el Opus más nuevo permitido para la planificación y se mantiene solo en Sonnet cuando se excluye cada Opus. Una sesión de Haiku que normalmente se actualizaría a Sonnet en modo plan utiliza de manera similar el Sonnet más nuevo permitido, y se mantiene solo en Haiku cuando se excluye cada Sonnet. Antes de v2.1.205, el modo plan se mantenía en el modelo de la sesión siempre que se excluyera la versión más nueva de la familia de actualización, incluso cuando la lista de permitidos permitía una anterior.473Cuando [`availableModels`](#restrict-model-selection) excluye el Opus más nuevo pero permite una versión anterior, por ejemplo `["sonnet", "claude-opus-4-6"]`, `opusplan` utiliza el Opus más nuevo permitido para la planificación y se mantiene solo en Sonnet cuando se excluye cada Opus. Una sesión de Haiku que normalmente se actualizaría a Sonnet en plan mode utiliza de manera similar el Sonnet más nuevo permitido, y se mantiene solo en Haiku cuando se excluye cada Sonnet. Antes de v2.1.205, el plan mode se mantenía en el modelo de la sesión siempre que se excluyera la versión más nueva de la familia de actualización, incluso cuando la lista de permitidos permitía una anterior.

473 474 

474La sustitución de una versión anterior permitida se aplica en Anthropic API y [Claude Platform en AWS](/docs/es/claude-platform-on-aws). En Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry y Mantle, cuyas implementaciones utilizan ID de modelo específicos del proveedor, el modo plan se mantiene en el modelo de la sesión siempre que se excluya el modelo de actualización.475La sustitución de una versión anterior permitida se aplica en Anthropic API y [Claude Platform en AWS](/docs/es/claude-platform-on-aws). En Amazon Bedrock, Agent Platform de Google Cloud, Microsoft Foundry y Mantle, cuyas implementaciones utilizan ID de modelo específicos del proveedor, el plan mode se mantiene en el modelo de la sesión siempre que se excluya el modelo de actualización.

475 476 

476Para un enfoque híbrido donde Claude decide a mitad de la tarea cuándo consultar un segundo modelo en lugar de cambiar en el límite del plan, consulta la [herramienta advisor](/docs/es/advisor).477Para un enfoque híbrido donde Claude decide a mitad de la tarea cuándo consultar un segundo modelo en lugar de cambiar en el límite del plan, consulta la [herramienta advisor](/docs/es/advisor).

477 478 


512 Respaldo automático de modelo513 Respaldo automático de modelo

513</h3>514</h3>

514 515 

515Esta sección cubre el respaldo basado en contenido de modelos Fable y Opus 5. Para respaldo basado en disponibilidad cuando un modelo está sobrecargado o no disponible, consulta [Cadenas de modelos de respaldo](#fallback-model-chains).516Esta sección cubre el respaldo basado en contenido de modelos Fable, Opus 5.5 y Opus 5. Para respaldo basado en disponibilidad cuando un modelo está sobrecargado o no disponible, consulta [Cadenas de modelos de respaldo](#fallback-model-chains).

516 517 

517Los modelos Fable y Opus 5 se ejecutan con clasificadores de seguridad, que con mayor frecuencia marcan contenido de ciberseguridad y biología. Cuando un clasificador marca una solicitud y la categoría marcada tiene un modelo de respaldo, Claude Code vuelve a ejecutar la solicitud en ese modelo y muestra un aviso en la transcripción. Para esas dos categorías, el modelo de respaldo depende de qué modelo rechazó:518Los modelos Fable, Opus 5.5 y Opus 5 se ejecutan con clasificadores de seguridad, que con mayor frecuencia marcan contenido de ciberseguridad y biología. Cuando un clasificador marca una solicitud y la categoría marcada tiene un modelo de respaldo, Claude Code vuelve a ejecutar la solicitud en ese modelo y muestra un aviso en la transcripción. Para esas dos categorías, el modelo de respaldo depende de qué modelo rechazó:

518 519 

519* **Fable 5.1 y Fable 5**: las solicitudes marcadas por biología se vuelven a ejecutar en Opus 5, y las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8.520* **Fable 5.1, Fable 5 y Opus 5.5**: las solicitudes marcadas por biología se vuelven a ejecutar en Opus 5, y las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8.

520* **Opus 5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutar en Opus 4.8. Las solicitudes marcadas por biología terminan con un rechazo en su lugar, porque Opus 5 ejecuta sus propios clasificadores de biología sin modelo de respaldo.521* **Opus 5**: las solicitudes marcadas por ciberseguridad se vuelven a ejecutan en Opus 4.8. Las solicitudes marcadas por biología terminan con un rechazo en su lugar, porque Opus 5 ejecuta sus propios clasificadores de biología sin modelo de respaldo.

521 522 

522En Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, Claude Code resuelve estos objetivos a través de tu implementación en su lugar, y si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las categorías que tienen un respaldo se vuelven a ejecutar en el modelo fijado; consulta [Habilitar respaldo en Bedrock, Agent Platform y Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).523En Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry, Claude Code resuelve estos objetivos a través de tu implementación en su lugar, y si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las categorías que tienen un respaldo se vuelven a ejecutan en el modelo fijado; consulta [Habilitar respaldo en Bedrock, Agent Platform y Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).

523 524 

524Después de un respaldo, la sesión continúa en el modelo de respaldo. Para volver a tu modelo original, ejecuta [`/model`](#setting-your-model).525Después de un respaldo, la sesión continúa en el modelo de respaldo. Para volver a tu modelo original, ejecuta [`/model`](#setting-your-model).

525 526 


555 556 

556En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar ambos modelos involucrados:557En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), los ID de modelo son específicos del proveedor, por lo que el respaldo automático solo funciona cuando Claude Code puede identificar ambos modelos involucrados:

557 558 

558* Claude Code debe reconocer el modelo actual como una fuente de respaldo. Fable 5.1 y Fable 5 se reconocen cuando el ID del modelo contiene `claude-fable-5`, coincide con el valor de `ANTHROPIC_DEFAULT_FABLE_MODEL`, o se asigna con [`modelOverrides`](#override-model-ids-per-version). Opus 5 se reconoce por su ID de modelo del proveedor o una asignación de [`modelOverrides`](#override-model-ids-per-version).559* Claude Code debe reconocer el modelo actual como una fuente de respaldo. Fable 5.1 y Fable 5 se reconocen cuando el ID del modelo contiene `claude-fable-5`, coincide con el valor de `ANTHROPIC_DEFAULT_FABLE_MODEL`, o se asigna con [`modelOverrides`](#override-model-ids-per-version). Opus 5.5 y Opus 5 se reconocen por su ID de modelo del proveedor o una asignación de [`modelOverrides`](#override-model-ids-per-version).

559* El modelo de respaldo debe resolverse en tu implementación. Si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las solicitudes marcadas se vuelven a ejecutan en ese modelo para cada categoría que tiene un respaldo; un marcado de biología en Opus 5 aún termina con un rechazo. Si no lo estableces, las solicitudes marcadas por ciberseguridad se vuelven a ejecutan en una entrada de Opus 4.8 en la lista de modelos del proveedor, y las solicitudes marcadas por biología de un modelo Fable en una entrada de Opus 5.560* El modelo de respaldo debe resolverse en tu implementación. Si estableces `ANTHROPIC_DEFAULT_OPUS_MODEL`, las solicitudes marcadas se vuelven a ejecutan en ese modelo para cada categoría que tiene un respaldo; un marcado de biología en Opus 5 aún termina con un rechazo. Si no lo estableces, las solicitudes marcadas por ciberseguridad se vuelven a ejecutan en una entrada de Opus 4.8 en la lista de modelos del proveedor, y las solicitudes marcadas por biología de un modelo Fable o Opus 5.5 en una entrada de Opus 5.

560 561 

561Si alguno de los modelos no se puede identificar, Claude Code no cambia automáticamente. La solicitud marcada termina con un mensaje de rechazo, y puedes cambiar modelos con [`/model`](#setting-your-model) e intentar nuevamente. Establecer `ANTHROPIC_DEFAULT_FABLE_MODEL` a tu ID de modelo Fable habilita el reconocimiento de Fable. Establecer `ANTHROPIC_DEFAULT_OPUS_MODEL` a un ID de modelo Opus proporciona a las categorías marcadas un objetivo de respaldo, a menos que el pin nombre un modelo fuera de la familia Opus o el modelo que rechazó; entonces Claude Code no cambia y el rechazo se mantiene.562Si alguno de los modelos no se puede identificar, Claude Code no cambia automáticamente. La solicitud marcada termina con un mensaje de rechazo, y puedes cambiar modelos con [`/model`](#setting-your-model) e intentar nuevamente. Establecer `ANTHROPIC_DEFAULT_FABLE_MODEL` a tu ID de modelo Fable habilita el reconocimiento de Fable. Establecer `ANTHROPIC_DEFAULT_OPUS_MODEL` a un ID de modelo Opus proporciona a las categorías marcadas un objetivo de respaldo, a menos que el pin nombre un modelo fuera de la familia Opus o el modelo que rechazó; entonces Claude Code no cambia y el rechazo se mantiene.

562 563 


564 Cargas de trabajo de investigación de seguridad y biología565 Cargas de trabajo de investigación de seguridad y biología

565</h4>566</h4>

566 567 

567Las cargas de trabajo en seguridad ofensiva o biología, incluidas pruebas de penetración, ejercicios Capture the Flag (CTF) y bases de código adyacentes a biología, desencadenan respaldo frecuentemente, a menudo en la primera solicitud. Para trabajo sustancial de biología en Fable 5.1 o Fable 5, Claude Code mueve la sesión a Opus 5 en la primera solicitud marcada, y las solicitudes posteriores marcadas por biología terminan en rechazos allí, porque Opus 5 no tiene respaldo de biología. En Opus 5, obtienes esos rechazos desde la primera solicitud marcada.568Las cargas de trabajo en seguridad ofensiva o biología, incluidas pruebas de penetración, ejercicios Capture the Flag (CTF) y bases de código adyacentes a biología, desencadenan respaldo frecuentemente, a menudo en la primera solicitud. Para trabajo sustancial de biología en Fable 5.1, Fable 5 u Opus 5.5, Claude Code mueve la sesión a Opus 5 en la primera solicitud marcada, y las solicitudes posteriores marcadas por biología terminan en rechazos allí, porque Opus 5 no tiene respaldo de biología. En Opus 5, obtienes esos rechazos desde la primera solicitud marcada.

568 569 

569Este es el enrutamiento esperado para estos dominios, no un marcado de cuenta. Si tu organización necesita capacidad de clase Fable para este trabajo, pregunta a tu equipo de cuenta de Anthropic sobre programas de acceso de confianza.570Este es el enrutamiento esperado para estos dominios, no un marcado de cuenta. Si tu organización necesita capacidad de clase Fable para este trabajo, pregunta a tu equipo de cuenta de Anthropic sobre programas de acceso de confianza.

570 571 


577Los niveles de esfuerzo disponibles dependen del modelo. Los modelos no enumerados aquí no admiten esfuerzo:578Los niveles de esfuerzo disponibles dependen del modelo. Los modelos no enumerados aquí no admiten esfuerzo:

578 579 

579| Modelo | Niveles |580| Modelo | Niveles |

580| :------------------------------------ | :-------------------------------------- |581| :---------------------------------------------- | :-------------------------------------- |

581| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |582| Fable 5.1 y Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

582| Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |583| Opus 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

583| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |584| Opus 4.6 y Sonnet 4.6 | `low`, `medium`, `high`, `max` |

584 585 

585Si estableces un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableces. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Tu organización o tu propia configuración también pueden limitar los niveles que ofrece un modelo; consulta [Límites de esfuerzo de la organización](#organization-effort-limits).586Si estableces un nivel que el modelo activo no admite, Claude Code retrocede al nivel más alto admitido en o por debajo del que estableces. Por ejemplo, `xhigh` se ejecuta como `high` en Opus 4.6. Tu organización o tu propia configuración también pueden limitar los niveles que ofrece un modelo; consulta [Límites de esfuerzo de la organización](#organization-effort-limits).


587Con la configuración [`ultracode`](/docs/es/settings-reference#ultracode) desactivada, Claude Code resuelve el nivel de esfuerzo de la sesión en este orden, tomando el primero que se aplique:588Con la configuración [`ultracode`](/docs/es/settings-reference#ultracode) desactivada, Claude Code resuelve el nivel de esfuerzo de la sesión en este orden, tomando el primero que se aplique:

588 589 

5891. Una opción explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), lanzar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene efecto más estrecho](#non-interactive-effort))5901. Una opción explícita: la variable de entorno [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/es/env-vars#variables), lanzar con `--effort`, o `/effort` en la sesión ([un `/effort` no interactivo tiene efecto más estrecho](#non-interactive-effort))

5902. El esfuerzo predeterminado del modelo, en Fable 5, Opus 4.8 u Opus 4.7: desde la primera vez que ejecutas uno de estos modelos, Claude Code mantiene el esfuerzo predeterminado de ese modelo entre sesiones, incluso cuando tu configuración resuelve un nivel diferente. Opus 5 y Fable 5.1 no tienen tal retención. Si un nivel que estableces termina la retención depende de cómo lo estableces, por ejemplo:5912. Tu configuración: el nivel que guardaste para el modelo o una clave [`effortLevel`](/docs/es/settings-reference#effortlevel), con la precedencia entre ellos y entre archivos de configuración indicada en [`modelSettings`](/docs/es/settings-reference#modelsettings)

591 * **Termina la retención**: confirmar un nivel interactivamente, con `Enter` en el deslizador `/effort` o el selector `/model` o con un nivel escrito después de `/effort`, o elegir un nivel desde el control de esfuerzo de [Control Remoto](/docs/es/remote-control#what-connected-devices-see) de un dispositivo conectado5923. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 5.5 por defecto es `medium`, Opus 4.7 por defecto es `xhigh` y, cuando tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo

592 * **Deja la retención en su lugar para sesiones posteriores**: `--effort` al lanzar, o `s` en el deslizador `/effort` o el selector `/model`593 

5933. Tu configuración: el nivel que guardaste para el modelo o una clave [`effortLevel`](/docs/es/settings-reference#effortlevel), con la precedencia entre ellos y entre archivos de configuración indicada en [`modelSettings`](/docs/es/settings-reference#modelsettings)594Opus 5.5 comienza en `medium` a menos que una de las fuentes anteriores establezca un nivel para él, y una `effortLevel` de nivel superior en tu archivo de configuración de usuario no cuenta para Opus 5.5. Esa clave es la forma anterior que `/effort` escribía antes de que Claude Code guardara niveles por modelo: sigue aplicándose donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores, mientras que Opus 5.5 y modelos lanzados después de él comienzan en su propio predeterminado hasta que elijas un nivel para ellos con `/effort` o el selector `/model`. Una `effortLevel` de nivel superior en configuración de proyecto, local o administrada, o una pasada con `--settings`, se aplica a cada modelo.

5944. El esfuerzo predeterminado del modelo: `high` en cada modelo que admite esfuerzo, excepto que Opus 4.7 por defecto es `xhigh` y, cuando tu organización establece un nivel de esfuerzo predeterminado para su [modelo predeterminado de la organización](#organization-default-model), ese nivel es el predeterminado cuando ejecutas ese modelo

595 595 

596Cuando estableces `low`, `medium`, `high` o `xhigh` en una sesión interactiva en tu máquina, eliges cuánto tiempo dura eligiendo cómo lo confirmas:596Cuando estableces `low`, `medium`, `high` o `xhigh` en una sesión interactiva en tu máquina, eliges cuánto tiempo dura eligiendo cómo lo confirmas:

597 597 


608 608 

609<span id="non-interactive-effort" />609<span id="non-interactive-effort" />

610 610 

611Cuando estableces un nivel con `/effort` en una ejecución de [`-p`](/docs/es/headless), Claude Code lo aplica solo a esa sesión y no lo guarda como tu predeterminado. En Fable 5, Opus 4.8 y Opus 4.7, ese nivel tampoco termina la retención en el esfuerzo predeterminado del modelo ni lo anula para la sesión. Mientras esa retención esté en efecto, un `/effort` no interactivo reporta `Not applied`, así que pasa `--effort` al lanzar en su lugar.611Cuando estableces un nivel con `/effort` en una ejecución de [`-p`](/docs/es/headless), Claude Code lo aplica solo a esa sesión y no lo guarda como tu predeterminado.

612 612 

613El menú `/effort` también ofrece `ultracode`. Ultracode es una configuración de Claude Code en lugar de un nivel de esfuerzo del modelo: envía `xhigh` al modelo y además tiene Claude orquestar [flujos de trabajo dinámicos](/docs/es/workflows) para tareas sustanciales. Para dónde se puede establecer persistentemente, consulta la configuración [`ultracode`](/docs/es/settings-reference#ultracode).613El menú `/effort` también ofrece `ultracode`. Ultracode es una configuración de Claude Code en lugar de un nivel de esfuerzo del modelo: envía `xhigh` al modelo y además tiene Claude orquestar [flujos de trabajo dinámicos](/docs/es/workflows) para tareas sustanciales. Para dónde se puede establecer persistentemente, consulta la configuración [`ultracode`](/docs/es/settings-reference#ultracode).

614 614 


642| Nivel | Cuándo usarlo |642| Nivel | Cuándo usarlo |

643| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |643| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

644| `low` | Reserva para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia |644| `low` | Reserva para tareas cortas, limitadas y sensibles a la latencia que no son sensibles a la inteligencia |

645| `medium` | Reduce el uso de tokens para trabajo sensible a costos que puede sacrificar algo de inteligencia |645| `medium` | Reduce el uso de tokens para trabajo sensible a costos que puede sacrificar algo de inteligencia. El predeterminado en Opus 5.5 |

646| `high` | Equilibra el uso de tokens e inteligencia. El predeterminado en cada modelo excepto Opus 4.7 |646| `high` | Equilibra el uso de tokens e inteligencia. El predeterminado en cada modelo excepto Opus 5.5 y Opus 4.7 |

647| `xhigh` | Razonamiento más profundo con gasto de tokens más alto. El predeterminado en Opus 4.7 |647| `xhigh` | Razonamiento más profundo con gasto de tokens más alto. El predeterminado en Opus 4.7 |

648| `max` | Puede mejorar el rendimiento en tareas exigentes pero puede mostrar rendimientos decrecientes y es propenso a pensar demasiado. Prueba antes de adoptar ampliamente |648| `max` | Puede mejorar el rendimiento en tareas exigentes pero puede mostrar rendimientos decrecientes y es propenso a pensar demasiado. Prueba antes de adoptar ampliamente |

649| `ultracode` | Una configuración de Claude Code que planifica un [flujo de trabajo dinámico](/docs/es/workflows) para cada tarea sustancial con razonamiento `xhigh` por mensaje |649| `ultracode` | Una configuración de Claude Code que planifica un [flujo de trabajo dinámico](/docs/es/workflows) para cada tarea sustancial con razonamiento `xhigh` por mensaje |


667* **Bandera `--effort`**: pasa un nombre de nivel para establecerlo para una única sesión cuando lanzas Claude Code667* **Bandera `--effort`**: pasa un nombre de nivel para establecerlo para una única sesión cuando lanzas Claude Code

668* **Variable de entorno**: establece `CLAUDE_CODE_EFFORT_LEVEL` a un nombre de nivel o `auto`668* **Variable de entorno**: establece `CLAUDE_CODE_EFFORT_LEVEL` a un nombre de nivel o `auto`

669* **Configuración**: establece un nivel por modelo en [`modelSettings`](/docs/es/settings-reference#modelsettings), o establece [`effortLevel`](/docs/es/settings-reference#effortlevel) a `low`, `medium`, `high` o `xhigh` como el predeterminado para modelos sin uno. `max` no se acepta como un nivel en ninguna clave, y `ultracode` tiene su propia clave [`ultracode`](/docs/es/settings-reference#ultracode)669* **Configuración**: establece un nivel por modelo en [`modelSettings`](/docs/es/settings-reference#modelsettings), o establece [`effortLevel`](/docs/es/settings-reference#effortlevel) a `low`, `medium`, `high` o `xhigh` como el predeterminado para modelos sin uno. `max` no se acepta como un nivel en ninguna clave, y `ultracode` tiene su propia clave [`ultracode`](/docs/es/settings-reference#ultracode)

670* **Desde un dispositivo conectado**: en una sesión de [Control Remoto](/docs/es/remote-control#what-connected-devices-see), elige un nivel del control de esfuerzo en tu teléfono o en tu navegador. El nivel se aplica solo a la sesión actual, aunque también termina la [retención en el esfuerzo predeterminado del modelo](#adjust-effort-level). Requiere Claude Code v2.1.234 o posterior670* **Desde un dispositivo conectado**: en una sesión de [Control Remoto](/docs/es/remote-control#what-connected-devices-see), elige un nivel del control de esfuerzo en tu teléfono o en tu navegador. El nivel se aplica solo a la sesión actual. Requiere Claude Code v2.1.234 o posterior

671* **Frontmatter de skill y subagente**: establece `effort` en un archivo markdown de [skill](/docs/es/skills#frontmatter-reference) o [subagente](/docs/es/sub-agents#supported-frontmatter-fields) para anular el nivel de esfuerzo cuando ese skill o subagente se ejecuta671* **Frontmatter de skill y subagente**: establece `effort` en un archivo markdown de [skill](/docs/es/skills#frontmatter-reference) o [subagente](/docs/es/sub-agents#supported-frontmatter-fields) para anular el nivel de esfuerzo cuando ese skill o subagente se ejecuta

672 672 

673El esfuerzo de frontmatter se aplica cuando ese skill o subagente está activo, anulando el nivel de sesión pero no la variable de entorno. Un [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) o [límite de esfuerzo de la organización](#organization-effort-limits) aún limita el nivel en el que se ejecuta el skill o subagente.673El esfuerzo de frontmatter se aplica cuando ese skill o subagente está activo, anulando el nivel de sesión pero no la variable de entorno. Un [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel) o [límite de esfuerzo de la organización](#organization-effort-limits) aún limita el nivel en el que se ejecuta el skill o subagente.

674 674 

675En Fable 5, Opus 4.8 y Opus 4.7, el esfuerzo de frontmatter también se aplica mientras la [retención en el esfuerzo predeterminado del modelo](#adjust-effort-level) está en efecto. Antes de v2.1.267, la retención tenía precedencia y Claude Code ignoraba el nivel de frontmatter mientras la retención estaba activa.

676 

677Si estableces `effortLevel` en [configuración administrada](/docs/es/managed-settings), Claude Code lo aplica en el paso de configuración del [orden de resolución de esfuerzo](#adjust-effort-level), y los usuarios aún pueden cambiar el nivel con `/effort` o `--effort`. Para mantener a los usuarios en o por debajo de un nivel, establece [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel).675Si estableces `effortLevel` en [configuración administrada](/docs/es/managed-settings), Claude Code lo aplica en el paso de configuración del [orden de resolución de esfuerzo](#adjust-effort-level), y los usuarios aún pueden cambiar el nivel con `/effort` o `--effort`. Para mantener a los usuarios en o por debajo de un nivel, establece [`maxEffortLevel`](/docs/es/settings-reference#maxeffortlevel).

678 676 

679El deslizador de esfuerzo aparece en `/model` cuando se selecciona un modelo admitido. El nivel de esfuerzo actual también se muestra en el encabezado de la sesión junto al nombre del modelo, por ejemplo "with low effort", para que puedas confirmar qué configuración está activa sin abrir `/model`. El pie de página también muestra brevemente el nivel de esfuerzo al inicio y cuando cambia.677El deslizador de esfuerzo aparece en `/model` cuando se selecciona un modelo admitido. El nivel de esfuerzo actual también se muestra en el encabezado de la sesión junto al nombre del modelo, por ejemplo "with low effort", para que puedas confirmar qué configuración está activa sin abrir `/model`. El pie de página también muestra brevemente el nivel de esfuerzo al inicio y cuando cambia.


695El pensamiento extendido es el razonamiento que Claude emite antes de responder. En modelos que admiten [razonamiento adaptativo](#adjust-effort-level), el nivel de esfuerzo es el control principal de cuánto pensamiento ocurre; las configuraciones a continuación activan o desactivan el pensamiento y controlan cómo se muestra. Con el pensamiento desactivado en Anthropic API, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.693El pensamiento extendido es el razonamiento que Claude emite antes de responder. En modelos que admiten [razonamiento adaptativo](#adjust-effort-level), el nivel de esfuerzo es el control principal de cuánto pensamiento ocurre; las configuraciones a continuación activan o desactivan el pensamiento y controlan cómo se muestra. Con el pensamiento desactivado en Anthropic API, Claude Code envía esfuerzo `high` en lugar de un nivel más alto a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

696 694 

697| Control | Cómo establecerlo |695| Control | Cómo establecerlo |

698| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |696| :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

699| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |697| Alternar para la sesión actual | Presiona `Option+T` en macOS o `Alt+T` en Windows y Linux |

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

701| Desactivar a través de una variable de entorno | Establece [`MAX_THINKING_TOKENS=0`](/docs/es/env-vars), que desactiva el pensamiento en Anthropic API excepto en 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) |699| Desactivar a través de una variable de entorno | Establece [`MAX_THINKING_TOKENS=0`](/docs/es/env-vars), que desactiva el pensamiento en Anthropic API excepto en Opus 5.5 y modelos Fable. En [proveedores de terceros](/docs/es/third-party-integrations), Claude Code omite el parámetro `thinking` en su lugar, y los modelos de razonamiento adaptativo aún pueden pensar. Otros valores se aplican solo con un [presupuesto de pensamiento fijo](#adaptive-reasoning-and-fixed-thinking-budgets) |

702 700 

703No puedes desactivar el pensamiento en modelos Fable. El alternador de sesión, `alwaysThinkingEnabled` y `MAX_THINKING_TOKENS=0` no tienen efecto allí, y un modelo Fable decide por paso cuánto pensar según el nivel de esfuerzo.701No puedes desactivar el pensamiento en Opus 5.5 o los modelos Fable. El alternador de sesión, `alwaysThinkingEnabled` y `MAX_THINKING_TOKENS=0` no tienen efecto allí, y el modelo decide por paso cuánto pensar según el nivel de esfuerzo.

704 702 

705Claude Code colapsa la salida de pensamiento por defecto. Presiona `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en Anthropic API reciben bloques de pensamiento redactados por defecto, así que establece `showThinkingSummaries: true` en [configuración](/docs/es/settings) si quieres que los resúmenes completos estén disponibles cuando expandas. Se te cobra por todos los tokens de pensamiento generados, incluso cuando están colapsados o redactados.703Claude Code colapsa la salida de pensamiento por defecto. Presiona `Ctrl+O` para alternar el modo detallado y ver el razonamiento como texto gris en cursiva. Las sesiones interactivas en Anthropic API reciben bloques de pensamiento redactados por defecto, así que establece `showThinkingSummaries: true` en [configuración](/docs/es/settings) si quieres que los resúmenes completos estén disponibles cuando expandas. Se te cobra por todos los tokens de pensamiento generados, incluso cuando están colapsados o redactados.

706 704 


786Si no establece una ventana de auto-compactación, Claude Code compacta cuando la conversación alcanza el límite de contexto del modelo, excepto en estas sesiones:784Si no establece una ventana de auto-compactación, Claude Code compacta cuando la conversación alcanza el límite de contexto del modelo, excepto en estas sesiones:

787 785 

788* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo786* Las [sesiones en la nube](/docs/es/claude-code-on-the-web) se compactan cuando la conversación se acerca al límite del modelo

789* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y Opus 5 cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry787* Sonnet 4.6 y Opus 4.6 sin [contexto extendido](#extended-context) se compactan en el límite de 200K, y también lo hacen Opus 4.8 y posteriores cuando se ejecutan con una ventana de contexto de 200K, como en Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry

790* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K788* Cuando establece [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/es/env-vars), los modelos con una ventana nativa de 1M, como Sonnet 5 y los modelos Fable, se compactan en el límite de 200K

791* Los modelos que se ejecutan con una ventana nativa de 1M, como Sonnet 5, los modelos Fable y Opus 4.7 y posteriores en la API de Anthropic, se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) indica qué modelos se ejecutan con esa ventana; para las configuraciones que presupuestan Sonnet 5 en 200K en su lugar, consulte [Ventana de contexto de Sonnet 5](#sonnet-5-context-window)789* Los modelos que se ejecutan con una ventana nativa de 1M, como Sonnet 5, los modelos Fable y Opus 4.7 y posteriores en la API de Anthropic, se compactan antes de que la ventana se llene, a aproximadamente 967K tokens de forma predeterminada. En Amazon Bedrock, Google Cloud's Agent Platform y Microsoft Foundry, [Fijar modelos para implementaciones de terceros](#pin-models-for-third-party-deployments) indica qué modelos se ejecutan con esa ventana; para las configuraciones que presupuestan Sonnet 5 en 200K en su lugar, consulte [Ventana de contexto de Sonnet 5](#sonnet-5-context-window)

792* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)790* Las sesiones en un ID de modelo que Claude Code no reconoce, como un alias de [puerta de enlace LLM](/docs/es/llm-gateway), se compactan en la ventana de contexto que Claude Code asume para el ID; consulte [Corregir la ventana para una puerta de enlace o ID de modelo personalizado](#correct-the-window-for-a-gateway-or-custom-model-id)


831Este ejemplo establece las tres variables para hacer que una implementación de Opus enrutada por puerta de enlace sea seleccionable. Claude Code lee variables de entorno al iniciarse, por lo que ejecute las exportaciones antes de lanzar `claude`, o reinicie una sesión existente para aplicarlas:829Este ejemplo establece las tres variables para hacer que una implementación de Opus enrutada por puerta de enlace sea seleccionable. Claude Code lee variables de entorno al iniciarse, por lo que ejecute las exportaciones antes de lanzar `claude`, o reinicie una sesión existente para aplicarlas:

832 830 

833```bash theme={null}831```bash theme={null}

834export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5"832export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5-5"

835export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"833export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

836export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"834export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

837```835```


847 845 

848Cuando [`availableModels`](#restrict-model-selection) está establecido, incluya también el ID de modelo personalizado en la lista de permitidos. De lo contrario, Claude Code filtra la entrada personalizada del selector y rechaza una selección de `--model` de la misma como cualquier otro modelo excluido.846Cuando [`availableModels`](#restrict-model-selection) está establecido, incluya también el ID de modelo personalizado en la lista de permitidos. De lo contrario, Claude Code filtra la entrada personalizada del selector y rechaza una selección de `--model` de la misma como cualquier otro modelo excluido.

849 847 

850Un ID personalizado que incrusta un nombre de familia, como `my-gateway/claude-opus-5`, cuenta como una entrada específica para esa familia y deshabilita su comodín, por lo que también debe enumerar las versiones que desea mantener seleccionables. Consulte [Comportamiento de fusión](#merge-behavior).848Un ID personalizado que incrusta un nombre de familia, como `my-gateway/claude-opus-5-5`, cuenta como una entrada específica para esa familia y deshabilita su comodín, por lo que también debe enumerar las versiones que desea mantener seleccionables. Consulte [Comportamiento de fusión](#merge-behavior).

851 849 

852<h2 id="environment-variables">850<h2 id="environment-variables">

853 Variables de entorno851 Variables de entorno

monitoring-usage.md +252 −191

Details

123| `OTEL_LOG_ASSISTANT_RESPONSES` | Habilitar registro del texto de respuesta del asistente en eventos `assistant_response` (predeterminado: deshabilitado). Cuando no está establecido, recurre al valor de `OTEL_LOG_USER_PROMPTS`. Requiere Claude Code v2.1.193 o posterior | `1` para habilitar, `0` para mantener redactado |123| `OTEL_LOG_ASSISTANT_RESPONSES` | Habilitar registro del texto de respuesta del asistente en eventos `assistant_response` (predeterminado: deshabilitado). Cuando no está establecido, recurre al valor de `OTEL_LOG_USER_PROMPTS`. Requiere Claude Code v2.1.193 o posterior | `1` para habilitar, `0` para mantener redactado |

124| `OTEL_LOG_TOOL_DETAILS` | Habilitar registro de parámetros de herramientas e argumentos de entrada en eventos de herramientas y atributos de span de traza: comandos Bash, nombres de servidor MCP y herramienta, nombres de habilidades, nombres de flujo de trabajo creados por el usuario, e entrada de herramienta. También habilita nombres de comandos personalizados, de plugin y MCP en eventos `user_prompt` (predeterminado: deshabilitado). Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `mcp_server_name`/`mcp_tool_name` se emiten en `tool_decision`/`tool_result` incluso con la bandera desactivada. La excepción requiere Claude Code v2.1.214 o posterior | `1` para habilitar |124| `OTEL_LOG_TOOL_DETAILS` | Habilitar registro de parámetros de herramientas e argumentos de entrada en eventos de herramientas y atributos de span de traza: comandos Bash, nombres de servidor MCP y herramienta, nombres de habilidades, nombres de flujo de trabajo creados por el usuario, e entrada de herramienta. También habilita nombres de comandos personalizados, de plugin y MCP en eventos `user_prompt` (predeterminado: deshabilitado). Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, `mcp_server_name`/`mcp_tool_name` se emiten en `tool_decision`/`tool_result` incluso con la bandera desactivada. La excepción requiere Claude Code v2.1.214 o posterior | `1` para habilitar |

125| `OTEL_LOG_TOOL_CONTENT` | Habilitar registro de contenido de herramientas en el evento de span [`tool.output`](#tool-output-span-event) (predeterminado: deshabilitado). Los atributos de span llevan contenido de herramientas bajo [sus propias puertas](#new-context-gates). Requiere [trazas](#traces-beta). El contenido se trunca en el límite de contenido (60 KB por defecto) | `1` para habilitar |125| `OTEL_LOG_TOOL_CONTENT` | Habilitar registro de contenido de herramientas en el evento de span [`tool.output`](#tool-output-span-event) (predeterminado: deshabilitado). Los atributos de span llevan contenido de herramientas bajo [sus propias puertas](#new-context-gates). Requiere [trazas](#traces-beta). El contenido se trunca en el límite de contenido (60 KB por defecto) | `1` para habilitar |

126| `OTEL_LOG_MANAGED_SETTINGS` | Agregar la configuración administrada redactada, y un resumen SHA-256 de la configuración antes de la redacción, a eventos [managed settings resolved](#managed-settings-resolved-event) (predeterminado: deshabilitado). Un valor en configuración de proyecto o local no lo activa. Requiere Claude Code v2.1.274 o posterior | `1` para habilitar |

126| `OTEL_LOG_RAW_API_BODIES` | Emitir el cuerpo completo de solicitud y respuesta JSON de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body` (predeterminado: deshabilitado). Los cuerpos incluyen el historial de conversación completo. Habilitar esto implica consentimiento a todo lo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, y `OTEL_LOG_TOOL_CONTENT` revelarían | `1` para cuerpos en línea truncados en el límite de contenido (60 KB por defecto), o `file:<dir>` para cuerpos sin truncar en disco con un puntero `body_ref` en el evento |127| `OTEL_LOG_RAW_API_BODIES` | Emitir el cuerpo completo de solicitud y respuesta JSON de la API de Mensajes de Anthropic como eventos de registro `api_request_body` / `api_response_body` (predeterminado: deshabilitado). Los cuerpos incluyen el historial de conversación completo. Habilitar esto implica consentimiento a todo lo que `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, y `OTEL_LOG_TOOL_CONTENT` revelarían | `1` para cuerpos en línea truncados en el límite de contenido (60 KB por defecto), o `file:<dir>` para cuerpos sin truncar en disco con un puntero `body_ref` en el evento |

127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Límite de contenido: la longitud máxima de atributos que contienen contenido como respuestas de modelo, contenido de herramientas, mensajes del sistema, y cuerpos de API sin procesar, incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). El predeterminado está dimensionado para backends que limitan valores de atributos a 64 KB; auméntalo solo si tu backend acepta valores más grandes, o redúcelo para cortar el volumen de telemetría. Cuando un límite de atributo del SDK de OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` o uno de sus variantes de logrecord y span, se establece más bajo, Claude Code trunca en ese valor más pequeño para que el marcador `[TRUNCATED ...]` permanezca dentro del límite del SDK. Requiere Claude Code v2.1.214 o posterior | `262144` |128| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Límite de contenido: la longitud máxima de atributos que contienen contenido como respuestas de modelo, contenido de herramientas, mensajes del sistema, y cuerpos de API sin procesar, incluido el marcador de truncamiento, en unidades de código UTF-16 (predeterminado: 61440, es decir, 60 KB). El predeterminado está dimensionado para backends que limitan valores de atributos a 64 KB; auméntalo solo si tu backend acepta valores más grandes, o redúcelo para cortar el volumen de telemetría. Cuando un límite de atributo del SDK de OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` o uno de sus variantes de logrecord y span, se establece más bajo, Claude Code trunca en ese valor más pequeño para que el marcador `[TRUNCATED ...]` permanezca dentro del límite del SDK. Requiere Claude Code v2.1.214 o posterior | `262144` |

128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferencia de temporalidad de métricas (predeterminado: `delta`). Establece en `cumulative` si tu backend espera temporalidad acumulativa | `delta`, `cumulative` |129| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferencia de temporalidad de métricas (predeterminado: `delta`). Establece en `cumulative` si tu backend espera temporalidad acumulativa | `delta`, `cumulative` |


241| `workflow.run_id` | Identificador de ejecución de la ejecución de la herramienta [Workflow](/docs/es/workflows), prefijado con `wf_`. Ausente para agentes no generados por un workflow | |242| `workflow.run_id` | Identificador de ejecución de la ejecución de la herramienta [Workflow](/docs/es/workflows), prefijado con `wf_`. Ausente para agentes no generados por un workflow | |

242| `workflow.name` | Nombre del workflow que generó este agente. Los nombres creados por el usuario se reemplazan con `custom` a menos que la puerta esté establecida | `OTEL_LOG_TOOL_DETAILS` |243| `workflow.name` | Nombre del workflow que generó este agente. Los nombres creados por el usuario se reemplazan con `custom` a menos que la puerta esté establecida | `OTEL_LOG_TOOL_DETAILS` |

243| `speed` | `fast` o `normal` | |244| `speed` | `fast` o `normal` | |

245| `effort` | [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `low`, `medium`, `high`, `xhigh`, o `max`. Ausente cuando Claude Code no envía nivel de esfuerzo, por ejemplo en un modelo que no lo soporta. Requiere Claude Code v2.1.274 o posterior | |

244| `llm_request.context` | `interaction`, `tool`, o `standalone` dependiendo del span padre | |246| `llm_request.context` | `interaction`, `tool`, o `standalone` dependiendo del span padre | |

245| `duration_ms` | Duración de pared incluyendo reintentos | |247| `duration_ms` | Duración de pared incluyendo reintentos | |

246| `ttft_ms` | Tiempo al primer token en milisegundos | |248| `ttft_ms` | Tiempo al primer token en milisegundos | |


385echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"387echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

386```388```

387 389 

388Si el auxiliar falla o imprime salida que no cumple con estos requisitos, Claude Code reporta el error en:390Si el auxiliar falla o imprime salida que no cumple con estos requisitos, las exportaciones fallan y tu backend de telemetría no recibe nada de la sesión hasta que el auxiliar funcione nuevamente. Claude Code reporta el error en:

389 391 

392* Una notificación de advertencia en sesiones interactivas, [`otelHeadersHelper failed; telemetry is not being exported`](/docs/es/errors#otelheadershelper-failed), mostrada una vez por sesión cuando el auxiliar falla por primera vez

390* Salida de `/status`393* Salida de `/status`

391* El registro de depuración, cuando se ejecuta con [`--debug`](/docs/es/cli-reference#cli-flags) o después de ejecutar `/debug` en la sesión394* El registro de depuración, cuando se ejecuta con [`--debug`](/docs/es/cli-reference#cli-flags) o después de ejecutar `/debug` en la sesión

392* stderr, en sesiones no interactivas iniciadas con `-p`395* stderr, en sesiones no interactivas iniciadas con `-p`


523 526 

524Todas las métricas y eventos comparten estos atributos estándar:527Todas las métricas y eventos comparten estos atributos estándar:

525 528 

526| Atributo | Descripción | Controlado Por |529| Atributo | Descripción | Controlado por |

527| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |530| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |

528| `session.id` | Identificador único de sesión | `OTEL_METRICS_INCLUDE_SESSION_ID` (predeterminado: true) |531| `session.id` | Identificador único de sesión | `OTEL_METRICS_INCLUDE_SESSION_ID` (predeterminado: true) |

529| `app.version` | Versión actual de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predeterminado: false) |532| `app.version` | Versión actual de Claude Code | `OTEL_METRICS_INCLUDE_VERSION` (predeterminado: false) |

530| `app.entrypoint` | Cómo se inició la sesión, como `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, o `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (predeterminado: false) |533| `app.entrypoint` | Cómo se inició la sesión, como `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, o `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (predeterminado: false) |

531| `organization.id` | UUID de organización (cuando está autenticado) | Siempre incluido cuando está disponible |534| `organization.id` | UUID de la organización (cuando está autenticado) | Siempre se incluye cuando está disponible |

532| `user.account_uuid` | UUID de cuenta (cuando está autenticado) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predeterminado: true) |535| `user.account_uuid` | UUID de la cuenta (cuando está autenticado) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predeterminado: true) |

533| `user.account_id` | ID de cuenta en formato etiquetado que coincide con las API de administrador de Anthropic (cuando está autenticado), como `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predeterminado: true) |536| `user.account_id` | ID de cuenta en formato etiquetado que coincide con las API de administración de Anthropic (cuando está autenticado), como `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (predeterminado: true) |

534| `user.id` | Identificador anónimo aleatorio generado en la primera ejecución y persistido en `~/.claude.json`. No contiene información personal y no se deriva de su cuenta de Claude. Eliminar el archivo produce un nuevo valor no relacionado en la siguiente ejecución. | Siempre incluido |537| `user.id` | Identificador anónimo aleatorio generado en la primera ejecución y persistido en `~/.claude.json`. No contiene información personal y no se deriva de su cuenta de Claude. Eliminar el archivo produce un nuevo valor no relacionado en la siguiente ejecución. | Siempre se incluye |

535| `user.email` | Dirección de correo electrónico del usuario, de su inicio de sesión o, en una [sesión en la nube](/docs/es/claude-code-on-the-web), de las credenciales propias de la sesión | Siempre incluido cuando está disponible |538| `user.email` | Dirección de correo electrónico del usuario, de su inicio de sesión o, en una [sesión en la nube](/docs/es/claude-code-on-the-web), de las credenciales de la propia sesión | Siempre se incluye cuando está disponible |

536| `terminal.type` | Tipo de terminal, como `iTerm.app`, `vscode`, `cursor`, o `tmux` | Siempre incluido cuando se detecta |539| `terminal.type` | Tipo de terminal, como `iTerm.app`, `vscode`, `cursor`, o `tmux` | Siempre se incluye cuando se detecta |

537| Claves de `OTEL_RESOURCE_ATTRIBUTES` | Atributos personalizados que establece, como `department` o `team.id`. Consulte [Soporte de organización multiequipo](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predeterminado: true) |540| Claves de `OTEL_RESOURCE_ATTRIBUTES` | Atributos personalizados que establece, como `department` o `team.id`. Consulte [Soporte de organización multiequipo](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (predeterminado: true) |

538| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | La identidad del repositorio de la sesión, derivada de su remoto `origin`. Consulte [Atributos de repositorio](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (predeterminado: false). Requiere Claude Code v2.1.269 o posterior |541| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | La identidad del repositorio de la sesión, derivada de su remoto `origin`. Consulte [Atributos del repositorio](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (predeterminado: false). Requiere Claude Code v2.1.269 o posterior |

539 542 

540Cuando Claude Code inicia sesión en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), la CLI marca las exportaciones con la identidad autenticada de la sesión de la puerta de enlace: `user.id` es el asunto del IdP en lugar de un identificador de instalación anónimo, `user.email` es el correo electrónico con sesión iniciada, y `user.groups` lleva la pertenencia al grupo del IdP como una cadena separada por comas. Cada exportación también lleva `identity.source: gateway-oidc`. La identidad de la puerta de enlace se aplica al final, por lo que las claves `user.*` e `identity.*` establecidas a través de `OTEL_RESOURCE_ATTRIBUTES` se ignoran en sesiones de puerta de enlace.543Cuando Claude Code está autenticado en una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway), la CLI marca las exportaciones con la identidad autenticada de la sesión de la puerta de enlace: `user.id` es el asunto del IdP en lugar de un identificador de instalación anónimo, `user.email` es el correo electrónico con sesión iniciada, y `user.groups` lleva la pertenencia al grupo del IdP como una cadena separada por comas. Cada exportación también lleva `identity.source: gateway-oidc`. La identidad de la puerta de enlace se aplica en último lugar, por lo que las claves `user.*` e `identity.*` establecidas a través de `OTEL_RESOURCE_ATTRIBUTES` se ignoran en sesiones de puerta de enlace.

541 544 

542Los eventos incluyen adicionalmente los siguientes atributos. Estos nunca se adjuntan a las métricas porque causarían cardinalidad ilimitada:545Los eventos incluyen además los siguientes atributos. Estos nunca se adjuntan a las métricas porque causarían cardinalidad ilimitada:

543 546 

544* `prompt.id`: UUID correlacionando un mensaje del usuario con todos los eventos posteriores hasta el siguiente mensaje. Consulte [Atributos de correlación de eventos](#event-correlation-attributes).547* `prompt.id`: UUID que correlaciona un mensaje del usuario con todos los eventos posteriores hasta el siguiente mensaje. Consulte [Atributos de correlación de eventos](#event-correlation-attributes).

545* `workspace.host_paths`: directorios de espacio de trabajo del host seleccionados en la aplicación de escritorio, como una matriz de cadenas548* `workspace.host_paths`: directorios del espacio de trabajo del host seleccionados en la aplicación de escritorio, como una matriz de cadenas

546* `workflow.run_id`: identificador de ejecución, con prefijo `wf_`, en los eventos de API y herramienta emitidos por agentes que pertenecen a una ejecución de herramienta [Workflow](/docs/es/workflows). Filtrar eventos por un `workflow.run_id` reconstruye las solicitudes de API y resultados de herramientas de esa ejecución. El identificador cubre los agentes que genera el script de flujo de trabajo y cualquier agente que esos generen a su vez, como invocaciones de habilidades. Coincide con el identificador de ejecución reportado en el resultado de la herramienta Workflow. Ausente en todos los demás eventos. Requiere Claude Code v2.1.202 o posterior549* `workflow.run_id`: identificador de ejecución, con prefijo `wf_`, en los eventos de API y herramienta emitidos por agentes que pertenecen a una ejecución de herramienta [Workflow](/docs/es/workflows). Filtrar eventos por un `workflow.run_id` reconstruye las solicitudes de API y resultados de herramientas de esa ejecución. El identificador cubre los agentes que el script del flujo de trabajo genera y cualquier agente que esos generen a su vez, como invocaciones de habilidades. Coincide con el identificador de ejecución reportado en el resultado de la herramienta Workflow. Ausente en todos los demás eventos. Requiere Claude Code v2.1.202 o posterior

547* `workflow.name`: nombre del flujo de trabajo, el `meta.name` de su script, emitido junto con `workflow.run_id`. Los nombres de flujo de trabajo integrados aparecen tal cual cuando la ejecución ejecuta el script integrado sin modificar. Los nombres creados por el usuario, incluidas copias editadas de scripts integrados, se reemplazan con `custom` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido. Requiere Claude Code v2.1.202 o posterior550* `workflow.name`: nombre del flujo de trabajo, el `meta.name` de su script, emitido junto con `workflow.run_id`. Los nombres de flujo de trabajo integrados aparecen literalmente cuando la ejecución ejecuta el script integrado sin modificar. Los nombres creados por el usuario, incluidas las copias editadas de scripts integrados, se reemplazan con `custom` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`. Requiere Claude Code v2.1.202 o posterior

548 551 

549<h4 id="repository-attributes">552<h4 id="repository-attributes">

550 Atributos de repositorio553 Atributos del repositorio

551</h4>554</h4>

552 555 

553Establezca `OTEL_METRICS_INCLUDE_REPOSITORY=true` para etiquetar métricas y eventos con la identidad del repositorio de la sesión, de modo que un recopilador compartido pueda atribuir el uso por repositorio. Requiere Claude Code v2.1.269 o posterior.556Establezca `OTEL_METRICS_INCLUDE_REPOSITORY=true` para etiquetar métricas y eventos con la identidad del repositorio de la sesión, de modo que un recopilador compartido pueda atribuir el uso por repositorio. Requiere Claude Code v2.1.269 o posterior.


555Claude Code deriva estos atributos una vez por sesión desde el remoto `origin` del repositorio. Los remotos HTTPS y SSH de un repositorio producen valores idénticos:558Claude Code deriva estos atributos una vez por sesión desde el remoto `origin` del repositorio. Los remotos HTTPS y SSH de un repositorio producen valores idénticos:

556 559 

557| Atributo | Valor |560| Atributo | Valor |

558| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |561| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |

559| `vcs.repository.url.full` | La URL del navegador del repositorio sin `.git`, como `https://github.com/example-org/example-repo` |562| `vcs.repository.url.full` | La URL del navegador del repositorio sin `.git`, como `https://github.com/example-org/example-repo` |

560| `vcs.owner.name` | La ruta del propietario o grupo, como `example-org`; omitido cuando la ruta remota tiene un único segmento |563| `vcs.owner.name` | La ruta del propietario o grupo, como `example-org`; omitido cuando la ruta remota tiene un solo segmento |

561| `vcs.repository.name` | El nombre del repositorio desnudo, como `example-repo` |564| `vcs.repository.name` | El nombre del repositorio desnudo, como `example-repo` |

562| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, o `gitea` cuando Claude Code reconoce el host remoto o la forma de URL como uno de esos proveedores; omitido de otra manera |565| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, o `gitea` cuando Claude Code reconoce el host remoto o la forma de URL como uno de esos proveedores; omitido de lo contrario |

563 566 

564Los valores se convierten a minúsculas, y las credenciales, cadenas de consulta y fragmentos de la URL remota nunca aparecen en ellos. Los atributos se omiten cuando la sesión no tiene un remoto `origin`, cuando el remoto no tiene forma de URL, o cuando el único repositorio envolvente es su directorio de inicio.567Los valores se convierten a minúsculas, y las credenciales, cadenas de consulta y fragmentos de la URL remota nunca aparecen en ellos. Los atributos se omiten cuando la sesión no tiene un remoto `origin`, cuando el remoto no tiene forma de URL, o cuando el único repositorio envolvente es su directorio de inicio.

565 568 


571 Métricas574 Métricas

572</h3>575</h3>

573 576 

574Claude Code exporta las siguientes métricas. La columna Unit muestra la cadena de unidad de OpenTelemetry adjunta a cada métrica; las métricas de recuento no llevan ninguna.577Claude Code exporta las siguientes métricas. La columna Unit muestra la cadena de unidad de OpenTelemetry adjunta a cada métrica; las métricas de conteo no llevan ninguna.

575 578 

576| Nombre de Métrica | Descripción | Unidad |579| Nombre de métrica | Descripción | Unidad |

577| ------------------------------------- | ---------------------------------------------------------------------- | ------ |580| ------------------------------------- | ------------------------------------------------------------------- | ------- |

578| `claude_code.session.count` | Recuento de sesiones CLI iniciadas | none |581| `claude_code.session.count` | Conteo de sesiones de CLI iniciadas | ninguna |

579| `claude_code.lines_of_code.count` | Recuento de líneas de código modificadas | none |582| `claude_code.lines_of_code.count` | Conteo de líneas de código modificadas | ninguna |

580| `claude_code.pull_request.count` | Número de solicitudes de extracción creadas | none |583| `claude_code.pull_request.count` | Número de solicitudes de extracción creadas | ninguna |

581| `claude_code.commit.count` | Número de confirmaciones de git creadas | none |584| `claude_code.commit.count` | Número de confirmaciones de git creadas | ninguna |

582| `claude_code.cost.usage` | Costo de la sesión de Claude Code | USD |585| `claude_code.cost.usage` | Costo de la sesión de Claude Code | USD |

583| `claude_code.token.usage` | Número de tokens utilizados | tokens |586| `claude_code.token.usage` | Número de tokens utilizados | tokens |

584| `claude_code.code_edit_tool.decision` | Recuento de decisiones de permisos de herramienta de edición de código | none |587| `claude_code.code_edit_tool.decision` | Conteo de decisiones de permiso de herramienta de edición de código | ninguna |

585| `claude_code.active_time.total` | Tiempo activo total | s |588| `claude_code.active_time.total` | Tiempo activo total | s |

586 589 

587Cuando `prometheus` es el único exportador enumerado en `OTEL_METRICS_EXPORTER`, Claude Code omite las unidades `USD`, `tokens`, y `s` de las métricas exportadas para que el raspado permanezca en formato de texto Prometheus válido. Los nombres de métricas no cambian, y las configuraciones que combinan exportadores, como `otlp,prometheus`, mantienen las unidades. Antes de v2.1.216, el raspado de Prometheus incluía líneas `# UNIT` solo de OpenMetrics que algunos raspadores rechazaban.590Cuando `prometheus` es el único exportador listado en `OTEL_METRICS_EXPORTER`, Claude Code omite las unidades `USD`, `tokens`, y `s` de las métricas exportadas para que el raspado permanezca en formato de texto Prometheus válido. Los nombres de las métricas no cambian, y las configuraciones que combinan exportadores, como `otlp,prometheus`, mantienen las unidades. Antes de v2.1.216, el raspado de Prometheus incluía líneas `# UNIT` solo de OpenMetrics que algunos raspadores rechazaban.

588 591 

589<h3 id="metric-details">592<h3 id="metric-details">

590 Detalles de métricas593 Detalles de métricas

591</h3>594</h3>

592 595 

593Cada métrica incluye los atributos estándar enumerados anteriormente. Las métricas con atributos adicionales específicos del contexto se indican a continuación.596Cada métrica incluye los atributos estándar listados arriba. Las métricas con atributos adicionales específicos del contexto se notan a continuación.

594 597 

595<h4 id="session-counter">598<h4 id="session-counter">

596 Contador de sesión599 Contador de sesión


646* Todos los [atributos estándar](#standard-attributes)649* Todos los [atributos estándar](#standard-attributes)

647* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")650* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")

648* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`651* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`

649* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera652* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de lo contrario

650* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando el modelo no admite esfuerzo.653* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando Claude Code no envía un nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.

651* `agent.name`: Tipo de subagente que emitió la solicitud. Los nombres de agentes integrados y de plugins del mercado oficial aparecen tal cual. Otros nombres de agentes definidos por el usuario se reemplazan con `"custom"`. Ausente cuando la solicitud no fue emitida por un tipo de subagente nombrado.654* `agent.name`: Tipo de subagente que emitió la solicitud. Los nombres de agentes integrados y los agentes de plugins del mercado oficial aparecen literalmente. Otros nombres de agentes definidos por el usuario se reemplazan con `"custom"`. Ausente cuando la solicitud no fue emitida por un tipo de subagente nombrado.

652* `skill.name`: Habilidad activa para la solicitud, establecida por la herramienta Skill, un comando `/`, o heredada por un subagente generado. Los nombres de habilidades integradas, agrupadas, definidas por el usuario y de plugins del mercado oficial aparecen tal cual. Los nombres de habilidades de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando no hay habilidad activa.655* `skill.name`: Habilidad activa para la solicitud, establecida por la herramienta Skill, un comando `/`, o heredada por un subagente generado. Los nombres de habilidades integradas, agrupadas, definidas por el usuario y del plugin del mercado oficial aparecen literalmente. Los nombres de habilidades de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando no hay habilidad activa.

653* `plugin.name`: Plugin propietario cuando la habilidad activa o subagente es proporcionado por un plugin. Los nombres de plugins del mercado oficial aparecen tal cual. Los nombres de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando ni la habilidad ni el subagente tienen un plugin propietario.656* `plugin.name`: Plugin propietario cuando la habilidad activa o subagente es proporcionado por un plugin. Los nombres de plugins del mercado oficial aparecen literalmente. Los nombres de plugins de terceros se reemplazan con `"third-party"`. Ausente cuando ni la habilidad ni el subagente tienen un plugin propietario.

654* `marketplace.name`: Mercado desde el que se instaló el plugin propietario. Solo se emite para plugins del mercado oficial. Ausente de otra manera.657* `marketplace.name`: Mercado desde el cual se instaló el plugin propietario. Solo se emite para plugins del mercado oficial. Ausente de lo contrario.

655* `mcp_server.name`: Servidor MCP cuya herramienta se ejecutó en el turno que produjo esta solicitud. Los nombres de servidor integrados, proxied por claude.ai, y del registro oficial aparecen tal cual. Los nombres de servidor configurados por el usuario se reemplazan con `"custom"`. Ausente cuando no se ejecutó herramienta MCP. Antes de v2.1.222, Claude Code establecía este atributo en cada solicitud después de una llamada de herramienta MCP, no solo en solicitudes que consumieron un resultado de herramienta, por lo que los paneles de control que lo agregan muestran una caída después de actualizar.658* `mcp_server.name`: Servidor MCP cuyo resultado de herramienta consumió esta solicitud. Los nombres de servidores integrados, proxificados por claude.ai, y del registro oficial aparecen literalmente. Los nombres de servidores configurados por el usuario se reemplazan con `"custom"`. Ausente cuando la solicitud no consumió ningún resultado de herramienta MCP. Antes de v2.1.222, Claude Code establecía este atributo en cada solicitud después de una llamada de herramienta MCP, no solo en solicitudes que consumieron un resultado de herramienta, por lo que los paneles de control que lo agregan muestran una caída después de actualizar.

656* `mcp_tool.name`: Herramienta MCP que se ejecutó en el turno que produjo esta solicitud, con la misma redacción y comportamiento de versión que `mcp_server.name`. Ausente cuando no se ejecutó herramienta MCP.659* `mcp_tool.name`: Herramienta MCP cuyo resultado consumió esta solicitud, con el mismo comportamiento de redacción y versión que `mcp_server.name`. Ausente cuando la solicitud no consumió ningún resultado de herramienta MCP.

657 660 

658<h4 id="token-counter">661<h4 id="token-counter">

659 Contador de tokens662 Contador de tokens


667* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)670* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)

668* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")671* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")

669* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`672* `query_source`: Categoría del subsistema que emitió la solicitud. Uno de `"main"`, `"subagent"`, o `"auxiliary"`

670* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de otra manera673* `speed`: `"fast"` cuando la solicitud utilizó modo rápido. Ausente de lo contrario

671* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Consulte [Contador de costo](#cost-counter) para detalles.674* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Consulte [Contador de costo](#cost-counter) para obtener detalles.

672* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.675* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para obtener definiciones y comportamiento de redacción.

673 676 

674<h4 id="code-edit-tool-decision-counter">677<h4 id="code-edit-tool-decision-counter">

675 Contador de decisión de herramienta de edición de código678 Contador de decisión de herramienta de edición de código

676</h4>679</h4>

677 680 

678Se incrementa cuando el usuario acepta o rechaza el uso de herramientas Edit, Write, o NotebookEdit.681Se incrementa cuando el usuario acepta o rechaza el uso de la herramienta Edit, Write, o NotebookEdit.

679 682 

680**Atributos**:683**Atributos**:

681 684 

682* Todos los [atributos estándar](#standard-attributes)685* Todos los [atributos estándar](#standard-attributes)

683* `tool_name`: Nombre de la herramienta (`"Edit"`, `"Write"`, `"NotebookEdit"`)686* `tool_name`: Nombre de herramienta (`"Edit"`, `"Write"`, `"NotebookEdit"`)

684* `decision`: Decisión del usuario (`"accept"`, `"reject"`)687* `decision`: Decisión del usuario (`"accept"`, `"reject"`)

685* `source`: Fuente de decisión. Uno de `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, o `"user_reject"`. Consulte el [Evento de decisión de herramienta](#tool-decision-event) para saber qué significa cada valor.688* `source`: De dónde vino la decisión. Uno de `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, o `"user_reject"`. Consulte el [evento de decisión de herramienta](#tool-decision-event) para ver qué significa cada valor.

686* `language`: Lenguaje de programación del archivo editado, como `"TypeScript"`, `"Python"`, `"JavaScript"`, o `"Markdown"`. Devuelve `"unknown"` para extensiones de archivo no reconocidas.689* `language`: Lenguaje de programación del archivo editado, como `"TypeScript"`, `"Python"`, `"JavaScript"`, o `"Markdown"`. Devuelve `"unknown"` para extensiones de archivo no reconocidas.

687 690 

688<h4 id="active-time-counter">691<h4 id="active-time-counter">

689 Contador de tiempo activo692 Contador de tiempo activo

690</h4>693</h4>

691 694 

692Rastrea el tiempo real dedicado a usar activamente Claude Code, excluyendo tiempo inactivo. Esta métrica se incrementa durante interacciones del usuario, como escribir y leer respuestas, y durante procesamiento de CLI, como ejecución de herramientas y generación de respuestas de IA.695Rastrea el tiempo real dedicado a usar activamente Claude Code, excluyendo el tiempo inactivo. Esta métrica se incrementa durante las interacciones del usuario, como escribir y leer respuestas, y durante el procesamiento de CLI, como la ejecución de herramientas y la generación de respuestas de IA.

693 696 

694**Atributos**:697**Atributos**:

695 698 


712| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |715| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

713| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |716| `prompt.id` | Identificador UUID v4 que vincula todos los eventos producidos mientras se procesa un único mensaje del usuario |

714| `event.sequence` | Contador basado en 0 para ordenar eventos, contado por proceso de Claude Code en lugar de por sesión |717| `event.sequence` | Contador basado en 0 para ordenar eventos, contado por proceso de Claude Code en lugar de por sesión |

715| `message.uuid` | UUID del mensaje tal como se persiste en la transcripción de sesión, los archivos `~/.claude/projects/*/*.jsonl`. Presente en `assistant_response`, y en `user_prompt` excepto para envíos de comandos, que pueden producir cero o muchos mensajes. En `assistant_response`, esta es la entrada de transcripción final de la respuesta, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior |718| `message.uuid` | UUID del mensaje tal como se persiste en la transcripción de la sesión, los archivos `~/.claude/projects/*/*.jsonl`. Presente en `assistant_response`, en `api_response_body`, y en `user_prompt` excepto para envíos de comandos, que pueden producir cero o muchos mensajes. En `assistant_response` y `api_response_body`, esta es la entrada de transcripción final de la respuesta, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior, o v2.1.274 o posterior en `api_response_body` |

716| `client_request_id` | UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Presente en `api_request` y `api_error` en conexiones de API de primera parte; ausente en backends de proveedores de terceros y cuando la solicitud se reintentó a través de la alternativa sin transmisión. Empareja una solicitud con su respuesta y permanece disponible para fallos como tiempos de espera que nunca produjeron un `request_id` del servidor. Coincide con el mismo atributo en el tramo de seguimiento `llm_request`. Requiere Claude Code v2.1.214 o posterior |719| `client_request_id` | UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Presente en `api_request` y `api_error` en conexiones de API de primera parte; ausente en backends de proveedores de terceros y cuando la solicitud se reintentó a través de la alternativa sin transmisión. Empareja una solicitud con su respuesta y permanece disponible para fallos como tiempos de espera que nunca produjeron un `request_id` del servidor. Coincide con el mismo atributo en el intervalo de rastreo `llm_request`. Requiere Claude Code v2.1.214 o posterior |

717 720 

718Para rastrear toda la actividad desencadenada por un único mensaje, filtre sus eventos por un valor específico de `prompt.id`. Esto devuelve el evento user\_prompt, cualquier evento api\_request, y cualquier evento tool\_result que ocurrió mientras se procesaba ese mensaje.721Para rastrear toda la actividad desencadenada por un único mensaje, filtre sus eventos por un valor específico de `prompt.id`. Esto devuelve el evento user\_prompt, cualquier evento api\_request, y cualquier evento tool\_result que ocurrió mientras se procesaba ese mensaje.

719 722 

720`event.sequence` comienza en 0 cada vez que se inicia un proceso de Claude Code y cuenta hacia arriba durante la vida de ese proceso. Continúa contando a través de `/clear`, que asigna un nuevo `session.id`. Si [reanuda una sesión sin bifurcar](/docs/es/how-claude-code-works#resume-or-fork-sessions), la sesión mantiene su `session.id` pero toma sus valores de `event.sequence` del proceso que la reanudó, por lo que dentro de una sesión un evento posterior puede llevar un valor más bajo que uno anterior, o repetir uno. Para ordenar los eventos de una sesión, ordene por `event.timestamp` y use `event.sequence` para ordenar eventos que comparten una marca de tiempo.723`event.sequence` comienza en 0 cada vez que se inicia un proceso de Claude Code y cuenta hacia arriba durante la vida de ese proceso. Continúa contando a través de `/clear`, que asigna un nuevo `session.id`. Si [reanuda una sesión sin bifurcar](/docs/es/how-claude-code-works#resume-or-fork-sessions), la sesión mantiene su `session.id` pero toma sus valores de `event.sequence` del proceso que la reanudó, por lo que dentro de una sesión un evento posterior puede llevar un valor más bajo que uno anterior, o repetir uno. Para ordenar los eventos de una sesión, ordene por `event.timestamp` y use `event.sequence` para ordenar eventos que comparten una marca de tiempo.

721 724 

722Para reconstrucción a nivel de mensaje, cada clase de evento lleva una clave que coincide con un campo en la transcripción de sesión. El formato de entrada de transcripción es [interno a Claude Code](/docs/es/sessions#where-transcripts-are-stored) y cambia entre versiones, por lo que una canalización que se une en estos campos puede romperse en cualquier lanzamiento; trate las uniones como específicas de versión en lugar de un contrato estable:725Para la reconstrucción a nivel de mensaje, cada clase de evento lleva una clave que coincide con un campo en la transcripción de la sesión. El formato de entrada de transcripción es [interno a Claude Code](/docs/es/sessions#where-transcripts-are-stored) y cambia entre versiones, por lo que un pipeline que se une en estos campos puede romperse en cualquier versión; trate las uniones como específicas de la versión en lugar de un contrato estable:

723 726 

724* `message.uuid` en `user_prompt` y `assistant_response`727* `message.uuid` en `user_prompt`, `assistant_response`, y `api_response_body`

725* `request_id` en los eventos de API, persistido como `requestId` en las entradas del asistente de la transcripción728* `request_id` en los eventos de API, persistido como `requestId` en las entradas del asistente de la transcripción

726* `tool_use_id` en eventos `tool_result` y `tool_decision`729* `tool_use_id` en eventos `tool_result` y `tool_decision`

727 730 


731 734 

732Se registra cuando un usuario envía un mensaje.735Se registra cuando un usuario envía un mensaje.

733 736 

734**Nombre del Evento**: `claude_code.user_prompt`737**Nombre del evento**: `claude_code.user_prompt`

735 738 

736**Atributos**:739**Atributos**:

737 740 

738* Todos los [atributos estándar](#standard-attributes)741* Todos los [atributos estándar](#standard-attributes)

739* `event.name`: `"user_prompt"`742* `event.name`: `"user_prompt"`

740* `event.timestamp`: Marca de tiempo ISO 8601743* `event.timestamp`: Marca de tiempo ISO 8601

741* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)744* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

742* `prompt_length`: Longitud del mensaje745* `prompt_length`: Longitud del mensaje

743* `prompt`: Contenido del mensaje. Redactado por defecto. Establezca `OTEL_LOG_USER_PROMPTS=1` para incluirlo746* `prompt`: Contenido del mensaje. Redactado por defecto. Establezca `OTEL_LOG_USER_PROMPTS=1` para incluirlo

744* `message.uuid`: UUID del mensaje del usuario resultante, que coincide con la entrada de transcripción persistida. Ausente en envíos de comandos, que pueden producir cero o muchos mensajes. Requiere Claude Code v2.1.214 o posterior747* `message.uuid`: UUID del mensaje del usuario resultante, coincidiendo con la entrada de transcripción persistida. Ausente en envíos de comandos, que pueden producir cero o muchos mensajes. Requiere Claude Code v2.1.214 o posterior

745* `command_name`: Nombre del comando cuando el mensaje invoca uno. Los nombres de comandos integrados y agrupados como `compact` o `debug` se emiten tal cual; los alias como `reset` se emiten como se escribieron en lugar del nombre canónico. Los nombres de comandos personalizados, de plugin y MCP se contraen a `custom` o `mcp` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido748* `command_name`: Nombre del comando cuando el mensaje invoca uno. Los nombres de comandos integrados y agrupados como `compact` o `debug` se emiten tal cual; los alias como `reset` se emiten tal como se escribieron en lugar del nombre canónico. Los nombres de comandos personalizados, de plugin y MCP se contraen a `custom` o `mcp` a menos que se establezca `OTEL_LOG_TOOL_DETAILS=1`

746* `command_source`: Origen del comando cuando está presente: `builtin`, `custom`, o `mcp`. Los comandos proporcionados por plugins reportan como `custom`749* `command_source`: Origen del comando cuando está presente: `builtin`, `custom`, o `mcp`. Los comandos proporcionados por plugins reportan como `custom`

747 750 

748<h4 id="assistant-response-event">751<h4 id="assistant-response-event">


751 754 

752Se registra después de cada solicitud de API que devuelve contenido de texto del modelo. Solo se incluyen los bloques de texto de la respuesta; los bloques de pensamiento y los bloques de uso de herramientas se excluyen. Requiere Claude Code v2.1.193 o posterior.755Se registra después de cada solicitud de API que devuelve contenido de texto del modelo. Solo se incluyen los bloques de texto de la respuesta; los bloques de pensamiento y los bloques de uso de herramientas se excluyen. Requiere Claude Code v2.1.193 o posterior.

753 756 

754**Nombre del Evento**: `claude_code.assistant_response`757**Nombre del evento**: `claude_code.assistant_response`

755 758 

756**Atributos**:759**Atributos**:

757 760 

758* Todos los [atributos estándar](#standard-attributes)761* Todos los [atributos estándar](#standard-attributes)

759* `event.name`: `"assistant_response"`762* `event.name`: `"assistant_response"`

760* `event.timestamp`: Marca de tiempo ISO 8601763* `event.timestamp`: Marca de tiempo ISO 8601

761* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)764* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

762* `response_length`: Longitud del texto de respuesta en caracteres765* `response_length`: Longitud del texto de respuesta en caracteres

763* `response`: Texto de respuesta, truncado en el límite de contenido (60 KB por defecto). Redactado a `<REDACTED>` por defecto. Establezca `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluirlo. Cuando `OTEL_LOG_ASSISTANT_RESPONSES` no está establecido, `OTEL_LOG_USER_PROMPTS` lo controla en su lugar, así que establezca `OTEL_LOG_ASSISTANT_RESPONSES=0` para mantener las respuestas redactadas mientras el registro de mensajes está activado766* `response`: Texto de respuesta, truncado en el límite de contenido (60 KB por defecto). Redactado a `<REDACTED>` por defecto. Establezca `OTEL_LOG_ASSISTANT_RESPONSES=1` para incluirlo. Cuando `OTEL_LOG_ASSISTANT_RESPONSES` no está establecido, `OTEL_LOG_USER_PROMPTS` lo controla en su lugar, por lo que establezca `OTEL_LOG_ASSISTANT_RESPONSES=0` para mantener las respuestas redactadas mientras el registro de mensajes está activado

764* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")767* `model`: Identificador de modelo (por ejemplo, "claude-sonnet-5")

765* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta. Presente solo cuando la API devuelve uno768* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta. Presente solo cuando la API devuelve uno

766* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Una respuesta de API se persiste como una entrada de transcripción por bloque de contenido; esta es la última, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior769* `message.uuid`: UUID de la entrada de transcripción final de la respuesta. Una respuesta de API se persiste como una entrada de transcripción por bloque de contenido; esta es la última, desde la cual el `parentUuid` del siguiente turno se encadena. Requiere Claude Code v2.1.214 o posterior


770 Evento de resultado de herramienta773 Evento de resultado de herramienta

771</h4>774</h4>

772 775 

773Se registra cuando una herramienta completa la ejecución. No se emite si la llamada de herramienta fue rechazada; consulte el [Evento de decisión de herramienta](#tool-decision-event) para rechazos.776Se registra cuando una herramienta completa la ejecución. No se emite si la llamada de herramienta fue rechazada; consulte el [evento de decisión de herramienta](#tool-decision-event) para rechazos.

774 777 

775**Nombre del Evento**: `claude_code.tool_result`778**Nombre del evento**: `claude_code.tool_result`

776 779 

777**Atributos**:780**Atributos**:

778 781 

779* Todos los [atributos estándar](#standard-attributes)782* Todos los [atributos estándar](#standard-attributes)

780* `event.name`: `"tool_result"`783* `event.name`: `"tool_result"`

781* `event.timestamp`: Marca de tiempo ISO 8601784* `event.timestamp`: Marca de tiempo ISO 8601

782* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)785* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

783* `tool_name`: Nombre de la herramienta786* `tool_name`: Nombre de la herramienta

784* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.787* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.

785* `success`: `"true"` o `"false"`788* `success`: `"true"` o `"false"`

786* `duration_ms`: Tiempo de ejecución en milisegundos789* `duration_ms`: Tiempo de ejecución en milisegundos

787* `error_type`: Cadena de categoría de error cuando la herramienta falló, como `"Error:ENOENT"` o `"ShellError"`790* `error_type`: Cadena de categoría de error cuando la herramienta falló, como `"Error:ENOENT"` o `"ShellError"`

788* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la herramienta falló791* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la herramienta falló

789* `decision_type`: Siempre `"accept"`, ya que este evento se emite solo después de que se ejecuta la herramienta. Las llamadas rechazadas no producen un resultado de herramienta792* `decision_type`: Siempre `"accept"`, ya que este evento solo se emite después de que la herramienta se ejecuta. Las llamadas rechazadas no producen un resultado de herramienta

790* `decision_source`: Fuente de decisión de permiso. Uno de `"config"`, `"hook"`, `"user_permanent"`, o `"user_temporary"`. Consulte el [Evento de decisión de herramienta](#tool-decision-event) para saber qué significa cada valor. Las fuentes solo de rechazo `"user_abort"` y `"user_reject"` nunca aparecen en este evento.793* `decision_source`: De dónde vino la decisión de permiso. Uno de `"config"`, `"hook"`, `"user_permanent"`, o `"user_temporary"`. Consulte el [evento de decisión de herramienta](#tool-decision-event) para ver qué significa cada valor. Las fuentes solo de rechazo `"user_abort"` y `"user_reject"` nunca aparecen en este evento.

791* `tool_input_size_bytes`: Tamaño de la entrada de herramienta serializada en JSON en bytes794* `tool_input_size_bytes`: Tamaño de la entrada de herramienta serializada en JSON en bytes

792* `tool_result_size_bytes`: Tamaño del resultado de la herramienta en bytes795* `tool_result_size_bytes`: Tamaño del resultado de la herramienta en bytes

793* `mcp_server_scope`: Identificador de alcance del servidor MCP (para herramientas MCP)796* `mcp_server_scope`: Identificador de alcance del servidor MCP (para herramientas MCP)

794* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la identidad del commit de una ejecución exitosa de `git commit` realizada por la herramienta Bash o PowerShell. `vcs.ref.head.revision` es el SHA del commit, `vcs.ref.head.name` es la rama en la que se confirmó, y `vcs.ref.head.type` es `branch`. El nombre y tipo se omiten cuando el commit se realizó en un HEAD desacoplado. Requiere Claude Code v2.1.269 o posterior797* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la identidad de confirmación de una ejecución exitosa de `git commit` ejecutada por la herramienta Bash o PowerShell. `vcs.ref.head.revision` es el SHA de confirmación, `vcs.ref.head.name` es la rama en la que se confirmó, y `vcs.ref.head.type` es `branch`. El nombre y tipo se omiten cuando la confirmación se realizó en un HEAD desconectado. Requiere Claude Code v2.1.269 o posterior

795* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, el par `mcp_server_name`/`mcp_tool_name` se incluye incluso con la bandera desactivada, la misma excepción creada por el host que el [Evento de decisión de herramienta](#tool-decision-event), requiriendo Claude Code v2.1.214 o posterior. Los parámetros varían por herramienta:798* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Para los servidores integrados de Claude Desktop, en sesiones que Claude Desktop posee, el par `mcp_server_name`/`mcp_tool_name` se incluye incluso con la bandera desactivada, la misma excepción creada por el host que el [evento de decisión de herramienta](#tool-decision-event), requiriendo Claude Code v2.1.214 o posterior. Los parámetros varían según la herramienta:

796 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`, y `git_commit_id` y `git_branch` cuando un comando `git commit` tiene éxito. `git_commit_id` es el SHA completo del commit cuando el commit es el HEAD del directorio de trabajo de la sesión, y el SHA abreviado de git de otra manera. `git_branch` es la rama en la que se confirmó, omitida en un HEAD desacoplado799 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, y `dangerouslyDisableSandbox`, más `git_commit_id` y `git_branch` cuando un comando `git commit` tiene éxito. `git_commit_id` es el SHA de confirmación completo cuando la confirmación es el HEAD del directorio de trabajo de la sesión, y el SHA abreviado de git de lo contrario. `git_branch` es la rama en la que se confirmó, omitida en un HEAD desconectado

797 * Para la herramienta Bash del espacio de trabajo de la aplicación de escritorio, que también reporta `tool_name` como `Bash`: incluye solo `bash_command`, `full_command`, y `timeout`800 * Para la herramienta Bash del espacio de trabajo de la aplicación de escritorio, que también reporta `tool_name` como `Bash`: incluye solo `bash_command`, `full_command`, y `timeout`

798 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`801 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`

799 * Para herramienta Skill: incluye `skill_name`802 * Para herramienta Skill: incluye `skill_name`

800 * Para herramienta Agent o herramienta Task heredada: incluye `subagent_type`803 * Para herramienta Agent o herramienta Task heredada: incluye `subagent_type`

801* `tool_input` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Argumentos de herramienta serializados en JSON. Los valores individuales superiores a 512 caracteres se truncan, y la carga útil completa está limitada a aproximadamente 4 K caracteres. Se aplica a todas las herramientas, incluidas las herramientas MCP.804* `tool_input` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Argumentos de herramienta serializados en JSON. Los valores individuales superiores a 512 caracteres se truncan, y la carga útil completa se limita a aproximadamente 4 K caracteres. Se aplica a todas las herramientas, incluidas las herramientas MCP.

802 805 

803<h4 id="api-request-event">806<h4 id="api-request-event">

804 Evento de solicitud de API807 Evento de solicitud de API


806 809 

807Se registra para cada solicitud de API a Claude.810Se registra para cada solicitud de API a Claude.

808 811 

809**Nombre del Evento**: `claude_code.api_request`812**Nombre del evento**: `claude_code.api_request`

810 813 

811**Atributos**:814**Atributos**:

812 815 

813* Todos los [atributos estándar](#standard-attributes)816* Todos los [atributos estándar](#standard-attributes)

814* `event.name`: `"api_request"`817* `event.name`: `"api_request"`

815* `event.timestamp`: Marca de tiempo ISO 8601818* `event.timestamp`: Marca de tiempo ISO 8601

816* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)819* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

817* `model`: Modelo utilizado (por ejemplo, "claude-sonnet-5")820* `model`: Modelo utilizado (por ejemplo, "claude-sonnet-5")

818* `cost_usd`: Costo estimado en USD821* `cost_usd`: Costo estimado en USD

819* `cost_usd_micros`: Costo estimado en millonésimas de dólar estadounidense, emitido como un entero822* `cost_usd_micros`: Costo estimado en millonésimas de dólar estadounidense, emitido como un entero

820* `duration_ms`: Duración de la solicitud en milisegundos823* `duration_ms`: Duración de la solicitud en milisegundos

821* `input_tokens`: Número de tokens de entrada824* `input_tokens`: Número de tokens de entrada

822* `output_tokens`: Número de tokens de salida825* `output_tokens`: Número de tokens de salida

823* `cache_read_tokens`: Número de tokens leídos del caché826* `cache_read_tokens`: Número de tokens leídos de la caché

824* `cache_creation_tokens`: Número de tokens utilizados para la creación del caché827* `cache_creation_tokens`: Número de tokens utilizados para la creación de caché

825* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.828* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.

826* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior829* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior

827* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo830* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

828* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente831* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

829* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando el modelo no admite esfuerzo.832* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Ausente cuando Claude Code no envía un nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.

830* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.833* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para obtener definiciones y comportamiento de redacción.

831 834 

832<h4 id="api-error-event">835<h4 id="api-error-event">

833 Evento de error de API836 Evento de error de API


835 838 

836Se registra cuando una solicitud de API a Claude falla.839Se registra cuando una solicitud de API a Claude falla.

837 840 

838**Nombre del Evento**: `claude_code.api_error`841**Nombre del evento**: `claude_code.api_error`

839 842 

840**Atributos**:843**Atributos**:

841 844 

842* Todos los [atributos estándar](#standard-attributes)845* Todos los [atributos estándar](#standard-attributes)

843* `event.name`: `"api_error"`846* `event.name`: `"api_error"`

844* `event.timestamp`: Marca de tiempo ISO 8601847* `event.timestamp`: Marca de tiempo ISO 8601

845* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)848* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

846* `model`: Modelo utilizado (por ejemplo, "claude-sonnet-5")849* `model`: Modelo utilizado (por ejemplo, "claude-sonnet-5")

847* `error`: Mensaje de error850* `error`: Mensaje de error

848* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP como fallos de conexión.851* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP como fallos de conexión.

849* `duration_ms`: Duración de la solicitud en milisegundos852* `duration_ms`: Duración de la solicitud en milisegundos

850* `attempt`: Número total de intentos realizados, incluyendo la solicitud inicial (`1` significa que no ocurrieron reintentos)853* `attempt`: Número total de intentos realizados, incluida la solicitud inicial (`1` significa que no ocurrieron reintentos)

851* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.854* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.

852* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Disponible incluso cuando un fallo como un tiempo de espera o error de conexión nunca produjo un `request_id` del servidor; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior855* `client_request_id`: UUID generado por el cliente enviado como encabezado de solicitud `x-client-request-id`. Disponible incluso cuando un fallo como un tiempo de espera o error de conexión nunca produjo un `request_id` del servidor; consulte la tabla [atributos de correlación de eventos](#event-correlation-attributes) para saber cuándo está presente. Requiere Claude Code v2.1.214 o posterior

853* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo856* `speed`: `"fast"` o `"normal"`, indicando si el modo rápido estaba activo

854* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente857* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente

855* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando el modelo no admite esfuerzo.858* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando Claude Code no envía un nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.

856* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.859* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para obtener definiciones y comportamiento de redacción.

857 860 

858<h4 id="api-refusal-event">861<h4 id="api-refusal-event">

859 Evento de rechazo de API862 Evento de rechazo de API

860</h4>863</h4>

861 864 

862Se registra cuando una solicitud de API devuelve `stop_reason: "refusal"`. Los rechazos llegan en un flujo de respuesta exitoso en lugar de como un error HTTP, por lo que el evento `api_error` no se activa para ellos. Este evento le permite rastrear la frecuencia de rechazo y agrupar rechazos por los mismos atributos que `api_request` y `api_error`.865Se registra cuando una solicitud de API devuelve `stop_reason: "refusal"`. Los rechazos llegan en una transmisión de respuesta exitosa en lugar de como un error HTTP, por lo que el evento `api_error` no se activa para ellos. Este evento le permite rastrear la frecuencia de rechazo y agrupar rechazos por los mismos atributos que `api_request` y `api_error`.

863 866 

864**Nombre del Evento**: `claude_code.api_refusal`867**Nombre del evento**: `claude_code.api_refusal`

865 868 

866**Atributos**:869**Atributos**:

867 870 

868* Todos los [atributos estándar](#standard-attributes)871* Todos los [atributos estándar](#standard-attributes)

869* `event.name`: `"api_refusal"`872* `event.name`: `"api_refusal"`

870* `event.timestamp`: Marca de tiempo ISO 8601873* `event.timestamp`: Marca de tiempo ISO 8601

871* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)874* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

872* `model`: Identificador de modelo de la solicitud875* `model`: Identificador de modelo de la solicitud

873* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.876* `request_id`: ID de solicitud de API de Anthropic del encabezado `request-id` de la respuesta, como `"req_011..."`. Presente solo cuando la API devuelve uno.

874* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente. Consulte [`api_request`](#api-request-event) para definiciones.877* `query_source`: Subsistema que emitió la solicitud, como `"repl_main_thread"`, `"compact"`, o un nombre de subagente. Consulte [`api_request`](#api-request-event) para obtener definiciones.

875* `speed`: Ya sea `"fast"` cuando [Modo rápido](/docs/es/fast-mode) está activo, o `"normal"`878* `speed`: Ya sea `"fast"` cuando [Modo rápido](/docs/es/fast-mode) está activo, o `"normal"`

876* `attempt`: Número de intento de reintento. El primer intento es `1`.879* `attempt`: Número de intento de reintento. El primer intento es `1`.

877* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando el modelo no admite esfuerzo.880* `effort`: [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) aplicado a la solicitud. Ausente cuando Claude Code no envía un nivel de esfuerzo, por ejemplo en un modelo que no admite esfuerzo.

878* `server_fallback_hop`: `true` cuando el fallback de modelo del lado del servidor de la API ya reintentó este rechazo en un modelo diferente, por lo que el usuario no vio este rechazo en particular. `false` cuando la solicitud terminó en un rechazo. Un único turno puede emitir tanto un evento hop `true` como un evento final `false` posterior cuando el modelo de fallback también rechaza.881* `server_fallback_hop`: `true` cuando la alternativa de modelo del lado del servidor de la API ya reintentó este rechazo en un modelo diferente, por lo que el usuario no vio este rechazo en particular. `false` cuando la solicitud terminó en un rechazo. Un único turno puede emitir tanto un evento de salto `true` como un evento final `false` posterior cuando el modelo de alternativa también rechaza.

879* `has_category`: `true` cuando la respuesta de la API llevaba una `stop_details.category` de `"cyber"`, `"bio"`, `"frontier_llm"`, o `"reasoning_extraction"`. `false` cuando la respuesta no llevaba categoría o un valor fuera de ese conjunto. Ausente cuando `server_fallback_hop` es `true`, porque los bloques hop no llevan `stop_details`.882* `has_category`: `true` cuando la respuesta de la API llevaba un `stop_details.category` de `"cyber"`, `"bio"`, `"frontier_llm"`, o `"reasoning_extraction"`. `false` cuando la respuesta no llevaba categoría o un valor fuera de ese conjunto. Ausente cuando `server_fallback_hop` es `true`, porque los saltos no llevan `stop_details`.

880* `has_explanation`: `true` cuando la respuesta de la API llevaba una `stop_details.explanation`, de otra manera `false`. Ausente cuando `server_fallback_hop` es `true`.883* `has_explanation`: `true` cuando la respuesta de la API llevaba un `stop_details.explanation`, de lo contrario `false`. Ausente cuando `server_fallback_hop` es `true`.

881* `category`: El valor `stop_details.category` de la respuesta de la API. Uno de `"cyber"`, `"bio"`, `"frontier_llm"`, o `"reasoning_extraction"`. Solo presente cuando `OTEL_LOG_TOOL_DETAILS=1` está establecido y `has_category` es `true`.884* `category`: El valor `stop_details.category` de la respuesta de la API. Uno de `"cyber"`, `"bio"`, `"frontier_llm"`, o `"reasoning_extraction"`. Solo presente cuando `OTEL_LOG_TOOL_DETAILS=1` está establecido y `has_category` es `true`.

882* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para definiciones y comportamiento de redacción.885* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribución de habilidad, plugin, agente y MCP para la solicitud. Consulte [Contador de costo](#cost-counter) para obtener definiciones y comportamiento de redacción.

883 886 

884<h4 id="api-request-body-event">887<h4 id="api-request-body-event">

885 Evento de cuerpo de solicitud de API888 Evento de cuerpo de solicitud de API


887 890 

888Se registra para cada intento de solicitud de API cuando `OTEL_LOG_RAW_API_BODIES` está establecido. Se emite un evento por intento, por lo que los reintentos con parámetros ajustados producen cada uno su propio evento.891Se registra para cada intento de solicitud de API cuando `OTEL_LOG_RAW_API_BODIES` está establecido. Se emite un evento por intento, por lo que los reintentos con parámetros ajustados producen cada uno su propio evento.

889 892 

890**Nombre del Evento**: `claude_code.api_request_body`893**Nombre del evento**: `claude_code.api_request_body`

891 894 

892**Atributos**:895**Atributos**:

893 896 

894* Todos los [atributos estándar](#standard-attributes)897* Todos los [atributos estándar](#standard-attributes)

895* `event.name`: `"api_request_body"`898* `event.name`: `"api_request_body"`

896* `event.timestamp`: Marca de tiempo ISO 8601899* `event.timestamp`: Marca de tiempo ISO 8601

897* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)900* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

898* `body`: Parámetros de solicitud de API de Mensajes serializados en JSON, como el mensaje del sistema, mensajes y herramientas, truncados en el límite de contenido (60 KB por defecto). El contenido de pensamiento extendido en turnos de asistente anteriores se redacta. Se emite solo en modo en línea (`OTEL_LOG_RAW_API_BODIES=1`).901* `body`: Parámetros de solicitud de API de Messages serializados en JSON, como el mensaje del sistema, mensajes y herramientas, truncados en el límite de contenido (60 KB por defecto). El contenido de pensamiento extendido en turnos anteriores del asistente se redacta. Se emite solo en modo en línea (`OTEL_LOG_RAW_API_BODIES=1`).

899* `body_ref`: Ruta absoluta a un archivo `<dir>/<uuid>.request.json` que contiene el cuerpo sin truncar. Se emite solo en modo de archivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).902* `body_ref`: Ruta absoluta a un archivo `<dir>/<uuid>.request.json` que contiene el cuerpo sin truncar. Se emite solo en modo de archivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).

900* `body_length`: Longitud del cuerpo sin truncar. Bytes UTF-8 cuando `OTEL_LOG_RAW_API_BODIES=file:<dir>`, o unidades de código UTF-16 cuando `=1`903* `body_length`: Longitud del cuerpo sin truncar. Bytes UTF-8 cuando `OTEL_LOG_RAW_API_BODIES=file:<dir>`, o unidades de código UTF-16 cuando `=1`

901* `body_truncated`: `"true"` cuando ocurrió truncamiento en línea. Ausente en modo de archivo y cuando no ocurrió truncamiento.904* `body_truncated`: `"true"` cuando ocurrió truncamiento en línea. Ausente en modo de archivo y cuando no ocurrió truncamiento.


911 914 

912En modo de archivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code también añade una línea JSON a `<dir>/index.jsonl` para cada respuesta exitosa, con los campos `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, y `response_file`. Léalo para encontrar los archivos de solicitud y respuesta detrás de un mensaje de transcripción dado sin consultar su backend de telemetría. El archivo de índice requiere Claude Code v2.1.274 o posterior.915En modo de archivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code también añade una línea JSON a `<dir>/index.jsonl` para cada respuesta exitosa, con los campos `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, y `response_file`. Léalo para encontrar los archivos de solicitud y respuesta detrás de un mensaje de transcripción dado sin consultar su backend de telemetría. El archivo de índice requiere Claude Code v2.1.274 o posterior.

913 916 

914**Nombre del Evento**: `claude_code.api_response_body`917**Nombre del evento**: `claude_code.api_response_body`

915 918 

916**Atributos**:919**Atributos**:

917 920 

918* Todos los [atributos estándar](#standard-attributes)921* Todos los [atributos estándar](#standard-attributes)

919* `event.name`: `"api_response_body"`922* `event.name`: `"api_response_body"`

920* `event.timestamp`: Marca de tiempo ISO 8601923* `event.timestamp`: Marca de tiempo ISO 8601

921* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)924* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

922* `body`: Respuesta de API de Mensajes serializada en JSON, incluyendo el id, bloques de contenido, uso y razón de parada, truncada en el límite de contenido (60 KB por defecto). El contenido de pensamiento extendido se redacta. Se emite solo en modo en línea (`OTEL_LOG_RAW_API_BODIES=1`).925* `body`: Respuesta de API de Messages serializada en JSON, incluido el id, bloques de contenido, uso y razón de parada, truncada en el límite de contenido (60 KB por defecto). El contenido de pensamiento extendido se redacta. Se emite solo en modo en línea (`OTEL_LOG_RAW_API_BODIES=1`).

923* `body_ref`: Ruta absoluta a un archivo `<dir>/<request_id>.response.json` que contiene el cuerpo sin truncar. Se emite solo en modo de archivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).926* `body_ref`: Ruta absoluta a un archivo `<dir>/<request_id>.response.json` que contiene el cuerpo sin truncar. Se emite solo en modo de archivo (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).

924* `body_length`: Longitud del cuerpo sin truncar. Bytes UTF-8 cuando `OTEL_LOG_RAW_API_BODIES=file:<dir>`, o unidades de código UTF-16 cuando `=1`927* `body_length`: Longitud del cuerpo sin truncar. Bytes UTF-8 cuando `OTEL_LOG_RAW_API_BODIES=file:<dir>`, o unidades de código UTF-16 cuando `=1`

925* `body_truncated`: `"true"` cuando ocurrió truncamiento en línea. Ausente en modo de archivo y cuando no ocurrió truncamiento.928* `body_truncated`: `"true"` cuando ocurrió truncamiento en línea. Ausente en modo de archivo y cuando no ocurrió truncamiento.


936 939 

937Se registra cuando se toma una decisión de permiso de herramienta (aceptar/rechazar).940Se registra cuando se toma una decisión de permiso de herramienta (aceptar/rechazar).

938 941 

939**Nombre del Evento**: `claude_code.tool_decision`942**Nombre del evento**: `claude_code.tool_decision`

940 943 

941**Atributos**:944**Atributos**:

942 945 

943* Todos los [atributos estándar](#standard-attributes)946* Todos los [atributos estándar](#standard-attributes)

944* `event.name`: `"tool_decision"`947* `event.name`: `"tool_decision"`

945* `event.timestamp`: Marca de tiempo ISO 8601948* `event.timestamp`: Marca de tiempo ISO 8601

946* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)949* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

947* `tool_name`: Nombre de la herramienta (por ejemplo, "Read", "Edit", "Write", "NotebookEdit")950* `tool_name`: Nombre de la herramienta (por ejemplo, "Read", "Edit", "Write", "NotebookEdit")

948* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.951* `tool_use_id`: Identificador único para esta invocación de herramienta. Coincide con el `tool_use_id` pasado a hooks, permitiendo correlación entre eventos OTel y datos capturados por hooks.

949* `decision`: Ya sea `"accept"` o `"reject"`952* `decision`: Ya sea `"accept"` o `"reject"`


951 * `"builtin"`: las herramientas propias de la CLI954 * `"builtin"`: las herramientas propias de la CLI

952 * `"mcp"`: servidores MCP en general955 * `"mcp"`: servidores MCP en general

953 * `"sdk_host_builtin_mcp"`: un servidor en proceso integrado en Claude Desktop mismo, en una sesión que Claude Desktop posee. Claude Desktop posee una sesión que inició desde uno de sus propios puntos de entrada, `claude-desktop`, `claude-desktop-3p`, o `local-agent`, cuando esa sesión no es un hijo anidado; las sesiones anidadas, incluidas las sesiones que Claude Code mismo genera, reportan estos servidores como `"mcp"`956 * `"sdk_host_builtin_mcp"`: un servidor en proceso integrado en Claude Desktop mismo, en una sesión que Claude Desktop posee. Claude Desktop posee una sesión que inició desde uno de sus propios puntos de entrada, `claude-desktop`, `claude-desktop-3p`, o `local-agent`, cuando esa sesión no es un hijo anidado; las sesiones anidadas, incluidas las sesiones que Claude Code mismo genera, reportan estos servidores como `"mcp"`

954* `source`: Fuente de decisión:957* `source`: De dónde vino la decisión:

955 * `"config"`: Decidido automáticamente sin solicitar, basado en configuración del proyecto, reglas de permiso en la configuración personal del usuario, política administrada empresarial, banderas `--allowedTools` o `--disallowedTools`, el modo de permiso activo, una concesión con alcance de sesión de un mensaje anterior en la misma sesión de CLI interactiva, o porque la herramienta es inherentemente segura. El evento no indica cuál de estas fuentes coincidió. Claude Code también reporta `"config"` cuando la solicitud de mensaje de permiso en sí falla, por ejemplo cuando la devolución de llamada [`canUseTool`](/docs/es/agent-sdk/typescript#canusetool) del SDK de Agent o la herramienta [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) devuelve un resultado inválido, o cuando el flujo de entrada se cierra mientras la solicitud está pendiente. Antes de v2.1.216, Claude Code reportaba estos fallos como `"user_reject"`.958 * `"config"`: Decidido automáticamente sin preguntar, basado en la configuración del proyecto, reglas de permitir o denegar en la configuración personal del usuario, política gestionada empresarial, banderas `--allowedTools` o `--disallowedTools`, el modo de permiso activo, una concesión con alcance de sesión de un mensaje anterior en la misma sesión de CLI interactiva, o porque la herramienta es inherentemente segura. El evento no indica cuál de estas fuentes coincidió. Claude Code también reporta `"config"` cuando la solicitud de mensaje de permiso en sí falla, por ejemplo cuando la devolución de llamada [`canUseTool`](/docs/es/agent-sdk/typescript#canusetool) del SDK de Agent o la herramienta [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) devuelve un resultado inválido, o cuando el flujo de entrada se cierra mientras la solicitud está pendiente. Antes de v2.1.216, Claude Code reportaba estos fallos como `"user_reject"`.

956 * `"hook"`: Un hook `PreToolUse` o `PermissionRequest` devolvió la decisión.959 * `"hook"`: Un hook `PreToolUse` o `PermissionRequest` devolvió la decisión.

957 * `"user_permanent"`: Se emite cuando el usuario eligió "Sí, y no preguntes de nuevo para ..." en un mensaje de permiso, que guarda una regla de permiso en su configuración personal. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas posteriores que coincidan con la regla guardada emiten `"config"` en su lugar. En sesiones del SDK de Agent o no interactivas `-p`, tanto la opción inicial como las coincidencias de regla posteriores emiten `"user_permanent"`. Se trata como una aceptación.960 * `"user_permanent"`: Se emite cuando el usuario eligió "Sí, y no preguntar de nuevo para ..." en un mensaje de permiso, que guarda una regla de permitir en su configuración personal. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas posteriores que coinciden con la regla guardada emiten `"config"` en su lugar. En sesiones de SDK de Agent o no interactivas `-p`, tanto la opción inicial como las coincidencias de reglas posteriores emiten `"user_permanent"`. Se trata como una aceptación.

958 * `"user_temporary"`: Se emite cuando el usuario eligió "Sí" en un mensaje de permiso para una aprobación única, o eligió una opción que otorga acceso para el resto de la sesión en un mensaje de edición o lectura de archivo. En la CLI interactiva esto se emite solo para la opción en sí; las llamadas posteriores permitidas por esa concesión con alcance de sesión emiten `"config"` en su lugar. En sesiones del SDK de Agent o no interactivas `-p`, tanto la opción como las coincidencias posteriores emiten `"user_temporary"`. Se trata como una aceptación.961 * `"user_temporary"`: Se emite cuando el usuario eligió "Sí" en un mensaje de permiso para una aprobación única, u optó por una opción que otorga acceso para el resto de la sesión en un mensaje de edición o lectura de archivo. En la CLI interactiva esto se emite solo para la opción en sí; las llamadas posteriores permitidas por esa concesión con alcance de sesión emiten `"config"` en su lugar. En sesiones de SDK de Agent o no interactivas `-p`, tanto la opción como las coincidencias posteriores emiten `"user_temporary"`. Se trata como una aceptación.

959 * `"user_abort"`: Se emite cuando el usuario descartó el mensaje de permiso sin responder. En sesiones del SDK de Agent y no interactivas `-p`, esto incluye interrumpir el turno mientras una solicitud de permiso `canUseTool` o `--permission-prompt-tool` está pendiente; antes de v2.1.216, Claude Code reportaba esa interrupción como `"user_reject"`. Se trata como un rechazo.962 * `"user_abort"`: Se emite cuando el usuario descartó el mensaje de permiso sin responder. En sesiones de SDK de Agent y no interactivas `-p`, esto incluye interrumpir el turno mientras una solicitud de permiso `canUseTool` o `--permission-prompt-tool` está pendiente; antes de v2.1.216, Claude Code reportaba esa interrupción como `"user_reject"`. Se trata como un rechazo.

960 * `"user_reject"`: Se emite cuando el usuario eligió "No" cuando se le solicitó. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas que coincidan con una regla de denegación en la configuración personal del usuario emiten `"config"` en su lugar. En sesiones del SDK de Agent o no interactivas `-p`, las llamadas que coincidan con una regla de denegación en la configuración personal emiten `"user_reject"`. Se trata como un rechazo.963 * `"user_reject"`: Se emite cuando el usuario eligió "No" cuando se le preguntó. En la CLI interactiva esto se emite solo para esa opción en sí; las llamadas que coinciden con una regla de denegar en la configuración personal del usuario emiten `"config"` en su lugar. En sesiones de SDK de Agent o no interactivas `-p`, las llamadas que coinciden con una regla de denegar en la configuración personal emiten `"user_reject"`. Se trata como un rechazo.

961* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Misma forma que el [Evento de resultado de herramienta](#tool-result-event), menos campos posteriores a la ejecución como `git_commit_id`. Los valores pueden diferir de `tool_result` para una llamada aceptada si la decisión de permiso reescribe la entrada de herramienta a través de `updatedInput`. Use este atributo para ver qué comando fue rechazado cuando `decision` es `"reject"`.964* `tool_parameters` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Cadena JSON que contiene parámetros específicos de la herramienta. Misma forma que el [evento de resultado de herramienta](#tool-result-event), menos campos posteriores a la ejecución como `git_commit_id`. Los valores pueden diferir de `tool_result` para una llamada aceptada si la decisión de permiso reescribe la entrada de herramienta a través de `updatedInput`. Use este atributo para ver qué comando fue rechazado cuando `decision` es `"reject"`.

962 * Para herramientas `"sdk_host_builtin_mcp"`: `mcp_server_name` y `mcp_tool_name` se incluyen incluso cuando `OTEL_LOG_TOOL_DETAILS` está desactivado, porque la aplicación host define estos nombres; sin ellos, una llamada rechazada a uno de estos servidores integrados sería inattribuible en el flujo predeterminado. Para servidores MCP configurados por el usuario, el `tool_name` del evento es siempre el literal `"mcp_tool"`, y los nombres del servidor y herramienta aparecen solo en `tool_parameters` con la bandera activada; el contenido del argumento requiere la bandera en todas partes. Requiere Claude Code v2.1.214 o posterior965 * Para herramientas `"sdk_host_builtin_mcp"`: `mcp_server_name` y `mcp_tool_name` se incluyen incluso cuando `OTEL_LOG_TOOL_DETAILS` está desactivado, porque la aplicación host define estos nombres; sin ellos, una llamada rechazada a uno de estos servidores integrados sería inattribuible en la transmisión predeterminada. Para servidores MCP configurados por el usuario, el `tool_name` del evento es siempre el literal `"mcp_tool"`, y los nombres del servidor y herramienta aparecen solo en `tool_parameters` con la bandera activada; el contenido del argumento requiere la bandera en todas partes. Requiere Claude Code v2.1.214 o posterior

963 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. La herramienta bash del espacio de trabajo de la aplicación de escritorio también reporta `tool_name` como `Bash`, pero incluye solo `bash_command`, `full_command`, y `timeout`966 * Para herramienta Bash: incluye `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. La herramienta bash del espacio de trabajo de la aplicación de escritorio también reporta `tool_name` como `Bash`, pero incluye solo `bash_command`, `full_command`, y `timeout`

964 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`967 * Para herramientas MCP: incluye `mcp_server_name`, `mcp_tool_name`

965 * Para herramienta Skill: incluye `skill_name`968 * Para herramienta Skill: incluye `skill_name`


969 Evento de cambio de modo de permiso972 Evento de cambio de modo de permiso

970</h4>973</h4>

971 974 

972Se registra cuando el modo de permiso cambia, por ejemplo al ciclar con Shift+Tab, salir del modo de plan, o una verificación de puerta de modo automático.975Se registra cuando el modo de permiso cambia, por ejemplo al ciclar con Shift+Tab, salir del modo de plan, o una verificación de puerta automática.

973 976 

974**Nombre del Evento**: `claude_code.permission_mode_changed`977**Nombre del evento**: `claude_code.permission_mode_changed`

975 978 

976**Atributos**:979**Atributos**:

977 980 

978* Todos los [atributos estándar](#standard-attributes)981* Todos los [atributos estándar](#standard-attributes)

979* `event.name`: `"permission_mode_changed"`982* `event.name`: `"permission_mode_changed"`

980* `event.timestamp`: Marca de tiempo ISO 8601983* `event.timestamp`: Marca de tiempo ISO 8601

981* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)984* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

982* `from_mode`: El modo de permiso anterior, por ejemplo `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, o `"bypassPermissions"`985* `from_mode`: El modo de permiso anterior, por ejemplo `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, o `"bypassPermissions"`

983* `to_mode`: El nuevo modo de permiso986* `to_mode`: El nuevo modo de permiso

984* `trigger`: Qué causó el cambio. Uno de `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, o `"auto_opt_in"`. Ausente cuando la transición se origina del SDK o puente987* `trigger`: Qué causó el cambio. Uno de `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, o `"auto_opt_in"`. Ausente cuando la transición se origina del SDK o puente


989 992 

990Se registra cuando `/login` o `/logout` se completa.993Se registra cuando `/login` o `/logout` se completa.

991 994 

992**Nombre del Evento**: `claude_code.auth`995**Nombre del evento**: `claude_code.auth`

993 996 

994**Atributos**:997**Atributos**:

995 998 

996* Todos los [atributos estándar](#standard-attributes)999* Todos los [atributos estándar](#standard-attributes)

997* `event.name`: `"auth"`1000* `event.name`: `"auth"`

998* `event.timestamp`: Marca de tiempo ISO 86011001* `event.timestamp`: Marca de tiempo ISO 8601

999* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1002* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1000* `action`: `"login"` o `"logout"`1003* `action`: `"login"` o `"logout"`

1001* `success`: `"true"` o `"false"`1004* `success`: `"true"` o `"false"`

1002* `auth_method`: Método de autenticación, como `"oauth"`1005* `auth_method`: Método de autenticación, como `"oauth"`


1009 1012 

1010Se registra cuando un servidor MCP se conecta, desconecta o falla al conectarse.1013Se registra cuando un servidor MCP se conecta, desconecta o falla al conectarse.

1011 1014 

1012**Nombre del Evento**: `claude_code.mcp_server_connection`1015**Nombre del evento**: `claude_code.mcp_server_connection`

1013 1016 

1014**Atributos**:1017**Atributos**:

1015 1018 

1016* Todos los [atributos estándar](#standard-attributes)1019* Todos los [atributos estándar](#standard-attributes)

1017* `event.name`: `"mcp_server_connection"`1020* `event.name`: `"mcp_server_connection"`

1018* `event.timestamp`: Marca de tiempo ISO 86011021* `event.timestamp`: Marca de tiempo ISO 8601

1019* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1022* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1020* `status`: `"connected"`, `"failed"`, o `"disconnected"`1023* `status`: `"connected"`, `"failed"`, o `"disconnected"`

1021* `transport_type`: Transporte del servidor, como `"stdio"`, `"sse"`, o `"http"`1024* `transport_type`: Transporte del servidor, como `"stdio"`, `"sse"`, o `"http"`

1022* `server_scope`: Alcance en el que está configurado el servidor, como `"user"`, `"project"`, o `"local"`1025* `server_scope`: Alcance en el que está configurado el servidor, como `"user"`, `"project"`, o `"local"`

1023* `duration_ms`: Duración del intento de conexión en milisegundos1026* `duration_ms`: Duración del intento de conexión en milisegundos

1024* `error_code`: Código de error cuando la conexión falló1027* `error_code`: Código de error cuando la conexión falló

1025* `is_plugin`: `true` cuando el servidor es proporcionado por un plugin, `false` de otra manera1028* `is_plugin`: `true` cuando el servidor es proporcionado por un plugin, `false` de lo contrario

1026* `plugin_id_hash` (cuando `is_plugin` es `true`): Hash estable del nombre del plugin y mercado, para agrupar eventos por plugin sin exponer el nombre. Claude Code lo calcula como se describe en el [evento de plugin cargado](#plugin-loaded-event)1029* `plugin_id_hash` (cuando `is_plugin` es `true`): Hash estable del nombre del plugin y mercado, para agrupar eventos por plugin sin exponer el nombre. Claude Code lo calcula como se describe en el [evento de plugin cargado](#plugin-loaded-event)

1027* `plugin.name` (cuando `is_plugin` es `true`): Nombre del plugin que proporciona el servidor. Para plugins de terceros esto es la cadena literal `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`; esto protege los nombres de plugins de terceros de aparecer en registros por defecto. Los plugins de fuentes oficiales de Anthropic siempre se identifican por nombre. Los atributos `plugin_id_hash` y `plugin.name` fluyen a su propio backend de monitoreo y no se envían a Anthropic1030* `plugin.name` (cuando `is_plugin` es `true`): Nombre del plugin que proporciona el servidor. Para plugins de terceros este es el literal `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`; esto protege los nombres de plugins de terceros de aparecer en registros por defecto. Los plugins de fuentes oficiales de Anthropic siempre se identifican por nombre. Los atributos `plugin_id_hash` y `plugin.name` fluyen a su propio backend de monitoreo y no se envían a Anthropic

1028* `server_name` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Nombre del servidor configurado1031* `server_name` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Nombre del servidor configurado

1029* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la conexión falló1032* `error` (cuando `OTEL_LOG_TOOL_DETAILS=1`): Mensaje de error completo cuando la conexión falló

1030 1033 


1032 Evento de error interno1035 Evento de error interno

1033</h4>1036</h4>

1034 1037 

1035Se registra cuando Claude Code captura un error interno inesperado. Solo se registran el nombre de la clase de error y un código de estilo errno. El mensaje de error y el seguimiento de pila nunca se incluyen. Este evento no se emite cuando se ejecuta contra Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, o cuando `DISABLE_ERROR_REPORTING` está establecido.1038Se registra cuando Claude Code detecta un error interno inesperado. Solo se registran el nombre de la clase de error y un código de estilo errno. El mensaje de error y el rastreo de pila nunca se incluyen. Este evento no se emite cuando se ejecuta contra Amazon Bedrock, la plataforma de agentes de Google Cloud, Microsoft Foundry, o cuando `DISABLE_ERROR_REPORTING` está establecido.

1036 1039 

1037**Nombre del Evento**: `claude_code.internal_error`1040**Nombre del evento**: `claude_code.internal_error`

1038 1041 

1039**Atributos**:1042**Atributos**:

1040 1043 

1041* Todos los [atributos estándar](#standard-attributes)1044* Todos los [atributos estándar](#standard-attributes)

1042* `event.name`: `"internal_error"`1045* `event.name`: `"internal_error"`

1043* `event.timestamp`: Marca de tiempo ISO 86011046* `event.timestamp`: Marca de tiempo ISO 8601

1044* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1047* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1045* `error_name`: Nombre de la clase de error, como `"TypeError"` o `"SyntaxError"`1048* `error_name`: Nombre de la clase de error, como `"TypeError"` o `"SyntaxError"`

1046* `error_code`: Código errno de Node.js como `"ENOENT"` cuando está presente en el error1049* `error_code`: Código errno de Node.js como `"ENOENT"` cuando está presente en el error

1047 1050 


1051 1054 

1052Se registra cuando un plugin termina de instalarse, tanto desde el comando CLI `claude plugin install` como desde la interfaz de usuario interactiva `/plugin`.1055Se registra cuando un plugin termina de instalarse, tanto desde el comando CLI `claude plugin install` como desde la interfaz de usuario interactiva `/plugin`.

1053 1056 

1054**Nombre del Evento**: `claude_code.plugin_installed`1057**Nombre del evento**: `claude_code.plugin_installed`

1055 1058 

1056**Atributos**:1059**Atributos**:

1057 1060 

1058* Todos los [atributos estándar](#standard-attributes)1061* Todos los [atributos estándar](#standard-attributes)

1059* `event.name`: `"plugin_installed"`1062* `event.name`: `"plugin_installed"`

1060* `event.timestamp`: Marca de tiempo ISO 86011063* `event.timestamp`: Marca de tiempo ISO 8601

1061* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1064* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1062* `marketplace.is_official`: `"true"` si el mercado es un mercado oficial de Anthropic, `"false"` de otra manera1065* `marketplace.is_official`: `"true"` si el mercado es un mercado oficial de Anthropic, `"false"` de lo contrario

1063* `install.trigger`: `"cli"` o `"ui"`1066* `install.trigger`: `"cli"` o `"ui"`

1064* `plugin.name`: Nombre del plugin instalado. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`1067* `plugin.name`: Nombre del plugin instalado. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`

1065* `plugin.version`: Versión del plugin cuando se declara en la entrada del mercado. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`1068* `plugin.version`: Versión del plugin cuando se declara en la entrada del mercado. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`

1066* `marketplace.name`: Mercado desde el que se instaló el plugin. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`1069* `marketplace.name`: Mercado desde el cual se instaló el plugin. Para mercados de terceros esto se incluye solo cuando `OTEL_LOG_TOOL_DETAILS=1`

1067 1070 

1068<h4 id="plugin-loaded-event">1071<h4 id="plugin-loaded-event">

1069 Evento de plugin cargado1072 Evento de plugin cargado


1071 1074 

1072Se registra una vez por plugin habilitado al inicio de la sesión. Use este evento para inventariar qué plugins están activos en su flota, como complemento a `plugin_installed` que registra la acción de instalación en sí.1075Se registra una vez por plugin habilitado al inicio de la sesión. Use este evento para inventariar qué plugins están activos en su flota, como complemento a `plugin_installed` que registra la acción de instalación en sí.

1073 1076 

1074**Nombre del Evento**: `claude_code.plugin_loaded`1077**Nombre del evento**: `claude_code.plugin_loaded`

1075 1078 

1076**Atributos**:1079**Atributos**:

1077 1080 

1078* Todos los [atributos estándar](#standard-attributes)1081* Todos los [atributos estándar](#standard-attributes)

1079* `event.name`: `"plugin_loaded"`1082* `event.name`: `"plugin_loaded"`

1080* `event.timestamp`: Marca de tiempo ISO 86011083* `event.timestamp`: Marca de tiempo ISO 8601

1081* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1084* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1082* `plugin.name`: nombre del plugin. Para plugins fuera del mercado oficial y paquete integrado el valor es `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`1085* `plugin.name`: nombre del plugin. Para plugins fuera del mercado oficial y paquete integrado el valor es `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`

1083* `marketplace.name`: mercado desde el que se instaló el plugin, cuando se conoce. Redactado a `"third-party"` bajo la misma condición que `plugin.name`1086* `marketplace.name`: mercado desde el cual se instaló el plugin, cuando se conoce. Redactado a `"third-party"` bajo la misma condición que `plugin.name`

1084* `plugin.version`: versión del manifiesto del plugin. Se incluye solo cuando el nombre no está redactado y el manifiesto declara una versión1087* `plugin.version`: versión del manifiesto del plugin. Se incluye solo cuando el nombre no está redactado y el manifiesto declara una versión

1085* `plugin.scope`: categoría de procedencia para el plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, o `"default-bundle"`1088* `plugin.scope`: categoría de procedencia del plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, o `"default-bundle"`

1086* `enabled_via`: cómo el plugin llegó a estar habilitado: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, o `"user-install"`. El valor `"admin-install"` significa que el plugin está configurado como requerido o instalación automática para su organización en [**Configuración de organización > Plugins**](https://claude.ai/admin-settings/plugins). Antes de v2.1.246, Claude Code reportaba estos plugins como `"user-install"` o `"seed-mount"`1089* `enabled_via`: cómo el plugin llegó a estar habilitado: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, o `"user-install"`. El valor `"admin-install"` significa que el plugin está configurado como requerido o instalación automática para su organización en [**Configuración de la organización > Plugins**](https://claude.ai/admin-settings/plugins). Antes de v2.1.246, Claude Code reportaba estos plugins como `"user-install"` o `"seed-mount"`

1087* `plugin_id_hash`: hash determinista del nombre del plugin y mercado, enviado solo a su exportador configurado. Le permite contar los plugins de terceros distintos cargados en su flota sin registrar sus nombres. Para [plugins sincronizados desde claude.ai](/docs/es/plugins-reference#synced-plugins), Claude Code hashea el nombre del plugin con el nombre del mercado que claude.ai reporta para el plugin, o con `synced` de otra manera. Antes de v2.1.246, Claude Code no usaba el nombre del mercado que claude.ai reporta en el hash1090* `plugin_id_hash`: hash determinista del nombre del plugin y mercado, enviado solo a su exportador configurado. Le permite contar los plugins de terceros distintos cargados en su flota sin registrar sus nombres. Para [plugins sincronizados desde claude.ai](/docs/es/plugins-reference#synced-plugins), Claude Code codifica el nombre del plugin con el nombre del mercado que claude.ai reporta para el plugin, o con `synced` de lo contrario. Antes de v2.1.246, Claude Code no usaba el nombre del mercado que claude.ai reporta en el hash

1088* `has_hooks`: si el plugin contribuye hooks1091* `has_hooks`: si el plugin contribuye hooks

1089* `has_mcp`: si el plugin contribuye servidores MCP1092* `has_mcp`: si el plugin contribuye servidores MCP

1090* `host_owned_mcp`: `true` cuando el host del SDK administra las conexiones MCP de este plugin y Claude Code omitió leer la configuración del servidor MCP del plugin, `false` de otra manera. Requiere Claude Code v2.1.172 o posterior1093* `host_owned_mcp`: `true` cuando el host del SDK gestiona las conexiones MCP de este plugin y Claude Code omitió leer la configuración del servidor MCP del plugin, `false` de lo contrario. Requiere Claude Code v2.1.172 o posterior

1091* `skill_path_count`: número de directorios de habilidades que declara el plugin1094* `skill_path_count`: número de directorios de habilidades que declara el plugin

1092* `command_path_count`: número de directorios de comandos que declara el plugin1095* `command_path_count`: número de directorios de comandos que declara el plugin

1093* `agent_path_count`: número de directorios de agentes que declara el plugin1096* `agent_path_count`: número de directorios de agentes que declara el plugin

1094* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de otra manera. En modo seguro este evento reporta solo inventario configurado; los comandos, habilidades, hooks y servidores MCP del plugin no se cargan. Requiere Claude Code v2.1.169 o posterior1097* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de lo contrario. En modo seguro este evento reporta solo el inventario configurado; los comandos, habilidades, hooks y servidores MCP del plugin no se cargan. Requiere Claude Code v2.1.169 o posterior

1095 1098 

1096<h4 id="skill-activated-event">1099<h4 id="skill-activated-event">

1097 Evento de habilidad activada1100 Evento de habilidad activada


1099 1102 

1100Se registra cuando se invoca una habilidad, ya sea que Claude la llame a través de la herramienta Skill o que la ejecute como un comando `/`.1103Se registra cuando se invoca una habilidad, ya sea que Claude la llame a través de la herramienta Skill o que la ejecute como un comando `/`.

1101 1104 

1102**Nombre del Evento**: `claude_code.skill_activated`1105**Nombre del evento**: `claude_code.skill_activated`

1103 1106 

1104**Atributos**:1107**Atributos**:

1105 1108 

1106* Todos los [atributos estándar](#standard-attributes)1109* Todos los [atributos estándar](#standard-attributes)

1107* `event.name`: `"skill_activated"`1110* `event.name`: `"skill_activated"`

1108* `event.timestamp`: Marca de tiempo ISO 86011111* `event.timestamp`: Marca de tiempo ISO 8601

1109* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1112* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1110* `skill.name`: Nombre de la habilidad. Para habilidades definidas por el usuario y de plugin de terceros el valor es el marcador de posición `"custom_skill"` a menos que `OTEL_LOG_TOOL_DETAILS=1`1113* `skill.name`: Nombre de la habilidad. Para habilidades definidas por el usuario y de plugins de terceros el valor es el marcador de posición `"custom_skill"` a menos que `OTEL_LOG_TOOL_DETAILS=1`

1111* `invocation_trigger`: Cómo se activó la habilidad (`"user-slash"`, `"claude-proactive"`, o `"nested-skill"`)1114* `invocation_trigger`: Cómo se activó la habilidad (`"user-slash"`, `"claude-proactive"`, o `"nested-skill"`)

1112* `skill.source`: De dónde se cargó la habilidad (por ejemplo, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)1115* `skill.source`: De dónde se cargó la habilidad (por ejemplo, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)

1113* `skill.kind`: `"workflow"` cuando la habilidad es una habilidad de flujo de trabajo. Ausente de otra manera1116* `skill.kind`: `"workflow"` cuando la habilidad es una habilidad de flujo de trabajo. Ausente de lo contrario

1114* `plugin.name` (cuando `OTEL_LOG_TOOL_DETAILS=1` o el plugin es de un mercado oficial): Nombre del plugin propietario cuando la habilidad es proporcionada por un plugin1117* `plugin.name` (cuando `OTEL_LOG_TOOL_DETAILS=1` o el plugin es de un mercado oficial): Nombre del plugin propietario cuando la habilidad es proporcionada por un plugin

1115* `marketplace.name` (cuando `OTEL_LOG_TOOL_DETAILS=1` o el plugin es de un mercado oficial): Mercado desde el que se instaló el plugin propietario, cuando la habilidad es proporcionada por un plugin1118* `marketplace.name` (cuando `OTEL_LOG_TOOL_DETAILS=1` o el plugin es de un mercado oficial): Mercado desde el cual se instaló el plugin propietario, cuando la habilidad es proporcionada por un plugin

1116 1119 

1117<h4 id="at-mention-event">1120<h4 id="at-mention-event">

1118 Evento de mención @1121 Evento de mención @

1119</h4>1122</h4>

1120 1123 

1121Se registra cuando Claude Code resuelve una mención `@` en un mensaje. No todas las menciones emiten un evento: las rutas de salida anticipada como denegaciones de permisos, archivos de tamaño excesivo, archivos adjuntos de referencia PDF, y fallos de listado de directorios se devuelven sin registrar.1124Se registra cuando Claude Code resuelve una mención `@` en un mensaje. No todas las menciones emiten un evento: las rutas de salida temprana como denegaciones de permiso, archivos de tamaño excesivo, adjuntos de referencia PDF y fallos de listado de directorios se devuelven sin registrar.

1122 1125 

1123**Nombre del Evento**: `claude_code.at_mention`1126**Nombre del evento**: `claude_code.at_mention`

1124 1127 

1125**Atributos**:1128**Atributos**:

1126 1129 

1127* Todos los [atributos estándar](#standard-attributes)1130* Todos los [atributos estándar](#standard-attributes)

1128* `event.name`: `"at_mention"`1131* `event.name`: `"at_mention"`

1129* `event.timestamp`: Marca de tiempo ISO 86011132* `event.timestamp`: Marca de tiempo ISO 8601

1130* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1133* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1131* `mention_type`: Tipo de mención (`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). El valor `"peer"` significa que mencionó [una de sus otras sesiones de Claude Code](/docs/es/cross-session-messaging). Requiere Claude Code v2.1.232 o posterior1134* `mention_type`: Tipo de mención (`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). El valor `"peer"` significa que mencionó [una de sus otras sesiones de Claude Code](/docs/es/cross-session-messaging). Requiere Claude Code v2.1.232 o posterior

1132* `success`: Si la mención se resolvió exitosamente (`"true"` o `"false"`)1135* `success`: Si la mención se resolvió exitosamente (`"true"` o `"false"`)

1133 1136 


1137 1140 

1138Se registra una vez cuando una solicitud de API falla después de más de un intento. Se emite junto con el evento `api_error` final.1141Se registra una vez cuando una solicitud de API falla después de más de un intento. Se emite junto con el evento `api_error` final.

1139 1142 

1140**Nombre del Evento**: `claude_code.api_retries_exhausted`1143**Nombre del evento**: `claude_code.api_retries_exhausted`

1141 1144 

1142**Atributos**:1145**Atributos**:

1143 1146 

1144* Todos los [atributos estándar](#standard-attributes)1147* Todos los [atributos estándar](#standard-attributes)

1145* `event.name`: `"api_retries_exhausted"`1148* `event.name`: `"api_retries_exhausted"`

1146* `event.timestamp`: Marca de tiempo ISO 86011149* `event.timestamp`: Marca de tiempo ISO 8601

1147* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1150* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1148* `model`: Modelo utilizado1151* `model`: Modelo utilizado

1149* `error`: Mensaje de error final1152* `error`: Mensaje de error final

1150* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP.1153* `status_code`: Código de estado HTTP como número. Ausente para errores no HTTP.

1151* `total_attempts`: Número total de intentos realizados1154* `total_attempts`: Número total de intentos realizados

1152* `total_retry_duration_ms`: Tiempo total de pared en todos los intentos1155* `total_retry_duration_ms`: Tiempo total de reloj de pared en todos los intentos

1153* `speed`: `"fast"` o `"normal"`1156* `speed`: `"fast"` o `"normal"`

1154 1157 

1155<h4 id="hook-registered-event">1158<h4 id="hook-registered-event">

1156 Evento de hook registrado1159 Evento de hook registrado

1157</h4>1160</h4>

1158 1161 

1159Se registra una vez por hook configurado al inicio de la sesión. Use este evento para inventariar qué hooks están activos en su flota, como complemento a los eventos `hook_execution_start` y `hook_execution_complete` por ejecución.1162Se registra una vez por hook configurado al inicio de la sesión. Use este evento para inventariar qué hooks están activos en su flota, como complemento a los eventos por ejecución `hook_execution_start` y `hook_execution_complete`.

1160 1163 

1161**Nombre del Evento**: `claude_code.hook_registered`1164**Nombre del evento**: `claude_code.hook_registered`

1162 1165 

1163**Atributos**:1166**Atributos**:

1164 1167 

1165* Todos los [atributos estándar](#standard-attributes)1168* Todos los [atributos estándar](#standard-attributes)

1166* `event.name`: `"hook_registered"`1169* `event.name`: `"hook_registered"`

1167* `event.timestamp`: Marca de tiempo ISO 86011170* `event.timestamp`: Marca de tiempo ISO 8601

1168* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1171* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1169* `hook_event`: tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`1172* `hook_event`: tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`

1170* `hook_type`: tipo de implementación de hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`1173* `hook_type`: tipo de implementación de hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, o `"agent"`

1171* `hook_source`: dónde se define el hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`1174* `hook_source`: dónde se define el hook: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, o `"pluginHook"`

1172* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de otra manera. Requiere Claude Code v2.1.169 o posterior1175* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de lo contrario. Requiere Claude Code v2.1.169 o posterior

1173* `hook_matcher` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la cadena de coincidencia de la configuración del hook, cuando se establece una1176* `hook_matcher` (cuando `OTEL_LOG_TOOL_DETAILS=1`): la cadena de coincidencia de la configuración del hook, cuando se establece

1174* `plugin.name` (cuando `hook_source` es `"pluginHook"`): nombre del plugin contribuyente. Para plugins fuera del mercado oficial y paquete integrado el valor es `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`1177* `plugin.name` (cuando `hook_source` es `"pluginHook"`): nombre del plugin contribuyente. Para plugins fuera del mercado oficial y paquete integrado el valor es `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1`

1175* `plugin_id_hash` (cuando `hook_source` es `"pluginHook"`): hash determinista del nombre del plugin y mercado, enviado solo a su exportador configurado. Le permite contar plugins contribuyentes distintos sin registrar sus nombres. Claude Code lo calcula como se describe en el [evento de plugin cargado](#plugin-loaded-event)1178* `plugin_id_hash` (cuando `hook_source` es `"pluginHook"`): hash determinista del nombre del plugin y mercado, enviado solo a su exportador configurado. Le permite contar plugins contribuyentes distintos sin registrar sus nombres. Claude Code lo calcula como se describe en el [evento de plugin cargado](#plugin-loaded-event)

1176 1179 


1180 1183 

1181Se registra cuando uno o más hooks comienzan a ejecutarse para un evento de hook.1184Se registra cuando uno o más hooks comienzan a ejecutarse para un evento de hook.

1182 1185 

1183**Nombre del Evento**: `claude_code.hook_execution_start`1186**Nombre del evento**: `claude_code.hook_execution_start`

1184 1187 

1185**Atributos**:1188**Atributos**:

1186 1189 

1187* Todos los [atributos estándar](#standard-attributes)1190* Todos los [atributos estándar](#standard-attributes)

1188* `event.name`: `"hook_execution_start"`1191* `event.name`: `"hook_execution_start"`

1189* `event.timestamp`: Marca de tiempo ISO 86011192* `event.timestamp`: Marca de tiempo ISO 8601

1190* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1193* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1191* `hook_event`: Tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`1194* `hook_event`: Tipo de evento de hook, como `"PreToolUse"` o `"PostToolUse"`

1192* `hook_name`: Nombre completo del hook incluyendo coincidencia, como `"PreToolUse:Write"`1195* `hook_name`: Nombre completo del hook incluida la coincidencia, como `"PreToolUse:Write"`

1193* `num_hooks`: Número de comandos de hook coincidentes1196* `num_hooks`: Número de comandos de hook coincidentes

1194* `managed_only`: `"true"` cuando solo se permiten hooks de política administrada1197* `managed_only`: `"true"` cuando solo se permiten hooks de política gestionada

1195* `hook_source`: `"policySettings"` o `"merged"`1198* `hook_source`: `"policySettings"` o `"merged"`

1196* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de otra manera. Requiere Claude Code v2.1.169 o posterior1199* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de lo contrario. Requiere Claude Code v2.1.169 o posterior

1197* `hook_definitions`: Configuración de hook serializada en JSON. Se incluye solo cuando tanto el trazado beta detallado como `OTEL_LOG_TOOL_DETAILS=1` están habilitados1200* `hook_definitions`: Configuración de hook serializada en JSON. Se incluye solo cuando tanto el rastreo beta detallado como `OTEL_LOG_TOOL_DETAILS=1` están habilitados

1198 1201 

1199<h4 id="hook-execution-complete-event">1202<h4 id="hook-execution-complete-event">

1200 Evento de ejecución de hook completado1203 Evento de finalización de ejecución de hook

1201</h4>1204</h4>

1202 1205 

1203Se registra cuando todos los hooks para un evento de hook han terminado.1206Se registra cuando todos los hooks para un evento de hook han terminado.

1204 1207 

1205**Nombre del Evento**: `claude_code.hook_execution_complete`1208**Nombre del evento**: `claude_code.hook_execution_complete`

1206 1209 

1207**Atributos**:1210**Atributos**:

1208 1211 

1209* Todos los [atributos estándar](#standard-attributes)1212* Todos los [atributos estándar](#standard-attributes)

1210* `event.name`: `"hook_execution_complete"`1213* `event.name`: `"hook_execution_complete"`

1211* `event.timestamp`: Marca de tiempo ISO 86011214* `event.timestamp`: Marca de tiempo ISO 8601

1212* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1215* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1213* `hook_event`: Tipo de evento de hook1216* `hook_event`: Tipo de evento de hook

1214* `hook_name`: Nombre completo del hook incluyendo coincidencia1217* `hook_name`: Nombre completo del hook incluida la coincidencia

1215* `num_hooks`: Número de comandos de hook coincidentes1218* `num_hooks`: Número de comandos de hook coincidentes

1216* `num_success`: Recuento que se completó exitosamente1219* `num_success`: Conteo que se completó exitosamente

1217* `num_blocking`: Recuento que devolvió una decisión de bloqueo1220* `num_blocking`: Conteo que devolvió una decisión de bloqueo

1218* `num_non_blocking_error`: Recuento que falló sin bloquear1221* `num_non_blocking_error`: Conteo que falló sin bloquear

1219* `num_cancelled`: Recuento cancelado antes de completarse1222* `num_cancelled`: Conteo cancelado antes de completarse

1220* `total_duration_ms`: Duración de pared de todos los hooks coincidentes1223* `total_duration_ms`: Duración de reloj de pared de todos los hooks coincidentes

1221* `managed_only`: `"true"` cuando solo se permiten hooks de política administrada1224* `managed_only`: `"true"` cuando solo se permiten hooks de política gestionada

1222* `hook_source`: `"policySettings"` o `"merged"`1225* `hook_source`: `"policySettings"` o `"merged"`

1223* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de otra manera. Requiere Claude Code v2.1.169 o posterior1226* `safe_mode`: `"true"` cuando la sesión se inició con [`--safe-mode`](/docs/es/cli-reference), `"false"` de lo contrario. Requiere Claude Code v2.1.169 o posterior

1224* `hook_definitions`: Configuración de hook serializada en JSON. Se incluye solo cuando tanto el trazado beta detallado como `OTEL_LOG_TOOL_DETAILS=1` están habilitados1227* `hook_definitions`: Configuración de hook serializada en JSON. Se incluye solo cuando tanto el rastreo beta detallado como `OTEL_LOG_TOOL_DETAILS=1` están habilitados

1225 1228 

1226<h4 id="hook-plugin-metrics-event">1229<h4 id="hook-plugin-metrics-event">

1227 Evento de métricas de plugin de hook1230 Evento de métricas de plugin de hook


1229 1232 

1230Se registra cuando un hook de plugin del mercado oficial emite métricas por invocación. Solo los plugins instalados desde un mercado oficial de Anthropic pueden emitir estos. Los plugins de mercado de terceros y los hooks configurados por el usuario no emiten a este evento. Use este evento para monitorear el comportamiento del plugin como tasas de búsqueda, costos y duraciones desde su propia pila de observabilidad.1233Se registra cuando un hook de plugin del mercado oficial emite métricas por invocación. Solo los plugins instalados desde un mercado oficial de Anthropic pueden emitir estos. Los plugins de mercado de terceros y los hooks configurados por el usuario no emiten a este evento. Use este evento para monitorear el comportamiento del plugin como tasas de búsqueda, costos y duraciones desde su propia pila de observabilidad.

1231 1234 

1232**Nombre del Evento**: `claude_code.hook_plugin_metrics`1235**Nombre del evento**: `claude_code.hook_plugin_metrics`

1233 1236 

1234**Atributos**:1237**Atributos**:

1235 1238 

1236* Todos los [atributos estándar](#standard-attributes)1239* Todos los [atributos estándar](#standard-attributes)

1237* `event.name`: `"hook_plugin_metrics"`1240* `event.name`: `"hook_plugin_metrics"`

1238* `event.timestamp`: Marca de tiempo ISO 86011241* `event.timestamp`: Marca de tiempo ISO 8601

1239* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1242* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1240* `plugin_id`: identificador del plugin en forma `<name>@<marketplace>`1243* `plugin_id`: identificador del plugin en forma `<name>@<marketplace>`

1241* `hook_event`: tipo de evento de hook que emitió las métricas1244* `hook_event`: tipo de evento de hook que emitió las métricas

1242* Hasta 20 claves de métricas emitidas por el plugin. Los nombres coinciden con `^[a-z][a-z0-9_]{0,39}$`. Los valores son booleanos o números.1245* Hasta 20 claves de métrica emitidas por el plugin. Los nombres coinciden con `^[a-z][a-z0-9_]{0,39}$`. Los valores son booleanos o números.

1243 1246 

1244<h4 id="compaction-event">1247<h4 id="compaction-event">

1245 Evento de compactación1248 Evento de compactación


1247 1250 

1248Se registra cuando la compactación de conversación se completa.1251Se registra cuando la compactación de conversación se completa.

1249 1252 

1250**Nombre del Evento**: `claude_code.compaction`1253**Nombre del evento**: `claude_code.compaction`

1251 1254 

1252**Atributos**:1255**Atributos**:

1253 1256 

1254* Todos los [atributos estándar](#standard-attributes)1257* Todos los [atributos estándar](#standard-attributes)

1255* `event.name`: `"compaction"`1258* `event.name`: `"compaction"`

1256* `event.timestamp`: Marca de tiempo ISO 86011259* `event.timestamp`: Marca de tiempo ISO 8601

1257* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1260* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1258* `trigger`: `"auto"` o `"manual"`1261* `trigger`: `"auto"` o `"manual"`

1259* `success`: `"true"` o `"false"`1262* `success`: `"true"` o `"false"`

1260* `duration_ms`: Duración de compactación1263* `duration_ms`: Duración de la compactación

1261* `pre_tokens`: Recuento aproximado de tokens antes de compactación1264* `pre_tokens`: Conteo aproximado de tokens antes de la compactación

1262* `post_tokens`: Recuento aproximado de tokens después de compactación1265* `post_tokens`: Conteo aproximado de tokens después de la compactación

1263* `error`: Mensaje de error cuando la compactación falló1266* `error`: Mensaje de error cuando la compactación falló

1264* `precompute_reuse`: Solo se establece cuando `trigger` es `"manual"`. La compactación automática puede preparar un resumen en segundo plano antes de que se llene la ventana de contexto, y este atributo registra si `/compact` reutilizó ese resumen preparado. `"hit"` significa que se reutilizó; `"miss_custom_instructions"`, `"miss_hook"`, y `"miss_not_ready"` dan la razón por la que se calculó un resumen fresco en su lugar. Requiere Claude Code v2.1.153 o posterior1267* `precompute_reuse`: Solo se establece cuando `trigger` es `"manual"`. La compactación automática puede preparar un resumen en el fondo antes de que la ventana de contexto se llene, y este atributo registra si `/compact` reutilizó ese resumen preparado. `"hit"` significa que se reutilizó; `"miss_custom_instructions"`, `"miss_hook"`, y `"miss_not_ready"` dan la razón por la que se calculó un resumen fresco en su lugar. Requiere Claude Code v2.1.153 o posterior

1265 1268 

1266<h4 id="subagent-completed-event">1269<h4 id="subagent-completed-event">

1267 Evento de subagente completado1270 Evento de subagente completado

1268</h4>1271</h4>

1269 1272 

1270Se registra cuando un [subagente](/docs/es/sub-agents) termina y devuelve su resultado a la conversación que lo inició. Úselo para acumular uso de herramientas y tiempo de ejecución por tipo de subagente; para acumulaciones de tokens o costo, use el [contador de tokens](#token-counter) y [contador de costo](#cost-counter) filtrados a `query_source` `"subagent"`, ya que el `total_tokens` de este evento cubre solo la solicitud final. La categoría `"subagent"` también cuenta solicitudes de hooks basados en agentes, que no emiten evento de subagente.1273Se registra cuando un [subagente](/docs/es/sub-agents) termina y devuelve su resultado a la conversación que lo inició. Úselo para acumular el uso de herramientas y tiempo de ejecución por tipo de subagente; para acumulaciones de tokens o costo, use el [contador de tokens](#token-counter) y [contador de costo](#cost-counter) filtrados a `query_source` `"subagent"`, ya que el `total_tokens` de este evento cubre solo la solicitud final. La categoría `"subagent"` también cuenta solicitudes de hooks basados en agentes, que no emiten evento de subagente.

1271 1274 

1272**Nombre del Evento**: `claude_code.subagent_completed`1275**Nombre del evento**: `claude_code.subagent_completed`

1273 1276 

1274**Atributos**:1277**Atributos**:

1275 1278 

1276* Todos los [atributos estándar](#standard-attributes)1279* Todos los [atributos estándar](#standard-attributes)

1277* `event.name`: `"subagent_completed"`1280* `event.name`: `"subagent_completed"`

1278* `event.timestamp`: Marca de tiempo ISO 86011281* `event.timestamp`: Marca de tiempo ISO 8601

1279* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1282* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1280* `agent_type`: El tipo de subagente. Los nombres de agentes integrados y de plugins del mercado oficial aparecen tal cual; otros nombres de agentes se reemplazan con `"custom"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido1283* `agent_type`: El tipo de subagente. Los nombres de agentes integrados y los agentes de plugins del mercado oficial aparecen literalmente; otros nombres de agentes se reemplazan con `"custom"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido

1281* `agent.source`: De dónde vino la definición del agente: `built-in`, `plugin`, o la fuente de configuración que definió un agente personalizado, como `userSettings` o `projectSettings`1284* `agent.source`: De dónde vino la definición del agente: `built-in`, `plugin`, o la fuente de configuración que definió un agente personalizado, como `userSettings` o `projectSettings`

1282* `is_built_in`: Si el subagente es un tipo de agente integrado1285* `is_built_in`: Si el subagente es un tipo de agente integrado

1283* `is_async`: Si el subagente se ejecutó en [segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background)1286* `is_async`: Si el subagente se ejecutó en [segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background)

1284* `total_tokens`: La huella de tokens de la solicitud de API final del subagente: esa única solicitud de tokens de entrada, creación de caché, lectura de caché y salida, aproximadamente el tamaño de contexto del subagente al completarse. No es una suma en toda la ejecución1287* `total_tokens`: La huella de tokens de la solicitud de API final del subagente: esa solicitud única de entrada, creación de caché, lectura de caché y tokens de salida, aproximadamente el tamaño de contexto del subagente al completarse. No es una suma en toda la ejecución

1285* `total_tool_uses`: Número de llamadas de herramienta que el subagente realizó en toda la ejecución1288* `total_tool_uses`: Número de llamadas de herramienta que realizó el subagente en toda la ejecución

1286* `duration_ms`: Tiempo de ejecución en milisegundos1289* `duration_ms`: Tiempo de ejecución en milisegundos

1287* `model`: El modelo en el que se resolvió el subagente para ejecutarse1290* `model`: El modelo en el que se resolvió el subagente para ejecutarse

1288* `final_model`: El modelo que produjo la respuesta final del subagente, que difiere de `model` después de un cambio a mitad de ejecución como un fallback. Requiere Claude Code v2.1.212 o posterior1291* `final_model`: El modelo que produjo la respuesta final del subagente, que difiere de `model` después de un cambio a mitad de ejecución como una alternativa. Requiere Claude Code v2.1.212 o posterior

1289* `model_swapped`: Si más de un modelo sirvió las solicitudes del subagente. Requiere Claude Code v2.1.212 o posterior1292* `model_swapped`: Si más de un modelo sirvió las solicitudes del subagente. Requiere Claude Code v2.1.212 o posterior

1290* `plugin_id_hash`, `plugin.name`: Presente para agentes proporcionados por plugins. Los nombres de plugins del mercado oficial aparecen tal cual; otros nombres de plugins se reemplazan con `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido1293* `plugin_id_hash`, `plugin.name`: Presente para agentes proporcionados por plugins. Los nombres de plugins del mercado oficial aparecen literalmente; otros nombres de plugins se reemplazan con `"third-party"` a menos que `OTEL_LOG_TOOL_DETAILS=1` esté establecido

1291 1294 

1292<h4 id="feedback-survey-event">1295<h4 id="feedback-survey-event">

1293 Evento de encuesta de retroalimentación1296 Evento de encuesta de retroalimentación

1294</h4>1297</h4>

1295 1298 

1296Se registra cuando se muestra una encuesta de calidad de sesión o se responde. Consulte [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) para saber qué recopilan las encuestas y cómo controlarlas.1299Se registra cuando se muestra o se responde una encuesta de calidad de sesión. Consulte [Encuestas de calidad de sesión](/docs/es/data-usage#session-quality-surveys) para ver qué recopilan las encuestas y cómo controlarlas.

1297 1300 

1298**Nombre del Evento**: `claude_code.feedback_survey`1301**Nombre del evento**: `claude_code.feedback_survey`

1299 1302 

1300**Atributos**:1303**Atributos**:

1301 1304 

1302* Todos los [atributos estándar](#standard-attributes)1305* Todos los [atributos estándar](#standard-attributes)

1303* `event.name`: `"feedback_survey"`1306* `event.name`: `"feedback_survey"`

1304* `event.timestamp`: Marca de tiempo ISO 86011307* `event.timestamp`: Marca de tiempo ISO 8601

1305* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1308* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1306* `event_type`: Evento del ciclo de vida de la encuesta, por ejemplo `"appeared"`, `"responded"`, o `"transcript_prompt_appeared"`1309* `event_type`: Evento del ciclo de vida de la encuesta, por ejemplo `"appeared"`, `"responded"`, o `"transcript_prompt_appeared"`

1307* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta1310* `appearance_id`: ID único que vincula los eventos emitidos para una instancia de encuesta

1308* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"1311* `survey_type`: Qué encuesta produjo el evento. `"session"` es el mensaje de calificación "¿Cómo está Claude?"


1313 Evento de barrido de retención1316 Evento de barrido de retención

1314</h4>1317</h4>

1315 1318 

1316Se registra una vez por ejecución del barrido de limpieza de retención, que elimina [transcripciones de sesión y otros datos de aplicación](/docs/es/claude-directory#cleaned-up-automatically) más antiguos que la configuración [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays). Claude Code ejecuta el barrido en segundo plano como máximo una vez por sesión, y una ejecución que no elimina nada aún emite el evento. Si Claude Code ejecutó el barrido en cualquier sesión en la misma máquina en las últimas 24 horas, retrasa el barrido de esta sesión al menos 10 minutos, por lo que una sesión que sale antes emite nada. Cuando ejecuta `claude -p` con `--bare`, Claude Code no ejecuta el barrido y no emite nada.1319Se registra una vez por ejecución del barrido de limpieza de retención, que elimina [transcripciones de sesión y otros datos de aplicación](/docs/es/claude-directory#cleaned-up-automatically) más antiguos que la configuración [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays). Claude Code ejecuta el barrido en el fondo como máximo una vez por sesión, y una ejecución que no elimina nada aún emite el evento. Si Claude Code ejecutó el barrido en cualquier sesión en la misma máquina en las últimas 24 horas, retrasa el barrido de esta sesión al menos 10 minutos, por lo que una sesión que sale antes no emite nada. Cuando ejecuta `claude -p` con `--bare`, Claude Code no ejecuta el barrido y no emite nada.

1317 1320 

1318Como cada evento OTel en esta página, solo va al backend de telemetría que configura. Requiere Claude Code v2.1.227 o posterior.1321Como todos los eventos OTel en esta página, solo va al backend de telemetría que configura. Requiere Claude Code v2.1.227 o posterior.

1319 1322 

1320Cuando Claude Code no puede determinar de forma segura el período de retención, pausa el barrido y emite el evento con `result` establecido en `"skipped"` y una `skip_reason`. Cuando [configuración administrada](/docs/es/server-managed-settings) establece `cleanupPeriodDays`, el valor administrado fija el período de retención y el barrido se ejecuta incluso cuando un archivo de configuración en un alcance de prioridad más baja está roto o es inválido. Cuando `managed-settings.json` en sí no se puede leer, Claude Code aún pausa el barrido a menos que el [nivel administrado](/docs/es/managed-settings#how-claude-code-combines-managed-sources) suministre `cleanupPeriodDays` desde otro lugar, como configuración administrada por servidor o una caída en `managed-settings.d/` junto al archivo roto. Los atributos del contador de eliminación están presentes solo cuando `result` es `"complete"`.1323Cuando Claude Code no puede determinar de forma segura el período de retención, pausa el barrido y emite el evento con `result` establecido en `"skipped"` y un `skip_reason`. Cuando [configuración gestionada](/docs/es/server-managed-settings) establece `cleanupPeriodDays`, el valor gestionado fija el período de retención y el barrido se ejecuta incluso cuando un archivo de configuración en un alcance de prioridad más baja está roto o es inválido. Cuando `managed-settings.json` en sí no se puede leer, Claude Code aún pausa el barrido a menos que el [nivel gestionado](/docs/es/managed-settings#how-claude-code-combines-managed-sources) suministre `cleanupPeriodDays` desde otro lugar, como configuración gestionada por servidor o un drop-in `managed-settings.d/` junto al archivo roto. Los atributos del contador de eliminación están presentes solo cuando `result` es `"complete"`.

1321 1324 

1322**Nombre del Evento**: `claude_code.retention_sweep`1325**Nombre del evento**: `claude_code.retention_sweep`

1323 1326 

1324**Atributos**:1327**Atributos**:

1325 1328 

1326* Todos los [atributos estándar](#standard-attributes)1329* Todos los [atributos estándar](#standard-attributes)

1327* `event.name`: `"retention_sweep"`1330* `event.name`: `"retention_sweep"`

1328* `event.timestamp`: Marca de tiempo ISO 86011331* `event.timestamp`: Marca de tiempo ISO 8601

1329* `event.sequence`: Contador basado en procesos para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)1332* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1330* `result`: `"complete"` cuando el barrido se ejecutó, `"skipped"` cuando Claude Code lo pausó1333* `result`: `"complete"` cuando el barrido se ejecutó, `"skipped"` cuando Claude Code lo pausó

1331* `period_days`: El valor `cleanupPeriodDays` de la configuración fusionada, en días, o `30` cuando ninguna fuente lo establece. En eventos omitidos, el valor que el barrido habría usado, calculado a partir de las fuentes de configuración que Claude Code pudo leer1334* `period_days`: El valor `cleanupPeriodDays` de la configuración fusionada, en días, o `30` cuando ninguna fuente lo establece. En eventos omitidos, el valor que el barrido habría utilizado, calculado a partir de las fuentes de configuración que Claude Code pudo leer

1332* `used_default`: `"true"` cuando ninguna fuente de configuración legible establece `cleanupPeriodDays`, `"false"` de otra manera. En eventos completados, `"true"` significa que se aplicó el predeterminado de 30 días1335* `used_default`: `"true"` cuando ninguna fuente de configuración legible establece `cleanupPeriodDays`, `"false"` de lo contrario. En eventos completos, `"true"` significa que se aplicó el predeterminado de 30 días

1333* `skip_reason`: Por qué Claude Code pausó el barrido. Presente solo cuando `result` es `"skipped"`:1336* `skip_reason`: Por qué Claude Code pausó el barrido. Presente solo cuando `result` es `"skipped"`:

1334 * `"user_source_disabled"`: La configuración del usuario está excluida, por ejemplo por la bandera [`--setting-sources`](/docs/es/cli-reference#cli-flags) o la opción [`settingSources`](/docs/es/agent-sdk/typescript#options) del SDK, y ninguna fuente habilitada proporciona `cleanupPeriodDays`1337 * `"user_source_disabled"`: La configuración del usuario está excluida, por ejemplo por la bandera [`--setting-sources`](/docs/es/cli-reference#cli-flags) o la opción [`settingSources`](/docs/es/agent-sdk/typescript#options) del SDK, y ninguna fuente habilitada proporciona `cleanupPeriodDays`

1335 * `"settings_unknowable"`: Un archivo de configuración no se pudo leer o analizar, por lo que `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` puede estar establecido en un valor que Claude Code no puede ver1338 * `"settings_unknowable"`: Un archivo de configuración no se pudo leer o analizar, por lo que `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` pueden estar establecidos en un valor que Claude Code no puede ver

1336 * `"settings_invalid_key_set"`: La configuración tiene errores de validación y `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` está explícitamente establecido, por lo que recurrir al predeterminado podría eliminar o mantener archivos contra esa configuración1339 * `"settings_invalid_key_set"`: La configuración tiene errores de validación y `cleanupPeriodDays` o `desktopSessionCleanupPeriodDays` está explícitamente establecido, por lo que recurrir al predeterminado podría eliminar o mantener archivos contra esa configuración

1337* `transcripts_deleted`: Número de transcripciones de sesión, los archivos de nivel superior `~/.claude/projects/*/*.jsonl`, que el barrido eliminó1340* `transcripts_deleted`: Número de transcripciones de sesión, los archivos de nivel superior `~/.claude/projects/*/*.jsonl`, que el barrido eliminó

1338* `transcripts_exempted_desktop`: Número de transcripciones pasadas el período de retención que el barrido mantuvo bajo la [regla de Claude Desktop y Cowork](/docs/es/claude-directory#cleaned-up-automatically). Estos no cuentan hacia `files_past_cutoff`. Requiere Claude Code v2.1.248 o posterior1341* `transcripts_exempted_desktop`: Número de transcripciones pasadas el período de retención que el barrido mantuvo bajo la [regla de Claude Desktop y Cowork](/docs/es/claude-directory#cleaned-up-automatically). Estos no cuentan hacia `files_past_cutoff`. Requiere Claude Code v2.1.248 o posterior

1339* `session_files_deleted`: Número de artefactos que el barrido de archivos de sesión eliminó: transcripciones más archivos complementarios por sesión como sidecars, grabaciones y resultados de herramientas1342* `session_files_deleted`: Número de artefactos que el barrido de archivos de sesión eliminó: transcripciones más archivos complementarios por sesión como barras laterales, grabaciones y resultados de herramientas

1340* `artifacts_deleted`: Total de elementos que el barrido eliminó en todos los directorios de datos que cubre, incluyendo los archivos de sesión. Algunos barridos cuentan un árbol de directorios completamente eliminado como un elemento y algunos pases de limpieza no contribuyen al contador, por lo que trate el valor como un piso en lugar de un recuento exacto de archivos1343* `artifacts_deleted`: Total de elementos que el barrido eliminó en todos los directorios de datos que cubre, incluidos los archivos de sesión. Algunos barridos cuentan un árbol de directorios completo eliminado como un elemento y algunos pases de limpieza no contribuyen al contador, por lo que trate el valor como un piso en lugar de un conteo exacto de archivos

1341* `files_retained_fresh`: Archivos inspeccionados y dejados en su lugar porque aún están dentro del período de retención. Solo los barridos por archivo cuentan estos, por lo que el valor es un piso; un valor distinto de cero es el estado normal de estado estable1344* `files_retained_fresh`: Archivos inspeccionados y dejados en su lugar porque aún están dentro del período de retención. Solo los barridos por archivo cuentan estos, por lo que el valor es un piso; un valor distinto de cero es el estado estable normal

1342* `files_past_cutoff`: Archivos más antiguos que el período de retención que el barrido no pudo eliminar, por ejemplo debido a un error de permiso o un archivo mantenido abierto. Un valor superior a cero significa que los archivos sobrevivieron al período de retención configurado; cero no es prueba de que ninguno lo hizo, porque una eliminación fallida de un directorio completo cuenta hacia `error_count` en su lugar1345* `files_past_cutoff`: Archivos más antiguos que el período de retención que el barrido no pudo eliminar, por ejemplo debido a un error de permiso o un archivo mantenido abierto. Un valor superior a cero significa que los archivos sobrevivieron al período de retención configurado; cero no es prueba de que ninguno lo hizo, porque una eliminación fallida de un directorio completo cuenta hacia `error_count` en su lugar

1343* `error_count`: Número de errores que el barrido encontró mientras enumeraba o eliminaba archivos1346* `error_count`: Número de errores que el barrido encontró mientras listaba o eliminaba archivos

1347 

1348<h4 id="managed-settings-resolved-event">

1349 Evento de configuración gestionada resuelta

1350</h4>

1351 

1352Se registra con la [configuración gestionada](/docs/es/managed-settings) que una sesión resolvió: una vez al inicio de la sesión, nuevamente cuando la configuración gestionada o el [asistente de política](/docs/es/managed-settings#compute-the-policy-with-a-helper-program) cambia de estado durante la sesión, y cuando Claude Code se niega a iniciar o termina la sesión por una de las razones que el atributo `error.type` lista.

1353Use este evento para encontrar máquinas ejecutándose en una fuente gestionada inesperada, máquinas cuyo asistente de política está fallando, y la razón por la que una máquina se negó a iniciar.

1354Requiere Claude Code v2.1.274 o posterior.

1355 

1356Por defecto, el evento lleva las fuentes gestionadas y el estado del asistente de política pero no la configuración en sí. Para agregar el atributo `managed_settings.settings` redactado y el resumen `managed_settings.resolved_sha256`, establezca `OTEL_LOG_MANAGED_SETTINGS=1`:

1357 

1358* Establézcalo en el bloque `env` de configuración gestionada, configuración del usuario, o `--settings`, o en el entorno con el que inicia Claude Code. Un valor en configuración de proyecto o local no lo activa, porque un repositorio clonado puede escribirlos.

1359* La configuración gestionada por servidor puede establecerlo sin mostrar el [diálogo de aprobación de seguridad](/docs/es/server-managed-settings#security-approval-dialogs), porque la variable solo agrega su propia política redactada de la organización a un evento que su organización ya recibe.

1360 

1361En una sesión interactiva en una carpeta que no ha [confiado](/docs/es/permissions#what-runs-before-you-trust-a-folder), Claude Code no exporta el evento de rechazo, porque la configuración de proyecto y local podría apuntar la exportación a un recopilador diferente antes de confiar.

1362 

1363**Nombre del evento**: `claude_code.managed_settings_resolved`

1364 

1365**Atributos**:

1366 

1367* Todos los [atributos estándar](#standard-attributes)

1368* `event.name`: `"managed_settings_resolved"`

1369* `event.timestamp`: Marca de tiempo ISO 8601

1370* `event.sequence`: contador por proceso para ordenar eventos, descrito en [Atributos de correlación de eventos](#event-correlation-attributes)

1371* `managed_settings.trigger`: `"startup"` para el evento de inicio de sesión, `"change"` cuando la configuración gestionada o el estado del asistente de política cambió más tarde en la sesión, o `"refused"` cuando una política de configuración gestionada detuvo la sesión. Claude Code envía un evento `change` solo cuando un atributo difiere del último evento que envió, y un valor de configuración cambiado cuenta incluso cuando `OTEL_LOG_MANAGED_SETTINGS` está desactivado

1372* `error.type`: por qué Claude Code detuvo la sesión. Presente solo en eventos `refused`:

1373 * `"helper_failed"`: una [ejecución del asistente de política falló](/docs/es/settings-reference#helper-failures)

1374 * `"policy_invalid"`: la configuración gestionada contiene un error que detiene a Claude Code de iniciar, o una fuente de administrador no se pudo cargar, por lo que Claude Code no puede verificar la aplicación de inicio de sesión de la organización

1375 * `"consent_rejected"`: el usuario rechazó el [diálogo de aprobación de seguridad](/docs/es/server-managed-settings#security-approval-dialogs) para configuración gestionada por servidor

1376 * `"force_refresh_failed"`: la búsqueda de configuración que [`forceRemoteSettingsRefresh`](/docs/es/settings-reference#forceremotesettingsrefresh) requiere falló

1377 * `"gateway_rejected"`: una [puerta de enlace de aplicaciones Claude](/docs/es/claude-apps-gateway) respondió a la carga de configuración gestionada con HTTP 403

1378 * `"version_below_minimum"`: esta versión de Claude Code está por debajo de [`requiredMinimumVersion`](/docs/es/settings-reference#requiredminimumversion) o por encima de [`requiredMaximumVersion`](/docs/es/settings-reference#requiredmaximumversion)

1379 * `"_OTHER"`: la carga de configuración gestionada de la puerta de enlace de aplicaciones Claude falló por otra razón

1380* `managed_settings.sources`: cada fuente gestionada que entrega al menos una [clave de política](/docs/es/managed-settings#how-claude-code-combines-managed-sources), prioridad más alta primero, incluidas fuentes cuyas claves no tienen efecto bajo `first-wins`. Los valores son `"remote"`, `"plist"` o `"hklm"` para la política de MDM o nivel de SO, `"file"` para archivos de configuración gestionada y drop-ins, `"parent"` cuando un [host de incrustación](/docs/es/managed-settings#let-an-embedding-host-add-policy) suministra configuración, y `"hkcu"` para el [valor del registro HKCU de Windows](/docs/es/managed-settings#where-each-mechanism-stores-the-policy) cuando Claude Code lo [lee](/docs/es/managed-settings#how-claude-code-combines-managed-sources). Una fuente que lleva solo claves de control, o que Claude Code no pudo leer, no está listada. Se emite como una matriz de cadenas, vacía cuando ninguna fuente gestionada entrega una clave de política

1381* `managed_settings.source_behavior`: el valor [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) que Claude Code leyó, `"first-wins"` o `"merge"`. `"first-wins"` cuando ninguna fuente establece la clave

1382* `managed_settings.helper.state`: estado del asistente de política que la fuente de MDM o archivo seleccionada configura:

1383 * `"ok"`: la salida del asistente sirve como la configuración gestionada

1384 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"`, o `"schema_rejected"`: la última ejecución del asistente falló. [Fallos del asistente](/docs/es/settings-reference#helper-failures) describe los casos

1385 * `"none"`: ningún asistente está configurado, o la fuente que lo configura no es una política de MDM o archivo de configuración gestionada

1386* `managed_settings.helper.applied`: `"output"` mientras la salida propia del asistente sirve como la configuración gestionada, `"none"` cuando no lo hace

1387* `managed_settings.helper.entry`: `"policyHelper"` cuando Claude Code seleccionó un [`policyHelper`](/docs/es/settings-reference#policyhelper). Ausente cuando no seleccionó ningún asistente.

1388* `managed_settings.helper.path`: la [`path`](/docs/es/settings-reference#policyhelper-path) configurada del asistente. Presente siempre que Claude Code seleccionó un asistente, independientemente de si `OTEL_LOG_MANAGED_SETTINGS` está establecido

1389* `managed_settings.resolved_sha256` (cuando `OTEL_LOG_MANAGED_SETTINGS=1`): SHA-256 de la configuración gestionada resuelta antes de la redacción, serializada como JSON con claves ordenadas recursivamente y sin espacios en blanco. Las máquinas con el mismo resumen ejecutan la misma política. Claude Code envía el resumen solo con la opción de participación porque una política corta se puede recuperar codificando adivinanzas. Ausente cuando no se resolvió configuración gestionada, y en eventos `refused`

1390* `managed_settings.settings` (cuando `OTEL_LOG_MANAGED_SETTINGS=1`): los nombres y forma de la configuración gestionada resuelta como una cadena JSON, con los valores redactados. Ausente en eventos `refused`. Claude Code lo construye a partir de su esquema de configuración:

1391 

1392 * Un nombre de configuración que el esquema declara se exporta, y una clave que no declara se deja fuera

1393 * Booleanos, números y valores de cadena que el esquema restringe a un conjunto fijo de opciones, como `permissions.defaultMode`, se exportan tal cual. `sandbox.network.httpProxyPort` y `sandbox.network.socksProxyPort` se exportan como `"[REDACTED]"`

1394 * Cada otra cadena, como `model`, `apiKeyHelper`, cada valor `env`, cada URL, y cada comando, se exporta como `"[REDACTED]"`

1395 * Los nombres de entrada de mapas, como nombres de variables `env` e IDs de plugins, se exportan tal cual. Una configuración cuyas entradas el esquema no escribe, como `vimInsertModeRemaps`, se exporta como un único `"[REDACTED]"`, y `sandbox.ignoreViolations` se exporta como una lista de sus listas de rutas sin los patrones de comando

1396 * Una lista mantiene su longitud, con cada entrada redactada por las mismas reglas

1397 * Una regla `permissions.allow`, `permissions.deny`, o `permissions.ask` se exporta como su nombre de herramienta con el contenido redactado, como `Read([REDACTED])`, cuando la herramienta está integrada en esta versión de Claude Code o es una referencia `mcp__` como `mcp__jira__create_issue`. Cualquier otra regla se exporta como `"[REDACTED]"`

1398 * Los hooks siguen las mismas reglas, por lo que los campos de opción fija y numéricos como `type` y `timeout` se muestran, mientras que cada comando, URL, `matcher`, y condición `if` se exporta como `"[REDACTED]"`

1399 

1400 Por ejemplo, la configuración gestionada con `apiKeyHelper`, dos variables `env`, y una regla de denegar se exporta como `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.

1401 

1402 Claude Code corta el valor en 8 KB de UTF-8, y el valor cortado no es JSON válido

1403* `managed_settings.settings_truncated` (cuando `managed_settings.settings` está presente): `true` cuando Claude Code cortó `managed_settings.settings` en 8 KB, `false` de lo contrario. Se emite como booleano, no como cadena

1344 1404 

1345<h2 id="interpret-metrics-and-events-data">1405<h2 id="interpret-metrics-and-events-data">

1346 Interpretar datos de métricas y eventos1406 Interpretar datos de métricas y eventos


1461Al construir reglas de detección, busque la señal que desea monitorear y consulte su backend para el evento correspondiente y atributos:1521Al construir reglas de detección, busque la señal que desea monitorear y consulte su backend para el evento correspondiente y atributos:

1462 1522 

1463| Señal | Evento | Atributos Clave |1523| Señal | Evento | Atributos Clave |

1464| ----------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------ |1524| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1465| Llamada de herramienta permitida o denegada, y por qué | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |1525| Llamada de herramienta permitida o denegada, y por qué | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |

1466| Escalada de modo de permiso | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1526| Escalada de modo de permiso | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1467| Hook de política bloqueó una acción | `hook_execution_complete` | `hook_event`, `num_blocking` |1527| Hook de política bloqueó una acción | `hook_execution_complete` | `hook_event`, `num_blocking` |


1469| Conexión del servidor MCP o fallo | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |1529| Conexión del servidor MCP o fallo | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |

1470| Plugin instalado y su origen | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |1530| Plugin instalado y su origen | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |

1471| Comandos ejecutados y archivos tocados | `tool_result` (ejecutado) o `tool_decision` (rechazado) con `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`; `tool_input` (`tool_result` solo) |1531| Comandos ejecutados y archivos tocados | `tool_result` (ejecutado) o `tool_decision` (rechazado) con `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`; `tool_input` (`tool_result` solo) |

1532| Qué fuentes de configuración administrada ejecuta una máquina, si su asistente de política es saludable y por qué una máquina rechazó iniciar | `managed_settings_resolved` | `managed_settings.trigger`, `managed_settings.sources`, `managed_settings.source_behavior`, `managed_settings.helper.state`, `error.type`; `managed_settings.settings` y `managed_settings.resolved_sha256` con `OTEL_LOG_MANAGED_SETTINGS=1` |

1472 1533 

1473Claude Code emite solo el flujo de eventos sin procesar. La detección de anomalías, establecimiento de línea base, correlación entre sesiones y alertas son responsabilidad de su SIEM o backend de observabilidad.1534Claude Code emite solo el flujo de eventos sin procesar. La detección de anomalías, establecimiento de línea base, correlación entre sesiones y alertas son responsabilidad de su SIEM o backend de observabilidad.

1474 1535 

Details

245| `registry.npmjs.org` | Instalaciones de plugins (obtención de paquetes de plugins de origen npm e instalación de dependencias de paquetes Node.js de plugins), servidores MCP lanzados con `npx` y el registro de paquetes para instalaciones de npm y bun de Claude Code en sí |245| `registry.npmjs.org` | Instalaciones de plugins (obtención de paquetes de plugins de origen npm e instalación de dependencias de paquetes Node.js de plugins), servidores MCP lanzados con `npx` y el registro de paquetes para instalaciones de npm y bun de Claude Code en sí |

246| `bridge.claudeusercontent.com` | Puente WebSocket de extensión [Claude en Chrome](/docs/es/chrome) |246| `bridge.claudeusercontent.com` | Puente WebSocket de extensión [Claude en Chrome](/docs/es/chrome) |

247| `*.frame.claudeusercontent.com` | Lecturas de contenido de [Artifact](/docs/es/artifacts). La CLI obtiene los archivos de un artefacto de este host cuando Claude abre uno, y solo cuando la herramienta Artifact está [disponible](/docs/es/artifacts#availability) para su cuenta. Para desactivar la herramienta y eliminar este requisito, establezca [`"enableArtifact": false`](/docs/es/settings-reference#enableartifact) o [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/es/env-vars); Claude Code también respeta la configuración [`disableArtifact`](/docs/es/settings-reference#disableartifact) obsoleta. Consulte [Deshabilitar artefactos](/docs/es/artifacts#disable-artifacts) para ver cómo interactúan estas configuraciones |247| `*.frame.claudeusercontent.com` | Lecturas de contenido de [Artifact](/docs/es/artifacts). La CLI obtiene los archivos de un artefacto de este host cuando Claude abre uno, y solo cuando la herramienta Artifact está [disponible](/docs/es/artifacts#availability) para su cuenta. Para desactivar la herramienta y eliminar este requisito, establezca [`"enableArtifact": false`](/docs/es/settings-reference#enableartifact) o [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/es/env-vars); Claude Code también respeta la configuración [`disableArtifact`](/docs/es/settings-reference#disableartifact) obsoleta. Consulte [Deshabilitar artefactos](/docs/es/artifacts#disable-artifacts) para ver cómo interactúan estas configuraciones |

248| `github.com` | Clonación de [marketplaces de plugins](/docs/es/plugin-marketplaces) y plugins alojados en GitHub, incluido el marketplace oficial de Anthropic, sobre HTTPS o SSH. Para clonar fuentes de GitHub `owner/repo` solo sobre HTTPS, establezca [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/es/env-vars) |

248| `raw.githubusercontent.com` | Fuente de registro de cambios para [`/release-notes`](/docs/es/commands). En sesiones interactivas, Claude Code también la obtiene en segundo plano al inicio cuando su registro de cambios en caché aún no cubre la versión en ejecución, como el primer inicio después de una actualización; las sesiones no interactivas y en la nube nunca la obtienen |249| `raw.githubusercontent.com` | Fuente de registro de cambios para [`/release-notes`](/docs/es/commands). En sesiones interactivas, Claude Code también la obtiene en segundo plano al inicio cuando su registro de cambios en caché aún no cubre la versión en ejecución, como el primer inicio después de una actualización; las sesiones no interactivas y en la nube nunca la obtienen |

249| `*-review.googlesource.com` | Búsqueda de cambios de Gerrit en checkouts de `googlesource.com`. Cuando una sesión de pestaña de Claude Desktop Code se inicia o se reanuda en un checkout [confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust) cuyo `origin` es un host `googlesource.com`, Claude Code pregunta anónimamente al servidor `-review` de ese host por el cambio abierto que coincida con el `Change-Id` de HEAD, una vez por inicio o reanudación. Otros tipos de sesión omiten la búsqueda, y no se contacta a ningún otro host de Gerrit. Opcional: deshabilitar con [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars) |250| `*-review.googlesource.com` | Búsqueda de cambios de Gerrit en checkouts de `googlesource.com`. Cuando una sesión de pestaña de Claude Desktop Code se inicia o se reanuda en un checkout [confiable](/docs/es/permissions#project-allow-rules-and-workspace-trust) cuyo `origin` es un host `googlesource.com`, Claude Code pregunta anónimamente al servidor `-review` de ese host por el cambio abierto que coincida con el `Change-Id` de HEAD, una vez por inicio o reanudación. Otros tipos de sesión omiten la búsqueda, y no se contacta a ningún otro host de Gerrit. Opcional: deshabilitar con [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars) |

250| `http-intake.logs.us5.datadoghq.com` | Eventos de telemetría operativa, enviados solo cuando la CLI usa la API de Anthropic directamente, nunca para Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry. Opcional: deshabilitar con [`DISABLE_TELEMETRY`](/docs/es/data-usage#telemetry-services) o `DO_NOT_TRACK` |251| `http-intake.logs.us5.datadoghq.com` | Eventos de telemetría operativa, enviados solo cuando la CLI usa la API de Anthropic directamente, nunca para Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry. Opcional: deshabilitar con [`DISABLE_TELEMETRY`](/docs/es/data-usage#telemetry-services) o `DO_NOT_TRACK` |

output-styles.md +122 −40

Details

4 4 

5# Estilos de salida5# Estilos de salida

6 6 

7> Adapte Claude Code para usos más allá de la ingeniería de software7> Cambie el rol, tono y formato de respuesta de Claude Code con un estilo de salida integrado como Conciso o Explicativo, o escriba un estilo personalizado.

8 8 

9Los estilos de salida cambian cómo responde Claude, no lo que Claude sabe. Establecen el rol, el tono y el formato de salida de Claude para cada respuesta. Use uno cuando siga re-solicitando la misma voz o formato en cada turno, o cuando desee que Claude actúe como algo diferente a un ingeniero de software.9Un estilo de salida es un conjunto de instrucciones que establece el rol, tono y formato de respuesta de Claude para cada respuesta en una sesión. Claude Code incluye cuatro estilos integrados además de su predeterminado, y usted puede escribir el suyo propio.

10 10 

11Un estilo de salida personalizado le proporciona a Claude sus propias instrucciones y le permite elegir si desea mantener las instrucciones integradas de ingeniería de software de Claude Code. Manténgalas cuando esté cambiando cómo Claude se comunica pero sigue codificando, como siempre respondiendo con un diagrama. Déjelas fuera cuando Claude no esté haciendo ingeniería de software en absoluto, como un asistente de escritura o analista de datos.11Utilice un estilo de salida para cambiar la forma en que Claude responde y trabaja con usted durante toda una sesión, de modo que no tenga que repetir la solicitud en cada indicación. Por ejemplo, un estilo integrado puede hacer que las respuestas sean más cortas, agregar una explicación de cada cambio, o hacer que Claude comience a trabajar sin hacer preguntas rutinarias. Un estilo personalizado también puede convertir Claude en algo diferente a un ingeniero de software, como un asistente de escritura o un analista de datos.

12 12 

13Para instrucciones sobre su proyecto, convenciones o base de código, use [CLAUDE.md](/docs/es/memory) en su lugar.13* Para usar un estilo integrado, elija uno de los [estilos de salida integrados](#built-in-output-styles) y [cambie a él](#change-your-output-style).

14* Para escribir sus propias instrucciones, [cree un estilo de salida personalizado](#create-a-custom-output-style).

15 

16<Note>

17 Un estilo de salida proporciona instrucciones a Claude para que las siga. No garantiza que algo siempre suceda o nunca suceda. Algunas necesidades se ajustan mejor a una característica diferente:

18 

19 * Para lo que Claude debe saber sobre su proyecto, use [CLAUDE.md](/docs/es/memory).

20 * Para algo que tiene que suceder cada vez, como formatear después de cada edición o bloquear un comando, use un [hook](/docs/es/hooks-guide).

21 * Para skills, subagentes y las otras opciones, consulte [Elegir entre un estilo de salida y otras características](#choose-between-an-output-style-and-other-features).

22</Note>

14 23 

15<h2 id="built-in-output-styles">24<h2 id="built-in-output-styles">

16 Estilos de salida integrados25 Estilos de salida integrados

17</h2>26</h2>

18 27 

19El estilo de salida **Default** de Claude Code es su conjunto estándar de instrucciones, diseñado para ayudarle a completar tareas de ingeniería de software de manera eficiente.28Claude Code comienza en el estilo [**Default**](#default), sus instrucciones estándar para completar tareas de ingeniería de software. Cada uno de los otros cuatro estilos integrados mantiene esas instrucciones y añade las suyas propias.

29 

30Esta tabla muestra qué cambia cada estilo en una sesión y cuándo es apropiado:

31 

32| Estilo | Qué cambia | Úselo cuando |

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

34| [Proactive](#proactive) | Claude comienza el trabajo de inmediato y realiza suposiciones razonables en lugar de preguntar sobre decisiones rutinarias | Desea que Claude continúe trabajando a través de decisiones rutinarias, y corregirá el rumbo si una suposición es incorrecta |

35| [Concise](#concise) | Las respuestas comienzan con el resultado y omiten el preámbulo, la narración y los resúmenes | Las respuestas predeterminadas son más largas de lo que desea |

36| [Explanatory](#explanatory) | Claude añade bloques cortos de `Insight` que explican las opciones detrás del código que escribe | Está conociendo una base de código o desea el razonamiento junto con el cambio |

37| [Learning](#learning) | Claude explica sus opciones y deja pequeños fragmentos de código para que usted escriba | Desea práctica de codificación práctica mientras la tarea aún se completa |

38 

39<h3 id="default">

40 Default

41</h3>

42 

43Default significa que no se selecciona ningún estilo de salida. Claude Code no añade instrucciones de estilo, y Claude trabaja desde el símbolo del sistema estándar de Claude Code, que está escrito para tareas de ingeniería de software.

44 

45`default` aparece en la lista `/output-style` con los otros estilos, por lo que [lo selecciona de la misma manera](#change-your-output-style).

46 

47<h3 id="proactive">

48 Proactive

49</h3>

50 

51En el estilo Proactive, Claude comienza a implementar tan pronto como envía una tarea. Realiza suposiciones razonables sobre decisiones rutinarias en lugar de detenerse para preguntar, y no cambia al modo de plan a menos que solicite un plan. Puede redirigirlo en cualquier momento.

52 

53Las instrucciones del estilo también le dicen a Claude que se comunique con usted en la conversación antes de una acción que elimine datos o cambie un sistema compartido o de producción. Esa verificación es una instrucción que Claude sigue y es separada de los mensajes de permiso.

54 

55Cambiar al estilo Proactive no cambia su [modo de permiso](/docs/es/permission-modes). Su modo de permiso aún decide qué llamadas de herramienta se ejecutan sin preguntarle, por lo que los mensajes de permiso aparecen de la misma manera que antes de cambiar.

56 

57<h3 id="concise">

58 Concise

59</h3>

60 

61En el estilo Concise, la primera oración de una respuesta indica qué sucedió o cuál es la respuesta. Claude omite la introducción, la narración paso a paso y el resumen de cierre, y responde una pregunta simple en una a tres oraciones. Realiza el trabajo de ingeniería de manera tan exhaustiva como en el estilo Default. Requiere Claude Code v2.1.237 o posterior.

62 

63Claude aún escribe a toda extensión en estos casos:

64 

65* **Cualquier cosa que solicite**: cuando solicita una explicación o más detalle, Claude responde completamente.

66* **Cualquier cosa que necesite para actuar de manera segura**: los informes de errores, la salida de pruebas fallidas, las advertencias de seguridad y las confirmaciones de acciones destructivas mantienen su contenido completo.

67 

68<h3 id="explanatory">

69 Explanatory

70</h3>

71 

72En el estilo Explanatory, Claude realiza la tarea de la manera que lo hace en el estilo Default y añade explicaciones breves de por qué hizo las opciones que hizo. Cada explicación aparece en la conversación, antes o después del código sobre el que trata, en un bloque etiquetado como `Insight`. Las explicaciones no se escriben en sus archivos como comentarios.

20 73 

21Hay cuatro estilos de salida integrados adicionales:74Un bloque `Insight` contiene dos o tres puntos sobre su base de código o el código que escribió Claude, como este después de añadir un punto final de API:

22 75 

23* **Proactive**: Claude se ejecuta inmediatamente, realiza suposiciones razonables en lugar de pausarse para decisiones rutinarias, y prefiere la acción sobre la planificación. Esta es una orientación de ejecución autónoma más fuerte que la que aplica el [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), y funciona sin cambiar su modo de permisos, por lo que su modo de permisos aún decide qué se ejecuta sin preguntar.76```text theme={null}

77★ Insight ─────────────────────────────────────

78- Every route in this repo goes through the withAuth wrapper, so the new endpoint gets session checks without its own middleware.

79- Rate limits are set per route in limits.ts, which is why this change adds an entry there rather than a global default.

80─────────────────────────────────────────────────

81```

82 

83<h3 id="learning">

84 Learning

85</h3>

24 86 

25* **Concise**: Claude comienza con el resultado, omite el preámbulo y la narración, y mantiene las respuestas breves por defecto, mientras realiza el trabajo de ingeniería de manera tan exhaustiva como en el estilo Default. Cuando le pide una explicación o más detalle, Claude responde completamente. Claude siempre mantiene el contenido completo de los informes de errores, advertencias de seguridad y confirmaciones de acciones destructivas. Requiere Claude Code v2.1.237 o posterior.87En el estilo Learning, Claude añade los mismos bloques `Insight` que el [estilo Explanatory](#explanatory) y también le pide que escriba parte del código. Claude maneja la implementación rutinaria por sí mismo. Cuando llega a una pieza con una decisión de diseño real, como manejo de errores, una estructura de datos o lógica empresarial con más de un enfoque válido, deja algunas líneas para usted.

26 88 

27* **Explanatory**: Proporciona "Insights" educativos entre ayudarle a completar tareas de ingeniería de software. Le ayuda a entender las opciones de implementación y los patrones de la base de código.89Claude marca el lugar con un comentario `TODO(human)` en el archivo, luego envía una solicitud que dice qué ya está construido, qué escribir y qué considerar:

28 90 

29* **Learning**: Modo colaborativo de aprendizaje práctico donde Claude no solo compartirá "Insights" mientras codifica, sino que también le pedirá que contribuya con pequeñas piezas de código estratégicas. Claude Code agregará marcadores `TODO(human)` en su código para que usted implemente.91```text theme={null}

92● Learn by Doing

93 

94Context: The upload form is in place and calls validateFile() before accepting a file. Size and type checks work for images, but the switch statement has no handling for documents yet.

95 

96Your Task: In upload.js, implement the case "document" branch inside validateFile(). Look for TODO(human).

97 

98Guidance: Decide on a size limit for documents and whether the file extension has to match the MIME type. Return {valid: boolean, error?: string}.

99```

100 

101Claude luego se detiene y espera. Escriba su código en el comentario `TODO(human)` y dígale a Claude cuándo haya terminado. Claude responde con un `Insight` sobre su código y continúa la tarea.

30 102 

31<h2 id="change-your-output-style">103<h2 id="change-your-output-style">

32 Cambiar su estilo de salida104 Cambiar su estilo de salida

33</h2>105</h2>

34 106 

35Elija un estilo de una de estas formas:107Elija un estilo con el comando, un menú o un archivo de configuración. El comando y ambos menús guardan su selección en `.claude/settings.local.json` en el [nivel de proyecto local](/docs/es/settings).

36 108 

37* **Comando `/output-style`**: ejecute `/output-style <style>` para cambiar, por ejemplo `/output-style concise`. Sin argumentos, el comando enumera los estilos que puede elegir y marca el actual. Claude Code guarda su selección en `.claude/settings.local.json` en el [nivel de proyecto local](/docs/es/settings).109* **Comando `/output-style`**: ejecute `/output-style <style>` para cambiar, por ejemplo `/output-style concise`. Sin argumentos, el comando enumera los estilos que puede elegir y marca el actual.

38 110 

39 El comando también funciona en [modo no interactivo](/docs/es/headless) y sesiones de Agent SDK, y desde la aplicación móvil o web a través de [Control Remoto](/docs/es/remote-control#limitations), donde puede enumerar y seleccionar solo [estilos integrados](#built-in-output-styles). Requiere Claude Code v2.1.269 o posterior.111 El comando también funciona en [modo no interactivo](/docs/es/headless) y sesiones de Agent SDK, y desde la aplicación móvil o web a través de [Control Remoto](/docs/es/remote-control#limitations), donde puede enumerar y seleccionar solo [estilos integrados](#built-in-output-styles). Requiere Claude Code v2.1.269 o posterior.

40* **Terminal**: ejecute `/config` y seleccione **Output style** para elegir un estilo de un menú. Claude Code guarda su selección en `.claude/settings.local.json` en el [nivel de proyecto local](/docs/es/settings).112* **Menú de terminal**: ejecute `/config` y seleccione **Output style** para elegir un estilo de un menú.

41* **Extensión de VS Code**: abra el [menú de comandos](/docs/es/vs-code#use-the-prompt-box) con `/` y seleccione **Output styles** para elegir un estilo, incluidos sus estilos personalizados. Claude Code guarda su selección en `.claude/settings.local.json`, el mismo archivo que escribe el menú de terminal. Requiere Claude Code v2.1.257 o posterior.113* **Extensión de VS Code**: abra el [menú de comandos](/docs/es/vs-code#use-the-prompt-box) con `/` y seleccione **Output styles** para elegir un estilo, incluidos sus estilos personalizados. Requiere Claude Code v2.1.257 o posterior.

42* **Aplicación de escritorio**: establezca el campo `outputStyle` en un archivo de configuración, por ejemplo `.claude/settings.local.json`, el archivo que escribe el menú de terminal. Cuando ejecute `/config` allí, Claude Code [abre **Settings > Claude Code**](/docs/es/desktop#what%E2%80%99s-not-available-in-desktop) en lugar de un menú.114* **Aplicación de escritorio**: establezca el campo `outputStyle` en un archivo de configuración, por ejemplo `.claude/settings.local.json`, el archivo que escribe el menú de terminal. Cuando ejecute `/config` allí, Claude Code [abre **Settings > Claude Code**](/docs/es/desktop#what%E2%80%99s-not-available-in-desktop) en lugar de un menú.

43 115 

44Para establecer un estilo sin el menú, edite el campo `outputStyle` directamente en un archivo de configuración:116Para establecer un estilo sin el menú, edite el campo `outputStyle` directamente en un archivo de configuración:


49}121}

50```122```

51 123 

124El valor distingue mayúsculas de minúsculas, así que escriba los nombres integrados como `Proactive`, `Concise`, `Explanatory` y `Learning`. Un valor que no coincida exactamente con un nombre de estilo, como `explanatory`, le proporciona el estilo Predeterminado. El comando `/output-style` ignora mayúsculas y minúsculas.

125 

126Para hacer que un estilo sea su predeterminado en todos los proyectos, establezca `outputStyle` en `~/.claude/settings.json`. Los archivos de configuración propios de un proyecto [tienen precedencia](/docs/es/settings#settings-precedence) sobre ese valor.

127 

52Cuando cambia de estilos a mitad de sesión, Claude utiliza el nuevo estilo a partir de su siguiente mensaje. Para lo que cuesta ese primer mensaje en almacenamiento en caché de prompts, consulte [Cambiar el estilo de salida](/docs/es/prompt-caching#changing-output-style). Antes de v2.1.251, el nuevo estilo se aplicaba solo después de ejecutar `/clear` o iniciar una nueva sesión.128Cuando cambia de estilos a mitad de sesión, Claude utiliza el nuevo estilo a partir de su siguiente mensaje. Para lo que cuesta ese primer mensaje en almacenamiento en caché de prompts, consulte [Cambiar el estilo de salida](/docs/es/prompt-caching#changing-output-style). Antes de v2.1.251, el nuevo estilo se aplicaba solo después de ejecutar `/clear` o iniciar una nueva sesión.

53 129 

54<h2 id="create-a-custom-output-style">130<h2 id="create-a-custom-output-style">


98[Plugins](/docs/es/plugins-reference) también pueden enviar estilos de salida en un directorio `output-styles/`.174[Plugins](/docs/es/plugins-reference) también pueden enviar estilos de salida en un directorio `output-styles/`.

99 175 

100<h3 id="frontmatter">176<h3 id="frontmatter">

101 Frontmatter177 Referencia de frontmatter

102</h3>178</h3>

103 179 

104Los archivos de estilo de salida admiten estos campos de frontmatter:180Configure un estilo de salida con [frontmatter](/docs/es/glossary#frontmatter) YAML entre marcadores `---` en la parte superior del archivo. Todos los campos son opcionales, y los nombres de los campos utilizan palabras en minúsculas separadas por guiones. Un campo mal escrito se ignora sin un error. Si el YAML no se analiza, el estilo aún se carga bajo su nombre de archivo sin campos establecidos; ejecute `claude --debug` para ver el error de análisis.

181 

182| Campo | Requerido | Descripción |

183| :------------------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

184| `name` | No | Nombre del estilo de salida, mostrado en el selector `/config`. Predeterminado: el nombre del archivo |

185| `description` | No | Descripción del estilo de salida, mostrada en el selector `/config` |

186| `keep-coding-instructions` | No | Establezca en `true` para mantener las instrucciones integradas de ingeniería de software de Claude Code junto con su estilo. Predeterminado: `false` |

187| `force-for-plugin` | No | Solo estilos de salida de plugins. Establezca en `true` para aplicar este estilo automáticamente siempre que el plugin esté habilitado, sin requerir que los usuarios lo seleccionen. Anula la configuración `outputStyle` del usuario. Si varios plugins habilitados establecen esto, Claude Code utiliza el primero cargado. Predeterminado: `false` |

105 188 

106| Frontmatter | Propósito | Predeterminado |189<span id="comparisons-to-related-features" />

107| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------- |190 

108| `name` | Nombre del estilo de salida, si no es el nombre del archivo | Se hereda del nombre del archivo |191<h2 id="choose-between-an-output-style-and-other-features">

109| `description` | Descripción del estilo de salida, mostrada en el selector `/config` | Ninguno |192 Elige entre un estilo de salida y otras características

110| `keep-coding-instructions` | Mantener las instrucciones integradas de ingeniería de software de Claude Code | `false` |193</h2>

111| `force-for-plugin` | Solo estilos de salida de plugins: aplique este estilo automáticamente siempre que el plugin esté habilitado, sin requerir que los usuarios lo seleccionen. Anula la configuración `outputStyle` del usuario. Si varios plugins habilitados establecen esto, Claude Code usa el primero cargado. | `false` |194 

195Un estilo de salida se aplica a cada respuesta en una sesión. Es una instrucción que Claude sigue, por lo que nada la impone. Cuando lo que desea es más específico que cada respuesta, u tiene que suceder sin falta, otra característica se ajusta mejor.

196 

197Esta tabla hace coincidir lo que desea con la característica que lo hace:

198 

199| Lo que desea | Usar | Por qué se ajusta |

200| :---------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

201| Cada respuesta en una voz, longitud o formato determinados, o Claude en un rol diferente | Un estilo de salida | Se aplica a toda la sesión, y cambia estilos con un comando |

202| Claude debe conocer las convenciones, comandos y estructura de su proyecto | [CLAUDE.md](/docs/es/memory) | Contiene lo que Claude debe saber sobre la base de código, y permanece cargado cualquiera que sea el estilo que elija |

203| Instrucciones para un tipo de tarea, como una lista de verificación de lanzamiento o un procedimiento de revisión | Una [skill](/docs/es/skills) | Claude la carga solo cuando la invoca o la tarea coincide, por lo que no da forma a respuestas no relacionadas |

204| Algo que suceda cada vez sin excepción, como formatear después de cada edición o bloquear un comando | Un [hook](/docs/es/hooks-guide) | Claude Code ejecuta un hook en sí mismo en un evento del ciclo de vida, por lo que no depende de que Claude siga una instrucción |

205| Un asistente con sus propias instrucciones, modelo y herramientas para una tarea enfocada | Un [subagent](/docs/es/sub-agents) | Se ejecuta en un contexto separado con su propio mensaje del sistema y devuelve un resumen a su conversación |

206| Una adición a las instrucciones de Claude que pasa cuando inicia Claude Code | [`--append-system-prompt`](/docs/es/cli-reference#system-prompt-flags) | Se añade al mensaje del sistema sin eliminar nada |

207 

208Estas características se combinan. Por ejemplo, puede usar CLAUDE.md para lo que Claude debe saber, un estilo de salida para cómo responde, y un hook para cualquier cosa que tenga que ser garantizada. [Extienda Claude Code](/docs/es/features-overview) compara el resto de las características de la extensión.

112 209 

113<h2 id="how-output-styles-work">210<h2 id="how-output-styles-work">

114 Cómo funcionan los estilos de salida211 Cómo funcionan los estilos de salida


117Un estilo de salida cambia las instrucciones que Claude Code le da a Claude.214Un estilo de salida cambia las instrucciones que Claude Code le da a Claude.

118 215 

119* Claude Code envía las instrucciones del estilo activo con cada solicitud.216* Claude Code envía las instrucciones del estilo activo con cada solicitud.

120* Cuando [selecciona un estilo diferente al predeterminado](#change-your-output-style), Claude Code también le recuerda a Claude el estilo durante la conversación.217* Los estilos de salida personalizados omiten las instrucciones de ingeniería de software integradas de Claude Code, como cómo delimitar cambios, escribir comentarios y verificar el trabajo, a menos que `keep-coding-instructions` esté configurado en `true`.

121* Los estilos de salida personalizados dejan fuera las instrucciones integradas de ingeniería de software de Claude Code, como cómo delimitar cambios, escribir comentarios y verificar el trabajo, a menos que `keep-coding-instructions` esté establecido en `true`.

122 218 

123Los estilos de salida se aplican a la conversación principal y a un [fork](/docs/es/sub-agents#fork-the-current-conversation), que hereda la conversación completa y el mensaje del sistema del padre. Otros [subagentes ejecutan su propio mensaje del sistema](/docs/es/sub-agents#what-loads-at-startup), por lo que los estilos no cambian cómo responden.219Los estilos de salida se aplican a la conversación principal y a un [fork](/docs/es/sub-agents#fork-the-current-conversation), que hereda la conversación completa y el mensaje del sistema del padre. Otros [subagentes ejecutan su propio mensaje del sistema](/docs/es/sub-agents#what-loads-at-startup), por lo que los estilos no cambian cómo responden.

124 220 

125El uso de tokens depende del estilo. Las instrucciones de un estilo agregan tokens de entrada, aunque el almacenamiento en caché de prompts reduce este costo después de la primera solicitud en una sesión.221El uso de tokens depende del estilo. Las instrucciones de un estilo agregan tokens de entrada, aunque el almacenamiento en caché de solicitudes reduce este costo después de la primera solicitud en una sesión.

126 

127Los estilos integrados Explanatory y Learning producen respuestas más largas que Default por diseño, lo que aumenta los tokens de salida. El estilo Concise hace lo opuesto al instruir a Claude que mantenga las respuestas cortas por defecto. Para estilos personalizados, el uso de tokens de salida depende de lo que sus instrucciones le digan a Claude que produzca.

128 

129<h2 id="comparisons-to-related-features">

130 Comparaciones con características relacionadas

131</h2>

132 

133Varias características personalizan cómo se comporta Claude Code. Los estilos de salida cambian las instrucciones predeterminadas de Claude Code y se aplican a cada respuesta. Los otros agregan instrucciones sin cambiar los valores predeterminados, o los limitan a una tarea específica.

134 222 

135| Característica | Cómo funciona | Úselo cuando |223Los estilos Explanatory y Learning integrados producen respuestas más largas que Default por diseño, lo que aumenta los tokens de salida. El estilo Concise hace lo opuesto al instruir a Claude que mantenga las respuestas cortas por defecto. Para estilos personalizados, el uso de tokens de salida depende de lo que sus instrucciones le digan a Claude que produzca.

136| :----------------------- | :---------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------ |

137| Estilos de salida | Cambia las instrucciones predeterminadas de Claude Code | Desea un rol, tono o formato de respuesta predeterminado diferente en cada turno |

138| [CLAUDE.md](/docs/es/memory) | Agrega un mensaje de usuario después del mensaje del sistema | Claude siempre debe conocer sus convenciones de proyecto y contexto de base de código |

139| `--append-system-prompt` | Se agrega al mensaje del sistema sin eliminar nada | Desea una adición única pasada como una [bandera CLI](/docs/es/cli-reference#system-prompt-flags) al iniciar |

140| [Agents](/docs/es/sub-agents) | Ejecuta un subagente con su propio mensaje del sistema, modelo y herramientas | Desea un ayudante con alcance separado para una tarea enfocada |

141| [Skills](/docs/es/skills) | Carga instrucciones específicas de tareas cuando se invoca o es relevante | Tiene un flujo de trabajo reutilizable |

142 224 

143<h2 id="related-resources">225<h2 id="related-resources">

144 Recursos relacionados226 Recursos relacionados

overview.md +1 −0

Details

247* [Guía de inicio rápido](/docs/es/quickstart): recorre tu primera tarea real, desde explorar una base de código hasta confirmar una corrección247* [Guía de inicio rápido](/docs/es/quickstart): recorre tu primera tarea real, desde explorar una base de código hasta confirmar una corrección

248* [Almacena instrucciones y memorias](/docs/es/memory): proporciona a Claude instrucciones persistentes con archivos CLAUDE.md y memoria automática248* [Almacena instrucciones y memorias](/docs/es/memory): proporciona a Claude instrucciones persistentes con archivos CLAUDE.md y memoria automática

249* [Flujos de trabajo comunes](/docs/es/common-workflows) y [mejores prácticas](/docs/es/best-practices): patrones para obtener lo máximo de Claude Code249* [Flujos de trabajo comunes](/docs/es/common-workflows) y [mejores prácticas](/docs/es/best-practices): patrones para obtener lo máximo de Claude Code

250* [Claude Academy](https://academy.claude.com/): cursos gratuitos a tu propio ritmo, incluyendo [Claude Code 101](https://academy.claude.com/courses/claude-code-101) y [Claude Code en Acción](https://academy.claude.com/courses/claude-code-in-action)

250* [Un arnés para cada tarea](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code): cómo el equipo de Claude Code utiliza [flujos de trabajo dinámicos](/docs/es/workflows) para orquestar subagentes a escala251* [Un arnés para cada tarea](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code): cómo el equipo de Claude Code utiliza [flujos de trabajo dinámicos](/docs/es/workflows) para orquestar subagentes a escala

251* [Configuración](/docs/es/settings): personaliza Claude Code para tu flujo de trabajo252* [Configuración](/docs/es/settings): personaliza Claude Code para tu flujo de trabajo

252* [Solución de problemas](/docs/es/troubleshooting): soluciones para problemas comunes253* [Solución de problemas](/docs/es/troubleshooting): soluciones para problemas comunes

Details

267 267 

268Cuando el plan esté listo, Claude lo presenta y pregunta cómo proceder. Desde ese aviso puede elegir:268Cuando el plan esté listo, Claude lo presenta y pregunta cómo proceder. Desde ese aviso puede elegir:

269 269 

270* **Sí, y usar modo automático**: apruebe e inicie en [modo automático](#eliminate-prompts-with-auto-mode). Cuando el modo automático no está disponible, esta opción dice **Sí, aceptar automáticamente ediciones**. Si inició la sesión con permisos de omisión habilitados, la opción dice **Sí, y cambiar a OMITIR PERMISOS (sin más avisos) para esta sesión** en su lugar.270* **Sí, y usar modo automático**: apruebe e inicie en [modo automático](#eliminate-prompts-with-auto-mode). Si el modo automático no está [disponible para su sesión](#eliminate-prompts-with-auto-mode), por ejemplo porque su organización lo desactivó, esta opción dice **Sí, aceptar automáticamente ediciones**. Si inició la sesión con permisos de omisión habilitados, la opción dice **Sí, y cambiar a OMITIR PERMISOS (sin más avisos) para esta sesión** en su lugar.

271* **Sí, aprobar manualmente ediciones**: apruebe y revise cada edición individualmente.271* **Sí, aprobar manualmente ediciones**: apruebe y revise cada edición individualmente.

272* **No, seguir planificando**: permanezca en modo plan y dígale a Claude qué cambiar.272* **No, seguir planificando**: permanezca en modo plan y dígale a Claude qué cambiar.

273 273 


457 457 

458Los límites no se almacenan como reglas. El clasificador los vuelve a leer de la transcripción en cada verificación, por lo que un límite puede perderse si [compactación de contexto](/docs/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, agregue una [regla de denegación](/docs/es/permissions#permission-rule-syntax) en su lugar.458Los límites no se almacenan como reglas. El clasificador los vuelve a leer de la transcripción en cada verificación, por lo que un límite puede perderse si [compactación de contexto](/docs/es/costs#reduce-token-usage) elimina el mensaje que lo estableció. Para una garantía dura, agregue una [regla de denegación](/docs/es/permissions#permission-rule-syntax) en su lugar.

459 459 

460<h3 id="approvals-you-state-in-conversation">

461 Aprobaciones que establece en la conversación

462</h3>

463 

464Si le dice a Claude que una acción bloqueada está permitida, el clasificador lee eso como su aprobación y puede despejar el bloqueo. La forma en que lo expresó decide si la acción se ejecuta y qué tan lejos llega la aprobación:

465 

466* **Nombre la acción y sus especificidades**: su mensaje tiene que nombrar la acción y la cosa específica que la hace peligrosa, como la rama de una inserción forzada. Nombrar solo el verbo no aclara nada, así que "puede hacer una inserción forzada" deja el bloqueo en su lugar.

467* **Espere que cubra una acción**: una aprobación cubre la acción destructiva que nombró, así que una acción posterior se bloquea nuevamente a menos que haya otorgado la aprobación como permanente. Para dejar de aprobar un patrón rutinario una acción a la vez, agréguelo a [`autoMode.allow`](/docs/es/auto-mode-config#override-the-block-and-allow-rules).

468* **Algunos bloqueos permanecen en su lugar**: [el orden de precedencia del clasificador](/docs/es/auto-mode-config#override-the-block-and-allow-rules) establece qué bloqueos puede alcanzar su aprobación. Para ejecutar un paso que no despejará, [salga del modo automático](#switch-permission-modes) y responda la solicitud de permiso.

469 

460<h3 id="when-auto-mode-falls-back">470<h3 id="when-auto-mode-falls-back">

461 Cuando el modo automático retrocede471 Cuando el modo automático retrocede

462</h3>472</h3>


508 1. Antes de que comience un subagente, se evalúa la descripción de tarea delegada, por lo que una tarea de aspecto peligroso se bloquea en el momento del desove.518 1. Antes de que comience un subagente, se evalúa la descripción de tarea delegada, por lo que una tarea de aspecto peligroso se bloquea en el momento del desove.

509 2. Mientras se ejecuta el subagente, cada una de sus acciones pasa por el clasificador con las mismas reglas que la sesión principal, y cualquier `permissionMode` en el frontmatter del subagente se ignora.519 2. Mientras se ejecuta el subagente, cada una de sus acciones pasa por el clasificador con las mismas reglas que la sesión principal, y cualquier `permissionMode` en el frontmatter del subagente se ignora.

510 3. Cuando el subagente termina, el clasificador revisa su trabajo y su informe final antes de que el padre lea el informe. Cuando el clasificador marca el trabajo o informe del subagente, o una verificación de seguridad de API separada rechaza la revisión, el informe aún se entrega, antepuesto con una advertencia de seguridad. Cuando el clasificador no está disponible para la revisión, el informe llega con una nota para verificar el trabajo del subagente antes de actuar en consecuencia.520 3. Cuando el subagente termina, el clasificador revisa su trabajo y su informe final antes de que el padre lea el informe. Cuando el clasificador marca el trabajo o informe del subagente, o una verificación de seguridad de API separada rechaza la revisión, el informe aún se entrega, antepuesto con una advertencia de seguridad. Cuando el clasificador no está disponible para la revisión, el informe llega con una nota para verificar el trabajo del subagente antes de actuar en consecuencia.

511 

512 El paso 1 requiere Claude Code v2.1.178 o posterior. Las versiones anteriores aplicaban el clasificador en los pasos 2 y 3, pero no evaluaban la descripción de tarea antes de que comenzara el subagente.

513 </Accordion>521 </Accordion>

514 522 

515 <Accordion title="Costo y latencia">523 <Accordion title="Costo y latencia">


660 668 

661Claude Code también trata un glob o barra diagonal final directamente bajo una variable de shell, como `rm -rf "$DIR"/*`, como una eliminación de ruta crítica, porque el comando se convierte en una eliminación desde la raíz del sistema de archivos cuando la variable está vacía.669Claude Code también trata un glob o barra diagonal final directamente bajo una variable de shell, como `rm -rf "$DIR"/*`, como una eliminación de ruta crítica, porque el comando se convierte en una eliminación desde la raíz del sistema de archivos cuando la variable está vacía.

662 670 

663Ocultar la eliminación dentro de una sustitución de comandos con `$(...)` o comillas invertidas, o sustitución de procesos con `<(...)`, no omite la verificación. Claude Code encuentra una eliminación de ruta crítica ya sea que esté dentro de la forma anidada, como en `(rm -rf ~)` o `echo "$(rm -rf ~)"`, o en otro lugar del mismo comando.671El aviso para este caso de variable nombra el `rm` marcado y dice cómo reescribirlo para que la verificación pase:

672 

673* Para una variable como `$DIR`, proteja cada expansión para que el shell se detenga con un error cuando la variable no esté configurada o esté vacía, como en `rm -rf "${DIR:?}"/*`, o use una ruta literal

674* Para una variable que normalmente está configurada, como `$HOME`, use una ruta literal

675 

676Una eliminación cuyas expansiones están todas protegidas de esa manera no es una eliminación de ruta crítica, por lo que en modo `bypassPermissions` se ejecuta sin un aviso.

677 

678Ocultar la eliminación dentro de una subshell con `(...)`, un grupo de llaves con `{ ...; }`, sustitución de comandos con `$(...)` o comillas invertidas, o sustitución de procesos con `<(...)`, no omite la verificación. Claude Code encuentra una eliminación de ruta crítica ya sea que esté dentro de la forma anidada, como en `(rm -rf ~)` o `echo "$(rm -rf ~)"`, o en otro lugar del mismo comando.

664 679 

665<h3 id="remove-item-in-powershell">680<h3 id="remove-item-in-powershell">

666 Remove-Item en PowerShell681 Remove-Item en PowerShell

permissions.md +2 −10

Details

26 26 

27Antes de v2.1.211, Claude Code siempre guardaba la regla en el directorio de inicio, por lo que una aprobación otorgada en un worktree o subdirectorio no se aplicaba al resto del repositorio. Las reglas que las versiones anteriores guardaron en un subdirectorio o worktree aún se aplican a las sesiones iniciadas allí.27Antes de v2.1.211, Claude Code siempre guardaba la regla en el directorio de inicio, por lo que una aprobación otorgada en un worktree o subdirectorio no se aplicaba al resto del repositorio. Las reglas que las versiones anteriores guardaron en un subdirectorio o worktree aún se aplican a las sesiones iniciadas allí.

28 28 

29A veces un mensaje de permiso ofrece solo una aprobación única, sin opción de "no preguntar de nuevo" y sin opción de permitir la acción para el resto de la sesión. Claude Code ofrece esas opciones solo cuando el mensaje puede mostrarle todo lo que permitirían, por lo que una regla que guarde desde un mensaje cubre solo lo que su opción nombrada.29A veces un mensaje de permiso ofrece solo una aprobación única, sin opción de "no preguntar de nuevo" y sin opción de permitir la acción para el resto de la sesión. Claude Code ofrece esas opciones solo cuando el mensaje puede mostrarle todo lo que permitirían, por lo que una regla que guarde desde un mensaje cubre solo lo que su opción nombrada. Cuando el mensaje ofrece solo la aprobación única, apruebe la acción una vez, o agregue la regla usted mismo en [`/permissions`](#manage-permissions).

30 

31Cuando el directorio en el que inició Claude Code es lo que hace que la etiqueta de la opción sea demasiado larga, Claude Code la acorta en la etiqueta, reemplazando su directorio de inicio con `~` y luego el final de la ruta con `…`, y mantiene la opción. Aún guarda la misma regla. Claude Code deja las opciones fuera en tres casos:

32 

33* **Comando o edición:** demasiado grande para mostrar en su totalidad.

34* **Comandos o rutas que la regla cubriría:** la etiqueta no puede ajustarlos todos.

35* **Directorio de inicio demasiado largo, no acortado:** contiene caracteres que Claude Code no puede mostrar de forma segura, o incluso su inicio no cabe.

36 

37Apruebe la acción una vez, o agregue la regla usted mismo en [`/permissions`](#manage-permissions).

38 30 

39<h3 id="add-a-comment-when-you-answer-a-permission-prompt">31<h3 id="add-a-comment-when-you-answer-a-permission-prompt">

40 Agregue un comentario cuando responda a un mensaje de permiso32 Agregue un comentario cuando responda a un mensaje de permiso


224 216 

225Las reglas de permiso aceptan comodines de nombre de herramienta solo después de un prefijo literal `mcp__<server>__`. El segmento del servidor debe estar libre de comodines para que la regla nombre un servidor específico que haya configurado. `mcp__puppeteer__*` coincide con todas las herramientas del servidor `puppeteer`, y `mcp__github__get_*` coincide con sus herramientas `get_`. Un comodín de permiso sin ancla como `"*"`, `"B*"`, o `"mcp__*"` se omite con una advertencia y no aprueba automáticamente nada.217Las reglas de permiso aceptan comodines de nombre de herramienta solo después de un prefijo literal `mcp__<server>__`. El segmento del servidor debe estar libre de comodines para que la regla nombre un servidor específico que haya configurado. `mcp__puppeteer__*` coincide con todas las herramientas del servidor `puppeteer`, y `mcp__github__get_*` coincide con sus herramientas `get_`. Un comodín de permiso sin ancla como `"*"`, `"B*"`, o `"mcp__*"` se omite con una advertencia y no aprueba automáticamente nada.

226 218 

227Una regla de denegación o solicitud cuyo nombre de herramienta no coincide con ninguna herramienta conocida produce una advertencia de inicio para detectar errores tipográficos. Los nombres de herramientas que contienen `_` o `*` están exentos de la verificación.219Una regla de denegación o solicitud cuyo nombre de herramienta no coincide con ninguna herramienta conocida produce una advertencia de inicio para detectar errores tipográficos. Los nombres de herramientas que contienen `_` o `*` están exentos de la verificación, y también lo están los nombres de herramientas que Claude Code ha eliminado, como `TaskOutput`.

228 220 

229La etiqueta mostrada para una herramienta en la transcripción y el diálogo de permisos puede diferir de su nombre canónico. Por ejemplo, la herramienta etiquetada como `Stop Task` en la transcripción tiene el nombre canónico `TaskStop`. Las reglas de permisos y los [coincidentes de hooks](/docs/es/hooks) no coinciden con la etiqueta, por lo que una regla escrita como `Stop Task` no coincide. Para reglas de denegación y solicitud, la advertencia de inicio anterior detecta la discrepancia. Use los nombres canónicos enumerados en la [referencia de herramientas](/docs/es/tools-reference).221La etiqueta mostrada para una herramienta en la transcripción y el diálogo de permisos puede diferir de su nombre canónico. Por ejemplo, la herramienta etiquetada como `Stop Task` en la transcripción tiene el nombre canónico `TaskStop`. Las reglas de permisos y los [coincidentes de hooks](/docs/es/hooks) no coinciden con la etiqueta, por lo que una regla escrita como `Stop Task` no coincide. Para reglas de denegación y solicitud, la advertencia de inicio anterior detecta la discrepancia. Use los nombres canónicos enumerados en la [referencia de herramientas](/docs/es/tools-reference).

230 222 

plugin-evals.md +3 −1

Details

339 Otorgar herramientas339 Otorgar herramientas

340</h3>340</h3>

341 341 

342Las ejecuciones nunca se detienen para pedir permiso. Las herramientas integradas que necesitan una concesión que no otorgó, como `Bash`, `Write`, `Edit`, `WebFetch`, y `WebSearch`, se eliminan de la sesión, así que Claude no puede llamarlas en absoluto. La lista de permitidos es las herramientas de solo lectura que el caso enumera en `allowed_tools`, de `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite`, y las herramientas de tarea `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `TaskStop`, y `TaskOutput`, más lo que otorgue con `--allow-tools`, que se aplica a cada caso en la ejecución. Para permitir que los casos usen `Bash`, `Write`, `Edit`, `WebFetch`, o `WebSearch`, otórguelos usted mismo:342Las ejecuciones nunca se detienen para pedir permiso. Las herramientas integradas que necesitan una concesión que no otorgó, como `Bash`, `Write`, `Edit`, `WebFetch`, y `WebSearch`, se eliminan de la sesión, así que Claude no puede llamarlas en absoluto.

343 

344La lista de permitidos es las herramientas de solo lectura que el caso enumera en `allowed_tools`, de `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite`, y las herramientas de tarea `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, y `TaskStop`, más lo que otorgue con `--allow-tools`. Esa concesión se aplica a cada caso en la ejecución. Para permitir que los casos usen `Bash`, `Write`, `Edit`, `WebFetch`, o `WebSearch`, otórguelos usted mismo:

343 345 

344```bash theme={null}346```bash theme={null}

345claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

Details

71Prompt del sistema detallado para el agente describiendo su rol, experiencia y comportamiento.71Prompt del sistema detallado para el agente describiendo su rol, experiencia y comportamiento.

72```72```

73 73 

74Los agentes de plugins soportan campos frontmatter `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, [`omitClaudeMd`](/docs/es/sub-agents#supported-frontmatter-fields), e `isolation`. El único valor válido de `isolation` es `"worktree"`.74<h4 id="plugin-agent-frontmatter">

75 Frontmatter de agente de plugin

76</h4>

77 

78Un archivo de agente de plugin utiliza los mismos [campos frontmatter que un archivo de subagente](/docs/es/sub-agents#supported-frontmatter-fields), excepto que Claude Code solo honra algunos de ellos cuando el agente proviene de un plugin:

79 

80* **Soportados**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, y `experimental`. El único valor válido de `isolation` es `"worktree"`.

81* **No soportados, por razones de seguridad**: `hooks`, `mcpServers`, y `permissionMode`. Claude Code ignora estos cuando carga un agente desde un plugin. Para usarlos, copie el archivo del agente en `.claude/agents/` o `~/.claude/agents/`.

82* **No soportados**: `initialPrompt`.

75 83 

76Por razones de seguridad, los agentes enviados por plugins no soportan `hooks`, `mcpServers`, o `permissionMode`.84Puede poner archivos de agente de plugin en subcarpetas de `agents/`. Claude Code [los carga recursivamente](/docs/es/sub-agents#choose-the-subagent-scope) y une el nombre del plugin, cada nombre de subcarpeta, y el nombre del archivo con dos puntos para formar el nombre con alcance del agente. Por ejemplo, `agents/review/security.md` en un plugin llamado `my-plugin` se carga como `my-plugin:review:security`. Dos configuraciones cambian ese nombre:

85 

86* Frontmatter `name`: reemplaza solo el nombre del archivo, así que `name: audit` en `agents/review/security.md` se carga como `my-plugin:review:audit`

87* Campo manifest [`agents`](#component-path-fields): un archivo que lista allí se carga sin nombres de subcarpeta, así que `"agents": "./custom/review/security.md"` se carga como `my-plugin:security`

77 88 

78Claude Code carga un agente de plugin incluso cuando su frontmatter no tiene `name` o no se analiza:89Claude Code carga un agente de plugin incluso cuando su frontmatter no tiene `name` o no se analiza:

79 90 


555| Campo | Tipo | Descripción | Ejemplo |566| Campo | Tipo | Descripción | Ejemplo |

556| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |567| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

557| `$schema` | string | URL de JSON Schema para autocompletado y validación del editor. Claude Code ignora este campo en tiempo de carga. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |568| `$schema` | string | URL de JSON Schema para autocompletado y validación del editor. Claude Code ignora este campo en tiempo de carga. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

558| `displayName` | string | Nombre legible por humanos mostrado en el selector `/plugin` y otras superficies de interfaz de usuario. Para un plugin instalado desde marketplace, un `displayName` en la [entrada de marketplace](/docs/es/plugin-marketplaces#optional-plugin-fields) tiene prioridad sobre este valor. Cuando no se establece ningún nombre de visualización en ninguno de los dos lugares, los usuarios ven `name`. A diferencia de `name`, puede contener espacios y cualquier capitalización. No se utiliza para espacios de nombres o búsqueda. | `"Deployment Tools"` |569| `displayName` | string | Nombre legible por humanos mostrado en el selector `/plugin` y otras superficies de interfaz de usuario. Para un plugin instalado desde marketplace, un `displayName` en la [entrada de marketplace](/docs/es/plugin-marketplaces#optional-plugin-fields) tiene precedencia sobre este valor. Cuando no se establece un nombre de visualización en ninguno de los dos lugares, los usuarios ven `name`. A diferencia de `name`, puede contener espacios y cualquier mayúscula. No se utiliza para espacios de nombres o búsqueda. | `"Deployment Tools"` |

559| `version` | string | Opcional. Versión semántica. Establecer esto fija el plugin a esa cadena de versión, por lo que los usuarios solo reciben actualizaciones cuando la incrementa, excepto para una [`command` source](/docs/es/plugin-marketplaces#command-sources) o un plugin [cargado en lugar](#plugin-caching-and-file-resolution); vea [Gestión de versiones](#version-management). Si también se establece en la entrada de marketplace, `plugin.json` gana. Si se omite, la versión proviene de la siguiente fuente en [Gestión de versiones](#version-management). | `"2.1.0"` |570| `version` | string | Opcional. Versión semántica. Establecer esto fija el plugin a esa cadena de versión, por lo que los usuarios solo reciben actualizaciones cuando la incrementa, excepto para una [`command` source](/docs/es/plugin-marketplaces#command-sources) o un plugin [cargado en lugar](#plugin-caching-and-file-resolution); vea [Gestión de versiones](#version-management). Si también se establece en la entrada de marketplace, `plugin.json` gana. Si se omite, la versión proviene de la siguiente fuente en [Gestión de versiones](#version-management). | `"2.1.0"` |

560| `description` | string | Breve explicación del propósito del plugin | `"Deployment automation tools"` |571| `description` | string | Breve explicación del propósito del plugin | `"Deployment automation tools"` |

561| `author` | object | Información del autor | `{"name": "Dev Team", "email": "dev@company.com"}` |572| `author` | object | Información del autor | `{"name": "Dev Team", "email": "dev@company.com"}` |


572 583 

573Establezca `defaultEnabled: false` en `plugin.json` para enviar un plugin que se instale deshabilitado. El usuario lo activa con `claude plugin enable <plugin>` o la interfaz `/plugin`. Úselo para plugins que agregan costo o alcance en el que un usuario debe optar, como uno que se conecta a un servicio externo.584Establezca `defaultEnabled: false` en `plugin.json` para enviar un plugin que se instale deshabilitado. El usuario lo activa con `claude plugin enable <plugin>` o la interfaz `/plugin`. Úselo para plugins que agregan costo o alcance en el que un usuario debe optar, como uno que se conecta a un servicio externo.

574 585 

575`defaultEnabled` es la alternativa cuando nada más ha decidido el estado del plugin. El ajuste del usuario y un requisito de dependencia tienen prioridad sobre él:586`defaultEnabled` es la alternativa cuando nada más ha decidido el estado del plugin. La configuración del usuario y un requisito de dependencia tienen precedencia sobre ella:

576 587 

577* **La configuración del usuario**: una entrada para el plugin en `enabledPlugins` en cualquier ámbito de configuración. Una vez escrita, persiste en actualizaciones y reinstalaciones de plugins, por lo que cambiar `defaultEnabled` en una versión posterior no invierte un usuario existente.588* **La configuración del usuario**: una entrada para el plugin en `enabledPlugins` en cualquier ámbito de configuración. Una vez escrita, persiste en actualizaciones y reinstalaciones de plugins, por lo que cambiar `defaultEnabled` en una versión posterior no invierte un usuario existente.

578* **Un requisito de dependencia**: cuando un plugin es requerido por otro que está activo, Claude Code escribe `true` para él en tiempo de instalación o habilitación. Eso le da una configuración explícita, por lo que su propio valor predeterminado ya no se aplica. Vea [Habilitar o deshabilitar un plugin con dependencias](/docs/es/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).589* **Un requisito de dependencia**: cuando un plugin es requerido por otro que está activo, Claude Code escribe `true` para él en tiempo de instalación o habilitación. Eso le da una configuración explícita, por lo que su propio valor predeterminado ya no se aplica. Vea [Habilitar o deshabilitar un plugin con dependencias](/docs/es/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

579 590 

580El mismo campo puede aparecer en la entrada de marketplace de un plugin, donde tiene prioridad sobre el valor en `plugin.json`. Vea [Campos de plugin opcionales](/docs/es/plugin-marketplaces#optional-plugin-fields).591El mismo campo puede aparecer en la entrada de marketplace de un plugin, donde tiene precedencia sobre el valor en `plugin.json`. Vea [Campos de plugin opcionales](/docs/es/plugin-marketplaces#optional-plugin-fields).

581 592 

582<h3 id="component-path-fields">593<h3 id="component-path-fields">

583 Campos de ruta de componentes594 Campos de ruta de componentes


592| `hooks` | string\|array\|object | Rutas de configuración de hooks o configuración en línea | `"./my-extra-hooks.json"` |603| `hooks` | string\|array\|object | Rutas de configuración de hooks o configuración en línea | `"./my-extra-hooks.json"` |

593| `mcpServers` | string\|array\|object | Rutas de configuración de MCP o configuración en línea | `"./my-extra-mcp-config.json"` |604| `mcpServers` | string\|array\|object | Rutas de configuración de MCP o configuración en línea | `"./my-extra-mcp-config.json"` |

594| `outputStyles` | string\|array | Archivos/directorios de estilo de salida personalizados (reemplaza el `output-styles/` predeterminado) | `"./styles/"` |605| `outputStyles` | string\|array | Archivos/directorios de estilo de salida personalizados (reemplaza el `output-styles/` predeterminado) | `"./styles/"` |

595| `lspServers` | string\|array\|object | Configuraciones de [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) para inteligencia de código (ir a definición, buscar referencias, etc.) | `"./.lsp.json"` |606| `lspServers` | string\|array\|object | Configuraciones de [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) para inteligencia de código (ir a definición, encontrar referencias, etc.) | `"./.lsp.json"` |

596| `experimental.themes` | string\|array | Archivos/directorios de tema de color (reemplaza el `themes/` predeterminado). Vea [Temas](#themes) | `"./themes/"` |607| `experimental.themes` | string\|array | Archivos/directorios de tema de color (reemplaza el `themes/` predeterminado). Vea [Temas](#themes) | `"./themes/"` |

597| `experimental.monitors` | string\|array | Configuraciones de [Monitor](/docs/es/tools-reference#monitor-tool) de fondo que se inician automáticamente cuando el plugin está activo. Vea [Monitores](#monitors) | `"./monitors.json"` |608| `experimental.monitors` | string\|array | Configuraciones de [Monitor](/docs/es/tools-reference#monitor-tool) de fondo que se inician automáticamente cuando el plugin está activo. Vea [Monitores](#monitors) | `"./monitors.json"` |

598| `experimental.evals` | string\|array | Directorio debajo de la raíz del plugin que contiene los [casos de eval](/docs/es/plugin-evals#use-a-different-eval-directory) del plugin, cuando no es el `evals/` predeterminado. `claude plugin eval --eval-dir` lo anula | `"quality/evals"` |609| `experimental.evals` | string\|array | Directorio debajo de la raíz del plugin que contiene los [casos de eval](/docs/es/plugin-evals#use-a-different-eval-directory) del plugin, cuando no es el `evals/` predeterminado. `claude plugin eval --eval-dir` lo anula | `"quality/evals"` |

599| `userConfig` | object | Valores configurables por el usuario solicitados en tiempo de habilitación. Vea [Configuración del usuario](#user-configuration) | |610| `userConfig` | object | Valores configurables por el usuario solicitados en tiempo de habilitación. Vea [Configuración de usuario](#user-configuration) | |

600| `channels` | array | Declaraciones de canales para inyección de mensajes (estilo Telegram, Slack, Discord). Vea [Canales](#channels) | |611| `channels` | array | Declaraciones de canales para inyección de mensajes (estilo Telegram, Slack, Discord). Vea [Canales](#channels) | |

601| `dependencies` | array | Otros plugins que este plugin requiere, opcionalmente con restricciones de versión semántica. Vea [Restringir versiones de dependencia de plugins](/docs/es/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |612| `dependencies` | array | Otros plugins que este plugin requiere, opcionalmente con restricciones de versión semver. Vea [Restringir versiones de dependencia de plugins](/docs/es/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

602 613 

603<h3 id="experimental-components">614<h3 id="experimental-components">

604 Componentes experimentales615 Componentes experimentales


607Los componentes bajo la clave `experimental`, `themes` y `monitors`, tienen un esquema de manifiesto que puede cambiar entre versiones mientras se estabilizan. Dónde los declara es una migración separada: el nivel superior aún funciona, `claude plugin validate` advierte, y una versión futura requerirá `experimental.*`.618Los componentes bajo la clave `experimental`, `themes` y `monitors`, tienen un esquema de manifiesto que puede cambiar entre versiones mientras se estabilizan. Dónde los declara es una migración separada: el nivel superior aún funciona, `claude plugin validate` advierte, y una versión futura requerirá `experimental.*`.

608 619 

609<h3 id="user-configuration">620<h3 id="user-configuration">

610 Configuración del usuario621 Configuración de usuario

611</h3>622</h3>

612 623 

613El campo `userConfig` declara valores que Claude Code solicita al usuario cuando el plugin está habilitado. Úselo en lugar de requerir que los usuarios editen manualmente `settings.json`.624El campo `userConfig` declara valores que Claude Code solicita al usuario cuando el plugin está habilitado. Úselo en lugar de requerir que los usuarios editen manualmente `settings.json`.


633Las claves deben ser identificadores válidos. Cada opción admite estos campos:644Las claves deben ser identificadores válidos. Cada opción admite estos campos:

634 645 

635| Campo | Requerido | Descripción |646| Campo | Requerido | Descripción |

636| :------------ | :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |647| :------------ | :-------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

637| `type` | Sí | Uno de `string`, `number`, `boolean`, `directory`, o `file` |648| `type` | Sí | Uno de `string`, `number`, `boolean`, `directory`, o `file` |

638| `title` | Sí | Etiqueta mostrada en el diálogo de configuración |649| `title` | Sí | Etiqueta mostrada en el diálogo de configuración |

639| `description` | Sí | Texto de ayuda mostrado debajo del campo |650| `description` | Sí | Texto de ayuda mostrado debajo del campo |

640| `sensitive` | No | Si es `true`, enmascara la entrada y almacena el valor en almacenamiento seguro en lugar de `settings.json` |651| `sensitive` | No | Si es `true`, enmascara la entrada y almacena el valor en almacenamiento seguro en lugar de `settings.json` |

641| `required` | No | Si es `true`, la validación falla cuando el campo está vacío |652| `required` | No | Si es `true`, la validación falla cuando el campo está vacío |

642| `default` | No | Valor utilizado cuando el usuario no proporciona nada |653| `default` | No | Valor utilizado cuando el usuario no proporciona nada |

643| `options` | No | Para tipo `string`, los valores que el campo acepta, mostrados en `/config` como un selector sobre ellos. Requiere Claude Code v2.1.271 o posterior |654| `options` | No | Para tipo `string`, los valores que el campo acepta, mostrados en `/config` como un selector sobre ellos. Vea [Limitar un campo a opciones fijas](#limit-a-field-to-fixed-options). Requiere Claude Code v2.1.271 o posterior |

644| `multiple` | No | Para tipo `string`, permitir un array de cadenas |655| `multiple` | No | Para tipo `string`, permitir un array de cadenas |

645| `min` / `max` | No | Límites para tipo `number` |656| `min` / `max` | No | Límites para tipo `number` |

646 657 


656| Comandos de [Monitor](#monitors) | Lea el valor de un archivo de configuración en el script |667| Comandos de [Monitor](#monitors) | Lea el valor de un archivo de configuración en el script |

657| MCP [`headersHelper`](/docs/es/mcp#use-dynamic-headers-for-custom-authentication) | Lea el valor de un archivo de configuración en el script |668| MCP [`headersHelper`](/docs/es/mcp#use-dynamic-headers-for-custom-authentication) | Lea el valor de un archivo de configuración en el script |

658 669 

659Antes de v2.1.207, estos campos sustituían valores `${user_config.KEY}`; actualice plugins que dependían de esto.670Antes de v2.1.207, estos campos sustituían valores `${user_config.KEY}`; actualice los plugins que dependían de esto.

660 671 

661Los valores no sensibles se almacenan bajo la clave [`pluginConfigs`](/docs/es/settings-reference#pluginconfigs) en su `settings.json` de usuario como `pluginConfigs[<plugin-id>].options`.672Los valores no sensibles se almacenan bajo la clave [`pluginConfigs`](/docs/es/settings-reference#pluginconfigs) en su `settings.json` de usuario como `pluginConfigs[<plugin-id>].options`.

662 673 


664 675 

665Claude Code lee todos los valores `pluginConfigs` de solo tres fuentes de configuración:676Claude Code lee todos los valores `pluginConfigs` de solo tres fuentes de configuración:

666 677 

667* **Configuración del usuario**: `~/.claude/settings.json`, el archivo que el aviso de tiempo de habilitación escribe678* **Configuración de usuario**: `~/.claude/settings.json`, el archivo que el aviso de tiempo de habilitación escribe

668* **`--settings`**: la bandera CLI o configuración en línea de SDK679* **`--settings`**: la bandera CLI o configuración en línea de SDK

669* **Configuración administrada**: [política controlada por la organización](/docs/es/permissions#managed-settings)680* **Configuración administrada**: [política controlada por la organización](/docs/es/permissions#managed-settings)

670 681 

671Cuando más de una fuente establece la misma clave, la configuración administrada tiene prioridad, luego `--settings`, luego la configuración del usuario. La única fuente que puede eliminar de esta lista es la configuración del usuario: pase [`--setting-sources`](/docs/es/cli-reference#cli-flags) sin `user` y Claude Code las omite. La configuración administrada y `--settings` permanecen como las pase. La opción [`settingSources`](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) del SDK establece la misma lista.682Cuando más de una fuente establece la misma clave, la configuración administrada tiene precedencia, luego `--settings`, luego la configuración de usuario. La única fuente que puede eliminar de esta lista es la configuración de usuario: pase [`--setting-sources`](/docs/es/cli-reference#cli-flags) sin `user` y Claude Code las omite. La configuración administrada y `--settings` permanecen como usted las pase. La opción [`settingSources`](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) del SDK establece la misma lista.

683 

684Las entradas en `.claude/settings.json` o `.claude/settings.local.json` de un proyecto se ignoran. Ambos archivos viven en el espacio de trabajo, por lo que un repositorio clonado podría suministrar valores allí, y esos valores fluirían hacia comandos de hooks de plugins, configuraciones de servidores MCP, comandos LSP y comandos de monitores. Antes de v2.1.207, estas entradas se leían. La restricción es específica de `pluginConfigs`: [`enabledPlugins`](/docs/es/settings-reference#enabledplugins) aún honra la configuración de proyecto y local.

685 

686<h4 id="limit-a-field-to-fixed-options">

687 Limitar un campo a opciones fijas

688</h4>

689 

690Establezca `options` en un campo `userConfig` para que los usuarios elijan su valor de una lista fija.

691 

692Para limitar un campo `tone` a tres opciones, enumérelas en `options` y establezca `default` en una de ellas:

693 

694```json theme={null}

695{

696 "userConfig": {

697 "tone": {

698 "type": "string",

699 "title": "Tone",

700 "description": "Voice for generated replies",

701 "options": ["neutral", "warm", "formal"],

702 "default": "neutral"

703 }

704 }

705}

706```

707 

708Si declara `options` en cualquier campo, los usuarios en versiones de Claude Code anteriores a v2.1.271 no pueden cargar el plugin.

709 

710Cuando establece `options` en un campo, siga estas reglas:

711 

712* Establezca `type` en `string`

713* No establezca `multiple` o `sensitive` en `true`

714* Establezca `default` en una de las opciones

715* Si deja `default` sin establecer, establezca `required` en `true`

716* Liste al menos una opción, cada una de 1 a 64 caracteres de largo

717* No comience ni termine una opción con un espacio

718* No use caracteres de control, caracteres invisibles, caracteres que cambien la dirección del texto, o espacios que no sean un espacio regular en una opción

719* No liste la misma opción dos veces, ni siquiera en una letra diferente

672 720 

673Las entradas en `.claude/settings.json` o `.claude/settings.local.json` de un proyecto se ignoran. Ambos archivos viven en el espacio de trabajo, por lo que un repositorio clonado podría suministrar valores allí, y esos valores fluirían hacia comandos de hooks de plugins, configuraciones de servidores MCP, comandos LSP y comandos de monitores. Antes de v2.1.207, estas entradas se leían. La restricción es específica de `pluginConfigs`: [`enabledPlugins`](/docs/es/settings-reference#enabledplugins) aún honra la configuración del proyecto y local.721Si incumple cualquiera de estas reglas, el plugin no se carga. Ejecute `claude plugin validate` para ver qué campo incumple qué regla.

674 722 

675<h3 id="channels">723<h3 id="channels">

676 Canales724 Canales

677</h3>725</h3>

678 726 

679El campo `channels` permite que un plugin declare uno o más canales de mensajes que inyecten contenido en la conversación. Cada canal se vincula a un servidor MCP que proporciona el plugin.727El campo `channels` permite que un plugin declare uno o más canales de mensaje que inyecten contenido en la conversación. Cada canal se vincula a un servidor MCP que proporciona el plugin.

680 728 

681```json theme={null}729```json theme={null}

682{730{


710Si una ruta personalizada reemplaza o extiende el directorio predeterminado del plugin depende del campo:758Si una ruta personalizada reemplaza o extiende el directorio predeterminado del plugin depende del campo:

711 759 

712* **Reemplaza el predeterminado**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Por ejemplo, cuando el manifiesto especifica `commands`, el directorio predeterminado `commands/` no se escanea. Para mantener el predeterminado y agregar más, enumérelo explícitamente: `"commands": ["./commands/", "./extras/"]`760* **Reemplaza el predeterminado**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Por ejemplo, cuando el manifiesto especifica `commands`, el directorio predeterminado `commands/` no se escanea. Para mantener el predeterminado y agregar más, enumérelo explícitamente: `"commands": ["./commands/", "./extras/"]`

713* **Se agrega al predeterminado**: `skills`. El directorio predeterminado `skills/` siempre se escanea, y los directorios enumerados en `skills` se cargan junto a él. Excepción: para una [entrada de marketplace cuya `source` se resuelve a la raíz de marketplace](/docs/es/plugin-marketplaces#advanced-plugin-entries), declarar subdirectorios específicos reemplaza el escaneo predeterminado `skills/`761* **Se agrega al predeterminado**: `skills`. El directorio predeterminado `skills/` siempre se escanea, y los directorios listados en `skills` se cargan junto a él. Excepción: para una [entrada de marketplace cuya `source` se resuelve a la raíz de marketplace](/docs/es/plugin-marketplaces#advanced-plugin-entries), declarar subdirectorios específicos reemplaza el escaneo predeterminado `skills/`

714* **Reglas de fusión propias**: [hooks](#hooks), [servidores MCP](#mcp-servers), y [servidores LSP](#lsp-servers). Vea cada sección para cómo se combinan múltiples fuentes762* **Reglas de fusión propias**: [hooks](#hooks), [servidores MCP](#mcp-servers), y [servidores LSP](#lsp-servers). Vea cada sección para saber cómo se combinan múltiples fuentes

715 763 

716Cuando un plugin tiene tanto una carpeta predeterminada como la clave de manifiesto coincidente, Claude Code advierte sobre la carpeta ignorada en `claude plugin list` y la vista de detalles `/plugin`. El plugin aún se carga usando las rutas del manifiesto. Claude Code no advierte cuando la clave del manifiesto apunta dentro de la carpeta predeterminada, por ejemplo `"commands": ["./commands/deploy.md"]`, porque esa ruta nombra la carpeta explícitamente.764Cuando un plugin tiene tanto una carpeta predeterminada como la clave de manifiesto coincidente, Claude Code advierte sobre la carpeta ignorada en `claude plugin list` y la vista de detalles `/plugin`. El plugin aún se carga usando las rutas de manifiesto. Claude Code no advierte cuando la clave de manifiesto apunta dentro de la carpeta predeterminada, por ejemplo `"commands": ["./commands/deploy.md"]`, porque esa ruta nombra la carpeta explícitamente.

717 765 

718Para todos los campos de ruta:766Para todos los campos de ruta:

719 767 

720* Todas las rutas deben ser relativas a la raíz del plugin e iniciar con `./`, excepto que el campo `skills` también acepta `"."`768* Todas las rutas deben ser relativas a la raíz del plugin e iniciar con `./`, excepto que el campo `skills` también acepta `"."`

721 * Tanto `"."` como `"./"` denotan la raíz del plugin en sí769 * Tanto `"."` como `"./"` denotan la raíz del plugin en sí

722 * Antes de v2.1.221, `"."` falló en la validación del manifiesto y el plugin no se cargó, así que use `"./"` para soportar versiones anteriores770 * Antes de v2.1.221, `"."` falló en la validación del manifiesto y el plugin no se cargó, así que use `"./"` para soportar versiones anteriores

723* Los componentes de rutas personalizadas usan las mismas reglas de nomenclatura y espacios de nombres771* Los componentes de rutas personalizadas usan las mismas reglas de nomenclatura y espacios de nombres, excepto archivos de agentes. Vea [Agentes](#agents) para saber cómo funcionan los nombres de agentes

724* Se pueden especificar múltiples rutas como arrays772* Se pueden especificar múltiples rutas como arrays

725* Una ruta de skill puede apuntar a un directorio que contiene un `SKILL.md` directamente, por ejemplo `"skills": ["."]` para la raíz del plugin773* Una ruta de skill puede apuntar a un directorio que contiene un `SKILL.md` directamente, por ejemplo `"skills": ["."]` para la raíz del plugin

726 * Claude Code toma el nombre de invocación del skill del campo `name` del frontmatter en `SKILL.md`, por lo que el nombre permanece estable sin importar cómo se nombre el directorio de instalación774 * Claude Code toma el nombre de invocación del skill del campo `name` del frontmatter en `SKILL.md`, por lo que el nombre permanece estable sin importar cómo se nombre el directorio de instalación

727 * Si `name` no está establecido en el frontmatter, Claude Code retrocede al nombre base del directorio775 * Si `name` no está establecido en el frontmatter, Claude Code retrocede al nombre base del directorio

728 776 

729Un plugin que tiene un `SKILL.md` en su raíz, sin subdirectorio `skills/`, y sin campo de manifiesto `skills` se carga automáticamente como un plugin de skill único. No necesita establecer `"skills": ["./"]` en `plugin.json` para este diseño.777Un plugin que tiene un `SKILL.md` en su raíz, sin subdirectorio `skills/`, y sin campo de manifiesto `skills` se carga automáticamente como un plugin de un solo skill. No necesita establecer `"skills": ["./"]` en `plugin.json` para este diseño.

730 778 

731**Ejemplos de ruta**:779**Ejemplos de ruta**:

732 780 


749 797 

750Claude Code proporciona tres variables para referenciar rutas:798Claude Code proporciona tres variables para referenciar rutas:

751 799 

752| Variable | Se resuelve a | Úsela para |800| Variable | Se resuelve a | Úselo para |

753| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |801| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- |

754| `${CLAUDE_PLUGIN_ROOT}` | Ruta absoluta al directorio de instalación del plugin | Scripts, binarios y archivos de configuración incluidos con el plugin |802| `${CLAUDE_PLUGIN_ROOT}` | Ruta absoluta al directorio de instalación del plugin | Scripts, binarios y archivos de configuración incluidos con el plugin |

755| `${CLAUDE_PLUGIN_DATA}` | [Directorio persistente](#persistent-data-directory) que sobrevive a actualizaciones de plugins, creado en primera referencia | Dependencias instaladas como `node_modules` o entornos virtuales de Python, código generado y cachés |803| `${CLAUDE_PLUGIN_DATA}` | [Directorio persistente](#persistent-data-directory) que sobrevive a actualizaciones de plugins, creado en primera referencia | Dependencias instaladas como `node_modules` o entornos virtuales de Python, código generado y cachés |


757 805 

758Los tres se exportan como variables de entorno a procesos de hooks y a subprocesos de servidores MCP y LSP. No están presentes en el entorno de comandos que Claude ejecuta a través de la herramienta Bash, en la sesión principal o en un subagente. En contenido de plugins, escriba el marcador de posición en su lugar, y Claude Code sustituye la ruta en línea cuando carga el contenido. Qué campos sustituyen en línea depende del componente del plugin:806Los tres se exportan como variables de entorno a procesos de hooks y a subprocesos de servidores MCP y LSP. No están presentes en el entorno de comandos que Claude ejecuta a través de la herramienta Bash, en la sesión principal o en un subagente. En contenido de plugins, escriba el marcador de posición en su lugar, y Claude Code sustituye la ruta en línea cuando carga el contenido. Qué campos sustituyen en línea depende del componente del plugin:

759 807 

760| Componente del plugin | Campos donde se resuelven los placeholders |808| Componente del plugin | Campos donde se resuelven los marcadores de posición |

761| :--------------------------------- | :----------------------------------------------- |809| :--------------------------------- | :-------------------------------------------------------- |

762| Contenido de skills y agentes | En cualquier lugar donde aparezca el placeholder |810| Contenido de skill y agente | En cualquier lugar donde aparezca el marcador de posición |

763| Comandos de hooks y monitores | En cualquier lugar donde aparezca el placeholder |811| Comandos de hook y monitor | En cualquier lugar donde aparezca el marcador de posición |

764| Servidores MCP `stdio` | `command`, `args`, `env` |812| Servidores MCP `stdio` | `command`, `args`, `env` |

765| Servidores MCP `http`, `sse`, `ws` | `url`, `headers`, `headersHelper` |813| Servidores MCP `http`, `sse`, `ws` | `url`, `headers`, `headersHelper` |

766| Servidores LSP | `command`, `args`, `env`, `workspaceFolder` |814| Servidores LSP | `command`, `args`, `env`, `workspaceFolder` |


784}832}

785```833```

786 834 

787Para un plugin copiado, `${CLAUDE_PLUGIN_ROOT}` cambia cuando el plugin se actualiza. El directorio de la versión anterior permanece en el disco durante un período de gracia después de una actualización, pero trátelo como efímero y no escriba estado allí. Para ver qué plugins se copian y para semántica de limpieza, vea [almacenamiento en caché de plugins](#plugin-caching-and-file-resolution).835Para un plugin copiado, `${CLAUDE_PLUGIN_ROOT}` cambia cuando el plugin se actualiza. El directorio de la versión anterior permanece en el disco durante un período de gracia después de una actualización, pero trátelo como efímero y no escriba estado allí. Para un plugin cargado en lugar desde un marketplace de directorio local, la variable apunta al directorio de origen estable. Vea [almacenamiento en caché de plugins](#plugin-caching-and-file-resolution) para saber qué plugins se copian y para semántica de limpieza.

788 836 

789Cuando un plugin se actualiza a mitad de sesión, comandos de hooks, monitores, servidores MCP y servidores LSP continúan usando la ruta de la versión anterior. Ejecute `/reload-plugins` para cambiar hooks, servidores MCP y servidores LSP a la nueva ruta; los monitores requieren un reinicio de sesión. En una sesión sin una terminal interactiva, la recarga deja servidores MCP de plugins en la ruta anterior hasta la siguiente sesión.837Cuando un plugin copiado se actualiza a mitad de sesión, comandos de hooks, monitores, servidores MCP y servidores LSP continúan usando la ruta de la versión anterior. Ejecute `/reload-plugins` para cambiar hooks, servidores MCP y servidores LSP a la nueva ruta; los monitores requieren un reinicio de sesión. En una sesión sin terminal interactiva, la recarga deja servidores MCP de plugins en la ruta anterior hasta la siguiente sesión.

790 838 

791Para un plugin con una `command` source, Claude Code [puede recargar el plugin en sí](/docs/es/plugin-marketplaces#when-claude-code-re-runs-the-command).839Para un plugin con una `command` source, Claude Code [puede recargar el plugin en sí](/docs/es/plugin-marketplaces#when-claude-code-re-runs-the-command).

792 840 


798 846 

799El directorio `${CLAUDE_PLUGIN_DATA}` se resuelve a `~/.claude/plugins/data/{id}/`, donde `{id}` es el identificador del plugin con caracteres fuera de `a-z`, `A-Z`, `0-9`, `_`, y `-` reemplazados por `-`. Para un plugin instalado como `formatter@my-marketplace`, el directorio es `~/.claude/plugins/data/formatter-my-marketplace/`.847El directorio `${CLAUDE_PLUGIN_DATA}` se resuelve a `~/.claude/plugins/data/{id}/`, donde `{id}` es el identificador del plugin con caracteres fuera de `a-z`, `A-Z`, `0-9`, `_`, y `-` reemplazados por `-`. Para un plugin instalado como `formatter@my-marketplace`, el directorio es `~/.claude/plugins/data/formatter-my-marketplace/`.

800 848 

801Un uso común es instalar dependencias de lenguaje una vez y reutilizarlas en sesiones y actualizaciones de plugins. Úselo para dependencias de Python, dependencias bloqueadas con Yarn o pnpm, y paquetes cuyos scripts de ciclo de vida deben ejecutarse. Para un plugin instalado en marketplace, es posible que no lo necesite en absoluto: Claude Code instala automáticamente [dependencias de paquetes Node.js](#node-js-package-dependencies) elegibles cuando almacena en caché el plugin.849Un uso común es instalar dependencias de lenguaje una vez y reutilizarlas en sesiones y actualizaciones de plugins. Úselo para dependencias de Python, dependencias bloqueadas con Yarn o pnpm, y paquetes cuyos scripts de ciclo de vida deben ejecutarse. Para un plugin instalado desde marketplace, es posible que no lo necesite en absoluto: Claude Code instala automáticamente [dependencias de paquetes Node.js](/docs/es/plugins-reference#node-js-package-dependencies) elegibles cuando almacena en caché el plugin.

802 850 

803Debido a que el directorio de datos sobrevive a cualquier versión única del plugin, una verificación de existencia de directorio por sí sola no puede detectar cuándo una actualización cambia el manifiesto de dependencia del plugin. El patrón recomendado compara el manifiesto incluido contra una copia en el directorio de datos y reinstala cuando difieren.851Debido a que el directorio de datos sobrevive a cualquier versión única de plugin, una verificación de existencia de directorio por sí sola no puede detectar cuándo una actualización cambia el manifiesto de dependencia del plugin. El patrón recomendado compara el manifiesto incluido contra una copia en el directorio de datos y reinstala cuando difieren.

804 852 

805Este hook `SessionStart` instala `node_modules` en la primera ejecución y nuevamente cada vez que una actualización de plugin incluye un `package.json` cambiado:853Este hook `SessionStart` instala `node_modules` en la primera ejecución y nuevamente cada vez que una actualización de plugin incluye un `package.json` cambiado:

806 854 


823 871 

824El `diff` sale con código distinto de cero cuando la copia almacenada falta o difiere de la incluida, cubriendo tanto la primera ejecución como actualizaciones que cambian dependencias. Si `npm install` falla, el `rm` final elimina el manifiesto copiado para que la siguiente sesión reintente.872El `diff` sale con código distinto de cero cuando la copia almacenada falta o difiere de la incluida, cubriendo tanto la primera ejecución como actualizaciones que cambian dependencias. Si `npm install` falla, el `rm` final elimina el manifiesto copiado para que la siguiente sesión reintente.

825 873 

826Los scripts incluidos en `${CLAUDE_PLUGIN_ROOT}` pueden ejecutarse contra el `node_modules` persistente:874Los scripts incluidos en `${CLAUDE_PLUGIN_ROOT}` pueden ejecutarse contra los `node_modules` persistidos:

827 875 

828```json theme={null}876```json theme={null}

829{877{


959├── agents/ # Definiciones de subagentes1007├── agents/ # Definiciones de subagentes

960│ ├── security-reviewer.md1008│ ├── security-reviewer.md

961│ ├── performance-tester.md1009│ ├── performance-tester.md

962│ └── compliance-checker.md1010│ ├── compliance-checker.md

1011│ └── review/ # Los agentes aquí se cargan como enterprise-plugin:review:<name>

1012│ └── accessibility.md

963├── workflows/ # Scripts de flujo de trabajo1013├── workflows/ # Scripts de flujo de trabajo

964│ └── release-audit.js1014│ └── release-audit.js

965├── output-styles/ # Definiciones de estilos de salida1015├── output-styles/ # Definiciones de estilos de salida


999| **Manifiesto** | `.claude-plugin/plugin.json` | Metadatos y configuración del plugin (opcional) |1049| **Manifiesto** | `.claude-plugin/plugin.json` | Metadatos y configuración del plugin (opcional) |

1000| **Skills** | `skills/` | Skills con estructura `<name>/SKILL.md` |1050| **Skills** | `skills/` | Skills con estructura `<name>/SKILL.md` |

1001| **Comandos** | `commands/` | Skills como archivos Markdown planos. Use `skills/` para nuevos plugins |1051| **Comandos** | `commands/` | Skills como archivos Markdown planos. Use `skills/` para nuevos plugins |

1002| **Agentes** | `agents/` | Archivos Markdown de subagentes |1052| **Agentes** | `agents/` | Archivos Markdown de subagentes. Las subcarpetas son parte del [nombre del agente](#agents) |

1003| **Flujos de trabajo** | `workflows/` | Archivos de script de [flujo de trabajo](/docs/es/workflows) |1053| **Flujos de trabajo** | `workflows/` | Archivos de script de [flujo de trabajo](/docs/es/workflows) |

1004| **Estilos de salida** | `output-styles/` | Definiciones de estilos de salida |1054| **Estilos de salida** | `output-styles/` | Definiciones de estilos de salida |

1005| **Temas** | `themes/` | Definiciones de temas de color |1055| **Temas** | `themes/` | Definiciones de temas de color |

Details

96 96 

97La [configuración del modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo de plan y Sonnet durante la ejecución, por lo que cada alternancia del modo de plan es un cambio de modelo e inicia una caché nueva.97La [configuración del modelo `opusplan`](/docs/es/model-config#opusplan-model-setting) se resuelve a Opus durante el modo de plan y Sonnet durante la ejecución, por lo que cada alternancia del modo de plan es un cambio de modelo e inicia una caché nueva.

98 98 

99[El fallback automático del modelo](/docs/es/model-config#automatic-model-fallback) en modelos Fable y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de fallback, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.99[El fallback automático del modelo](/docs/es/model-config#automatic-model-fallback) en modelos Fable, Opus 5.5 y Opus 5 también es un cambio de modelo. Cuando un clasificador de seguridad marca una solicitud en una categoría que tiene un modelo de fallback, Claude Code vuelve a ejecutar la solicitud en ese modelo y la sesión continúa allí.

100 100 

101Cuando la portada de una skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de sesión se reanuda en su siguiente solicitud. Una skill `context: fork` establece el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent) en su lugar.101Cuando la portada de una skill o comando nombra un [`model`](/docs/es/skills#frontmatter-reference) diferente del modelo actual de la sesión, ese turno también es un cambio de modelo: la siguiente solicitud lee todo el historial de conversación sin aciertos de caché. El modelo de sesión se reanuda en su siguiente solicitud. Una skill `context: fork` establece el [modelo del subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent) en su lugar.

102 102 

Details

1384* [Cómo los equipos de Anthropic usan Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code): flujos de trabajo reales de equipos de ingeniería, producto, diseño y datos, con análisis profundos sobre [legal](https://claude.com/blog/how-anthropic-uses-claude-legal), [marketing](https://claude.com/blog/how-anthropic-uses-claude-marketing), y [ciberseguridad](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)1384* [Cómo los equipos de Anthropic usan Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code): flujos de trabajo reales de equipos de ingeniería, producto, diseño y datos, con análisis profundos sobre [legal](https://claude.com/blog/how-anthropic-uses-claude-legal), [marketing](https://claude.com/blog/how-anthropic-uses-claude-marketing), y [ciberseguridad](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)

1385* [Guía de codificación agéntica escalable](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf): la guía de adopción empresarial1385* [Guía de codificación agéntica escalable](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf): la guía de adopción empresarial

1386 1386 

1387Para tutoriales en video de estos patrones, consulte el curso gratuito [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action) en Anthropic Academy.1387Para tutoriales en video de estos patrones, consulte el curso gratuito [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action) en [Claude Academy](https://academy.claude.com/).

1388 1388 

1389<h2 id="related-resources">1389<h2 id="related-resources">

1390 Recursos relacionados1390 Recursos relacionados

quickstart.md +1 −0

Details

379 379 

380* **En Claude Code**: Escriba `/help` o pregunte "¿cómo..."380* **En Claude Code**: Escriba `/help` o pregunte "¿cómo..."

381* **Documentación**: ¡Está aquí! Explore otras guías381* **Documentación**: ¡Está aquí! Explore otras guías

382* **Cursos**: Tome [Claude Code 101](https://academy.claude.com/courses/claude-code-101) y otros cursos gratuitos a su propio ritmo en [Claude Academy](https://academy.claude.com/)

382* **Comunidad**: Únase a nuestro [Discord](https://www.anthropic.com/discord) para consejos y soporte383* **Comunidad**: Únase a nuestro [Discord](https://www.anthropic.com/discord) para consejos y soporte

Details

187* **Extraer una sesión con `/teleport`**: cuando extrae una [sesión de Claude Code en la web](/docs/es/claude-code-on-the-web#from-cloud-to-terminal) en su terminal con `/teleport`, el dispositivo conectado no recibe el historial anterior de la conversación extraída. Los nuevos mensajes en ambas direcciones van hacia y desde la conversación extraída, que ahora es la que está abierta en su terminal.187* **Extraer una sesión con `/teleport`**: cuando extrae una [sesión de Claude Code en la web](/docs/es/claude-code-on-the-web#from-cloud-to-terminal) en su terminal con `/teleport`, el dispositivo conectado no recibe el historial anterior de la conversación extraída. Los nuevos mensajes en ambas direcciones van hacia y desde la conversación extraída, que ahora es la que está abierta en su terminal.

188* **Mensajes de sus otras sesiones**: con [mensajería entre sesiones](/docs/es/cross-session-messaging), la misma conexión lleva mensajes entre sus propias sesiones en diferentes máquinas y desde sus sesiones [Claude Code en la web](/docs/es/claude-code-on-the-web), a través de servidores de Anthropic como el resto del tráfico de Remote Control. [Mensajería de sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cubre las reglas de entrega y [Controle los mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) cubre los controles entrantes. Requiere Claude Code v2.1.224 o posterior.188* **Mensajes de sus otras sesiones**: con [mensajería entre sesiones](/docs/es/cross-session-messaging), la misma conexión lleva mensajes entre sus propias sesiones en diferentes máquinas y desde sus sesiones [Claude Code en la web](/docs/es/claude-code-on-the-web), a través de servidores de Anthropic como el resto del tráfico de Remote Control. [Mensajería de sesiones en otras máquinas](/docs/es/cross-session-messaging#message-sessions-on-other-machines) cubre las reglas de entrega y [Controle los mensajes entrantes](/docs/es/cross-session-messaging#control-inbound-messages) cubre los controles entrantes. Requiere Claude Code v2.1.224 o posterior.

189* **Solicitudes que envía a mitad de turno**: cuando envía una solicitud desde un dispositivo conectado antes de que termine el turno actual, Claude Code la pone en cola y la mantiene en la transcripción del dispositivo después de que ese turno termina.189* **Solicitudes que envía a mitad de turno**: cuando envía una solicitud desde un dispositivo conectado antes de que termine el turno actual, Claude Code la pone en cola y la mantiene en la transcripción del dispositivo después de que ese turno termina.

190* **Diferencia de sus cambios**: cuando el directorio de la sesión está en un repositorio git, el panel de diferencia de un dispositivo conectado muestra la diferencia de sus cambios sin confirmar. El dispositivo solicita la diferencia sobre la conexión, y Claude Code la calcula en su máquina. Cuando su árbol de trabajo está limpio, Claude Code en su lugar sirve los cambios de su rama desde que divergió de la rama predeterminada. Antes de v2.1.247, Claude Code reportaba la diferencia a los dispositivos conectados solo en sesiones servidas por `claude remote-control`.190* **Diferencia de sus cambios**: cuando el directorio de la sesión está en un repositorio git, el panel de diferencia de un dispositivo conectado muestra sus cambios. El dispositivo solicita la diferencia sobre la conexión, y Claude Code la calcula en su máquina. En una rama que tiene confirmaciones por delante de la rama predeterminada del repositorio, el panel muestra los cambios desde que la rama se separó de ella, incluidas sus ediciones sin confirmar. En la rama predeterminada misma, o en una rama que no está por delante de ella, el panel muestra solo sus cambios sin confirmar. Antes de v2.1.247, Claude Code reportaba la diferencia a los dispositivos conectados solo en sesiones servidas por `claude remote-control`.

191* **Modelo**: cuando elige un [modelo](/docs/es/model-config) desde un dispositivo conectado, Claude Code ejecuta la sesión en ese modelo. El selector `/model` del terminal, `/status`, y `/config` muestran ese modelo. Requiere Claude Code v2.1.238 o posterior.191* **Modelo**: cuando elige un [modelo](/docs/es/model-config) desde un dispositivo conectado, Claude Code ejecuta la sesión en ese modelo. El selector `/model` del terminal, `/status`, y `/config` muestran ese modelo. Requiere Claude Code v2.1.238 o posterior.

192 * Un modelo que elige desde el control de modelo del dispositivo se aplica solo a la sesión actual. Cuando envía `/model <name>` desde el dispositivo a una sesión interactiva, Claude Code también establece su predeterminado para nuevas sesiones.192 * Un modelo que elige desde el control de modelo del dispositivo se aplica solo a la sesión actual. Cuando envía `/model <name>` desde el dispositivo a una sesión interactiva, Claude Code también establece su predeterminado para nuevas sesiones.

193 * Si envía un nombre que Claude Code no reconoce, como un nombre para mostrar donde se espera un ID de modelo, Claude Code [rechaza la selección](/docs/es/errors#model-is-not-a-recognized-model-id) y la sesión mantiene su modelo actual. Antes de v2.1.260, Claude Code guardaba una selección no reconocida desde el control de modelo del dispositivo, y su próximo mensaje fallaba.193 * Si envía un nombre que Claude Code no reconoce, como un nombre para mostrar donde se espera un ID de modelo, Claude Code [rechaza la selección](/docs/es/errors#model-is-not-a-recognized-model-id) y la sesión mantiene su modelo actual. Antes de v2.1.260, Claude Code guardaba una selección no reconocida desde el control de modelo del dispositivo, y su próximo mensaje fallaba.

sandboxing.md +12 −6

Details

179 Directorios temporales179 Directorios temporales

180</h4>180</h4>

181 181 

182El directorio temporal de la sesión es escribible dentro del sandbox de forma predeterminada, junto con el directorio de trabajo. A menos que [deshabilite el aislamiento del sistema de archivos](#disable-filesystem-isolation), Claude Code establece `$TMPDIR` en este directorio para comandos aislados, por lo que las herramientas que escriben archivos temporales funcionan sin configuración adicional. Los comandos sin aislar heredan su `$TMPDIR` de shell sin cambios, por lo que mientras el aislamiento del sistema de archivos esté activado, los comandos aislados y sin aislar resuelven `$TMPDIR` a directorios diferentes. Para pasar archivos temporales entre los dos, escríbalos en el directorio de trabajo en su lugar.182El directorio temporal de la sesión es escribible dentro del sandbox de forma predeterminada, junto con el directorio de trabajo. A menos que [deshabilite el aislamiento del sistema de archivos](#disable-filesystem-isolation), Claude Code establece `$TMPDIR` en este directorio para comandos aislados, por lo que las herramientas que escriben archivos temporales funcionan sin configuración adicional.

183 

184Los comandos sin aislar heredan su `$TMPDIR` de shell cuando está establecido, por lo que mientras el aislamiento del sistema de archivos esté activado, los comandos aislados y sin aislar resuelven `$TMPDIR` a directorios diferentes. Si su shell deja `$TMPDIR` sin establecer o vacío, un comando sin aislar que hace referencia a `$TMPDIR` recibe su anulación [`CLAUDE_CODE_TMPDIR`](/docs/es/env-vars), o el directorio temporal del sistema operativo cuando no ha establecido uno o la anulación es una ruta larga, por lo que la variable no se expande a una cadena vacía. Para pasar archivos temporales entre los dos, escríbalos en el directorio de trabajo en su lugar.

183 185 

184<h2 id="configure-sandboxing">186<h2 id="configure-sandboxing">

185 Configurar sandboxing187 Configurar sandboxing


309 311 

310* Los comandos aislados heredan el `$TMPDIR` de su shell en lugar del directorio temporal de la sesión, porque cada directorio temporal es escribible y Claude Code ya no redirige los comandos al de la sesión.312* Los comandos aislados heredan el `$TMPDIR` de su shell en lugar del directorio temporal de la sesión, porque cada directorio temporal es escribible y Claude Code ya no redirige los comandos al de la sesión.

311 313 

312 En Linux la variable a menudo no está establecida en el shell padre, por lo que puede expandirse vacía dentro de comandos aislados; Claude Code le dice a Claude a través de su orientación de herramienta Bash que cree directorios de trabajo con `mktemp -d` en lugar de confiar en `$TMPDIR`.314 En Linux la variable a menudo no está establecida en el shell padre. La orientación de herramienta Bash le dice a Claude que cree directorios de trabajo con `mktemp -d` en lugar de confiar en `$TMPDIR`.

313* [`autoAllowBashIfSandboxed`](/docs/es/settings-reference#sandbox-autoallowbashifsandboxed) aún tiene como valor predeterminado `true`, por lo que los comandos aislados siguen ejecutándose sin indicadores. Establézcalo en `false` para solicitar comandos aislados.315* [`autoAllowBashIfSandboxed`](/docs/es/settings-reference#sandbox-autoallowbashifsandboxed) aún tiene como valor predeterminado `true`, por lo que los comandos aislados siguen ejecutándose sin indicadores. Establézcalo en `false` para solicitar comandos aislados.

314 316 

315<h3 id="protect-credentials">317<h3 id="protect-credentials">


743 745 

744* **Los comandos fallan con un error de host no permitido**: muchas herramientas CLI necesitan alcanzar hosts específicos. Otorgar permiso cuando se solicita agrega el host a su lista de permitidos para que la herramienta se ejecute dentro del sandbox en el futuro.746* **Los comandos fallan con un error de host no permitido**: muchas herramientas CLI necesitan alcanzar hosts específicos. Otorgar permiso cuando se solicita agrega el host a su lista de permitidos para que la herramienta se ejecute dentro del sandbox en el futuro.

745* **`jest` se cuelga o falla**: `watchman` es incompatible con el sandbox. Ejecute `jest --no-watchman` en su lugar.747* **`jest` se cuelga o falla**: `watchman` es incompatible con el sandbox. Ejecute `jest --no-watchman` en su lugar.

746* **Las CLI basadas en Go fallan en la verificación de TLS en macOS**: herramientas como `gh`, `gcloud` y `terraform` pueden fallar en la verificación de TLS bajo Seatbelt. Liste estas herramientas en `excludedCommands` para ejecutarlas fuera del sandbox. Si está usando `httpProxyPort` con un proxy MITM y CA personalizado, establezca [`enableWeakerNetworkIsolation`](/docs/es/settings-reference#sandbox-enableweakernetworkisolation) en `true` en su lugar.748* **Las CLI basadas en Go fallan en la verificación de TLS en macOS**: herramientas como `gh`, `gcloud` y `terraform` pueden fallar en la verificación de TLS bajo Seatbelt. Liste estas herramientas en [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands). Si está usando `httpProxyPort` con un proxy MITM y CA personalizado, establezca [`enableWeakerNetworkIsolation`](/docs/es/settings-reference#sandbox-enableweakernetworkisolation) en `true` en su lugar.

747* **`open`, `osascript` o los flujos de autenticación basados en navegador fallan con el error `-600` en macOS**: el sandbox bloquea Apple Events de forma predeterminada. Establezca [`allowAppleEvents`](/docs/es/settings-reference#sandbox-allowappleevents) en `true` en su configuración de usuario, administrada o CLI para permitirlos. La configuración del proyecto se ignora para esta clave. Habilitarlo elimina el aislamiento de ejecución de código, ya que los comandos aislados pueden entonces lanzar otras aplicaciones sin aislar sin solicitud del usuario y enviar comandos AppleScript a aplicaciones en ejecución, sujeto a la solicitud de consentimiento de automatización de macOS (TCC). Alternativamente, agregue el comando a `excludedCommands` para ejecutarlo fuera del sandbox.749* **`open`, `osascript` o los flujos de autenticación basados en navegador fallan con el error `-600` en macOS**: el sandbox bloquea Apple Events de forma predeterminada. Establezca [`allowAppleEvents`](/docs/es/settings-reference#sandbox-allowappleevents) en `true` en su configuración de usuario, administrada o CLI para permitirlos. La configuración del proyecto se ignora para esta clave. Habilitarlo elimina el aislamiento de ejecución de código, ya que los comandos aislados pueden entonces lanzar otras aplicaciones sin aislar sin solicitud del usuario y enviar comandos AppleScript a aplicaciones en ejecución, sujeto a la solicitud de consentimiento de automatización de macOS (TCC). Alternativamente, agregue el comando a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands).

748* **Los comandos `docker` fallan**: `docker` es incompatible con el sandbox. Agregue `docker *` a `excludedCommands` para ejecutarlo fuera del sandbox.750* **Los comandos `docker` fallan**: `docker` es incompatible con el sandbox. Agregue `docker *` a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands).

749* **`pbcopy`, `xclip` o `wl-copy` no actualiza el portapapeles**: estas utilidades de portapapeles pueden fallar al alcanzar el portapapeles del sistema desde dentro del sandbox, en cuyo caso el texto canalizado hacia ellas no llega. Para poner la salida de Claude en su portapapeles, pida a Claude que la imprima en su respuesta, luego ejecute [`/copy`](/docs/es/commands), que escribe en el portapapeles desde el proceso Claude Code en lugar de desde un comando aislado. Alternativamente, agregue `pbcopy *`, `wl-copy *` o `xclip *` a `excludedCommands` para ejecutar el comando fuera del sandbox.751* **`pbcopy`, `xclip` o `wl-copy` no actualiza el portapapeles**: estas utilidades de portapapeles pueden fallar al alcanzar el portapapeles del sistema desde dentro del sandbox, en cuyo caso el texto canalizado hacia ellas no llega.

752 

753 Para poner la salida de Claude en su portapapeles, pida a Claude que la imprima en su respuesta, luego ejecute [`/copy`](/docs/es/commands). `/copy` escribe en el portapapeles desde el proceso Claude Code en lugar de desde un comando aislado.

754 

755 Cuando Claude canaliza texto a una de estas herramientas, agregar la herramienta a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) no saca esa llamada del sandbox por sí sola.

750* **Un comando git falla con `unable to unlink old`**: `git merge`, `git checkout` y comandos similares fallan de esta manera cuando necesitan reemplazar un archivo al que el sandbox deniega escrituras, ya sea que ese archivo esté bajo una [ruta protegida](#protected-paths) como `.claude/skills`, bajo una de sus entradas `denyWrite`, o fuera de los directorios en los que el sandbox permite que los comandos escriban en absoluto. En Linux y WSL2 el error termina con `Read-only file system`.756* **Un comando git falla con `unable to unlink old`**: `git merge`, `git checkout` y comandos similares fallan de esta manera cuando necesitan reemplazar un archivo al que el sandbox deniega escrituras, ya sea que ese archivo esté bajo una [ruta protegida](#protected-paths) como `.claude/skills`, bajo una de sus entradas `denyWrite`, o fuera de los directorios en los que el sandbox permite que los comandos escriban en absoluto. En Linux y WSL2 el error termina con `Read-only file system`.

751 757 

752 Después de la falla, Claude puede [ofrecer ejecutar nuevamente el comando fuera del sandbox](#the-unsandboxed-retry-escape-hatch); apruebe ese reintento o ejecute el comando git usted mismo en otra terminal. Si ha establecido `allowUnsandboxedCommands` en `false`, Claude no puede ofrecer el reintento, así que ejecute el comando usted mismo. Si el mismo comando git falla a menudo, agréguelo a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands).758 Después de la falla, Claude puede [ofrecer ejecutar nuevamente el comando fuera del sandbox](#the-unsandboxed-retry-escape-hatch); apruebe ese reintento o ejecute el comando git usted mismo en otra terminal. Si ha establecido `allowUnsandboxedCommands` en `false`, Claude no puede ofrecer el reintento, así que ejecute el comando usted mismo. Si el mismo comando git falla a menudo, agréguelo a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands).

Details

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official

32```32```

33 33 

34`/plugin` abre un panel interactivo y está disponible solo en la CLI de terminal. Si Claude responde que `/plugin` no está disponible en este entorno, instale de otra manera:34`/plugin` abre un panel interactivo en la CLI de terminal. Si Claude responde que `/plugin` no está disponible en este entorno, instale de otra manera:

35 35 

36* **Aplicación de escritorio Claude, sesión local o SSH**: abra el [navegador de plugins](/docs/es/desktop#install-plugins) haciendo clic en el botón **+** junto al prompt, luego **Plugins**, luego **Agregar plugin**36* **Aplicación de escritorio Claude, sesión local o SSH**: abra el [navegador de plugins](/docs/es/desktop#install-plugins) haciendo clic en el botón **+** junto al prompt, luego **Plugins**, luego **Agregar plugin**

37* **Sesiones en la nube**: declare el plugin en `.claude/settings.json` como se muestra en [Habilitar en sesiones en la nube y repositorios compartidos](#enable-in-cloud-sessions-and-shared-repositories)37* **Extensión de VS Code**: instale desde el [diálogo **Administrar plugins**](/docs/es/vs-code#manage-plugins)

38* **Sesiones en la nube**: habilite el plugin para su cuenta de claude.ai para que Claude Code lo cargue como un [plugin sincronizado](/docs/es/plugins-reference#synced-plugins). Una sesión en la nube no carga plugins de su configuración de usuario o del archivo `.claude/settings.json` del repositorio, como explica [Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup)

38 39 

39La instalación en terminal solicita un alcance. Elija alcance de usuario para escribir el plugin en su configuración de usuario, de modo que se cargue en cada nueva sesión local que inicie en esta máquina.40La instalación en terminal solicita un alcance. Elija alcance de usuario para escribir el plugin en su configuración de usuario, de modo que se cargue en cada nueva sesión local que inicie en esta máquina.

40 41 


45 46 

46Verifique el resumen de instalación. Si reporta `Run /reload-plugins to activate.`, consulte [Aplicar cambios de plugin sin reiniciar](/docs/es/discover-plugins#apply-plugin-changes-without-restarting) para activar el plugin en su sesión actual.47Verifique el resumen de instalación. Si reporta `Run /reload-plugins to activate.`, consulte [Aplicar cambios de plugin sin reiniciar](/docs/es/discover-plugins#apply-plugin-changes-without-restarting) para activar el plugin en su sesión actual.

47 48 

48<h3 id="enable-in-cloud-sessions-and-shared-repositories">49<h3 id="enable-for-your-team-in-local-sessions">

49 Habilitar en sesiones en la nube y repositorios compartidos50 Habilitar en sesiones locales para su equipo

50</h3>51</h3>

51 52 

52Los plugins con alcance de usuario no se transfieren a [sesiones en la nube](/docs/es/claude-code-on-the-web), porque esas sesiones no se ejecutan en su máquina. Para habilitar el plugin allí, o para activarlo para todos los que clonan un repositorio, declárelo en la configuración del proyecto registrada:53Para activar el plugin en las sesiones locales que sus compañeros de equipo inician en el repositorio, declárelo en la configuración registrada del proyecto:

53 54 

54```json .claude/settings.json theme={null}55```json .claude/settings.json theme={null}

55{56{

Details

184 184 

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

186 186 

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

188 188 

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

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


223Intercambie `linux-x64` por `linux-arm64` si sus nodos son ARM, o por `linux-x64-musl` o `linux-arm64-musl` en una imagen basada en musl como Alpine; consulte [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions) para los paquetes adicionales que las imágenes musl necesitan. La URL es la ubicación de lanzamiento estándar de Claude Code, por lo que puede verificar el binario descargado contra el manifiesto firmado del lanzamiento como se describe en [Integridad binaria y firma de código](/docs/es/setup#binary-integrity-and-code-signing). Construya la imagen con la versión 2.1.224 de Claude Code o posterior, luego empújela a su registro y hágale referencia en las recetas a continuación:223Intercambie `linux-x64` por `linux-arm64` si sus nodos son ARM, o por `linux-x64-musl` o `linux-arm64-musl` en una imagen basada en musl como Alpine; consulte [Configuración de Alpine Linux](/docs/es/setup#alpine-linux-and-musl-based-distributions) para los paquetes adicionales que las imágenes musl necesitan. La URL es la ubicación de lanzamiento estándar de Claude Code, por lo que puede verificar el binario descargado contra el manifiesto firmado del lanzamiento como se describe en [Integridad binaria y firma de código](/docs/es/setup#binary-integrity-and-code-signing). Construya la imagen con la versión 2.1.224 de Claude Code o posterior, luego empújela a su registro y hágale referencia en las recetas a continuación:

224 224 

225```bash theme={null}225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.224 -t <your-registry>/claude-runner:latest .226docker build --build-arg CLAUDE_CODE_VERSION=2.1.267 -t <your-registry>/claude-runner:latest .

227```227```

228 228 

229<h2 id="size-cpu-and-memory-for-sessions">229<h2 id="size-cpu-and-memory-for-sessions">

Details

171* **El bloque `env`**: aparte de la unidad de telemetría y las variables de enrutamiento emparejadas con una clave de credencial, ambas cubiertas a continuación, se fusiona por clave en las fuentes controladas por administrador. Para cada variable de entorno, la fuente de mayor prioridad que la define gana, y las fuentes de administrador inferiores rellenan las variables que las fuentes superiores dejan sin establecer. Una entrada `env` administrada por endpoint se aplica, por lo tanto, siempre que la configuración administrada por servidor deje esa variable sin establecer, o mientras un valor de servidor en caché para ella se [retiene pendiente de confirmación del servidor](#fetch-and-caching-behavior). Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplica solo el bloque `env` de la fuente seleccionada.171* **El bloque `env`**: aparte de la unidad de telemetría y las variables de enrutamiento emparejadas con una clave de credencial, ambas cubiertas a continuación, se fusiona por clave en las fuentes controladas por administrador. Para cada variable de entorno, la fuente de mayor prioridad que la define gana, y las fuentes de administrador inferiores rellenan las variables que las fuentes superiores dejan sin establecer. Una entrada `env` administrada por endpoint se aplica, por lo tanto, siempre que la configuración administrada por servidor deje esa variable sin establecer, o mientras un valor de servidor en caché para ella se [retiene pendiente de confirmación del servidor](#fetch-and-caching-behavior). Requiere Claude Code v2.1.223 o posterior. Antes de v2.1.223, Claude Code aplica solo el bloque `env` de la fuente seleccionada.

172 * **Unidad de telemetría**: las claves del exportador `OTEL_EXPORTER_OTLP_*`, los conmutadores de captura de contenido `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` y las variables de rastreo beta `ENABLE_BETA_TRACING_DETAILED` y `BETA_TRACING_ENDPOINT` siguen la fuente más alta que establece cualquiera de ellas como una unidad. Una fuente que entrega la clave de credencial `otelHeadersHelper` reclama la unidad también, pero coloca estas variables solo cuando es la fuente seleccionada: una fuente que no está seleccionada pero entrega la clave no contribuye ninguna de ellas y aún bloquea las fuentes inferiores de rellenarlas. De cualquier forma, un punto final del exportador de una fuente nunca puede emparejarse con credenciales de otra.172 * **Unidad de telemetría**: las claves del exportador `OTEL_EXPORTER_OTLP_*`, los conmutadores de captura de contenido `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` y las variables de rastreo beta `ENABLE_BETA_TRACING_DETAILED` y `BETA_TRACING_ENDPOINT` siguen la fuente más alta que establece cualquiera de ellas como una unidad. Una fuente que entrega la clave de credencial `otelHeadersHelper` reclama la unidad también, pero coloca estas variables solo cuando es la fuente seleccionada: una fuente que no está seleccionada pero entrega la clave no contribuye ninguna de ellas y aún bloquea las fuentes inferiores de rellenarlas. De cualquier forma, un punto final del exportador de una fuente nunca puede emparejarse con credenciales de otra.

173 * **Enrutamiento emparejado con credencial**: una fuente que empareja variables de enrutamiento con una clave de credencial solo para fuente seleccionada, como `apiKeyHelper` u `otelHeadersHelper`, contribuye esas variables de enrutamiento solo cuando gana la ranura.173 * **Enrutamiento emparejado con credencial**: una fuente que empareja variables de enrutamiento con una clave de credencial solo para fuente seleccionada, como `apiKeyHelper` u `otelHeadersHelper`, contribuye esas variables de enrutamiento solo cuando gana la ranura.

174* **Claves de inicio de sesión de puerta de enlace**: Claude Code nunca lee [`forceLoginGatewayUrl`](/docs/es/settings-reference#forcelogingatewayurl) ni el valor `"gateway"` de [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) de la configuración administrada por servidor, por lo que seleccionar la configuración administrada por servidor ni suministra un inicio de sesión de puerta de enlace ni oculta uno establecido en una política MDM o archivo de configuración administrada. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente de administrador en la máquina los suministra.174* **Claves de inicio de sesión de puerta de enlace**: Claude Code nunca lee [`forceLoginGatewayUrl`](/docs/es/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/es/settings-reference#gatewayinternalnetworks), ni el valor `"gateway"` de [`forceLoginMethod`](/docs/es/settings-reference#forceloginmethod) de la configuración administrada por servidor, por lo que un valor allí ni se aplica ni oculta uno establecido en una política MDM o archivo de configuración administrada. La entrada [`managedSourcesBehavior`](/docs/es/settings-reference#managedsourcesbehavior) dice qué fuente de administrador en la máquina los suministra.

175 175 

176<h3 id="fetch-and-caching-behavior">176<h3 id="fetch-and-caching-behavior">

177 Comportamiento de búsqueda y almacenamiento en caché177 Comportamiento de búsqueda y almacenamiento en caché

sessions.md +7 −1

Details

147Las sesiones que no nombra aún obtienen dos etiquetas que Claude Code asigna. Solo el título generado funciona como identificador de reanudación:147Las sesiones que no nombra aún obtienen dos etiquetas que Claude Code asigna. Solo el título generado funciona como identificador de reanudación:

148 148 

149* Nombre de visualización predeterminado: las sesiones interactivas que nunca nombra aún obtienen un nombre de visualización predeterminado cuando se inician. Requiere Claude Code v2.1.196 o posterior. El valor predeterminado combina el nombre del directorio de trabajo con un sufijo de dos caracteres, por ejemplo `my-app-3f`, e identifica la sesión en listados de sesiones en ejecución, como [vista de agente](/docs/es/agent-view) y salida de `claude agents --json`. El valor predeterminado no es un identificador de reanudación. Si lo pasa a `claude --resume` o `/resume`, Claude Code no encuentra la sesión. Nombrar la sesión reemplaza el valor predeterminado en esos listados, y también lo hace aceptar un plan.149* Nombre de visualización predeterminado: las sesiones interactivas que nunca nombra aún obtienen un nombre de visualización predeterminado cuando se inician. Requiere Claude Code v2.1.196 o posterior. El valor predeterminado combina el nombre del directorio de trabajo con un sufijo de dos caracteres, por ejemplo `my-app-3f`, e identifica la sesión en listados de sesiones en ejecución, como [vista de agente](/docs/es/agent-view) y salida de `claude agents --json`. El valor predeterminado no es un identificador de reanudación. Si lo pasa a `claude --resume` o `/resume`, Claude Code no encuentra la sesión. Nombrar la sesión reemplaza el valor predeterminado en esos listados, y también lo hace aceptar un plan.

150* Título generado: si no nombra una sesión, Claude Code genera un título de sesión para ella. El título es un resumen breve de su primer indicador, escrito por una solicitud en segundo plano al modelo pequeño/rápido, normalmente un modelo de clase Haiku. Aceptar un plan lo reemplaza con un título basado en el plan. Nombrar la sesión reemplaza el título generado. Verá el título del primer indicador en el [selector de sesiones](#use-the-session-picker) y en el campo [`session_name`](/docs/es/statusline) de la línea de estado cuando no hay nombre establecido. El título del plan se muestra en los mismos dos lugares y también en los listados de sesiones en ejecución, donde toma el lugar del nombre de visualización predeterminado. Puede pasar cualquiera de los dos títulos a `claude --resume` o `/resume`, y Claude Code lo resuelve de la misma manera que un nombre que usted establece.150* Título generado: si no nombra una sesión, Claude Code genera un título de sesión para ella. El título es un resumen breve de su primer indicador, escrito por una solicitud en segundo plano al modelo pequeño/rápido, normalmente un modelo de clase Haiku. Una ejecución `claude -p` que inicia directamente desde un shell o script no obtiene uno.

151 

152 Aceptar un plan reemplaza el título del primer indicador con un título basado en el plan. Nombrar la sesión también lo reemplaza.

153 

154 Verá el título del primer indicador en el [selector de sesiones](#use-the-session-picker) y en el campo [`session_name`](/docs/es/statusline) de la línea de estado cuando no hay nombre establecido. El título del plan se muestra en los mismos dos lugares y también en los listados de sesiones en ejecución, donde toma el lugar del nombre de visualización predeterminado.

155 

156 Puede pasar cualquiera de los dos títulos a `claude --resume` o `/resume`, y Claude Code lo resuelve de la misma manera que un nombre que usted establece.

151 157 

152<h2 id="use-the-session-picker">158<h2 id="use-the-session-picker">

153 Usar el selector de sesiones159 Usar el selector de sesiones

settings.md +3 −3

Details

468 Mantenga las configuraciones personales fuera de un repositorio468 Mantenga las configuraciones personales fuera de un repositorio

469</h3>469</h3>

470 470 

471Para cambiar una configuración para usted en un proyecto sin cambiarla para sus compañeros de equipo, guárdela en `.claude/settings.local.json` dentro del proyecto. Claude Code aplica ese archivo sobre el `.claude/settings.json` confirmado, por lo que si el archivo de su equipo establece `"model": "claude-sonnet-5"` y usted quiere Opus, ponga `"model": "claude-opus-4-8"` en su archivo local y solo sus sesiones cambian.471Para cambiar una configuración para usted en un proyecto sin cambiarla para sus compañeros de equipo, guárdela en `.claude/settings.local.json` dentro del proyecto. Claude Code aplica ese archivo sobre el `.claude/settings.json` confirmado, por lo que si el archivo de su equipo establece `"model": "claude-sonnet-5"` y usted quiere Opus, ponga `"model": "claude-opus-5-5"` en su archivo local y solo sus sesiones cambian.

472 472 

473Claude Code también escribe en este archivo, lo mantiene fuera de sus confirmaciones, y aplica sus reglas allow sin el paso de confianza:473Claude Code también escribe en este archivo, lo mantiene fuera de sus confirmaciones, y aplica sus reglas allow sin el paso de confianza:

474 474 


598Por ejemplo, para iniciar una sesión en Opus sin cambiar su predeterminado:598Por ejemplo, para iniciar una sesión en Opus sin cambiar su predeterminado:

599 599 

600```bash theme={null}600```bash theme={null}

601claude --settings '{"model": "claude-opus-4-8"}'601claude --settings '{"model": "claude-opus-5-5"}'

602```602```

603 603 

604<h3 id="when-edits-take-effect">604<h3 id="when-edits-take-effect">


803 803 

804Una [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un [entorno en la nube](/docs/es/cloud-environments) en un clon fresco de su repositorio, no en su máquina. Eso cambia qué configuraciones lo alcanzan:804Una [sesión en la nube](/docs/es/claude-code-on-the-web) se ejecuta en un [entorno en la nube](/docs/es/cloud-environments) en un clon fresco de su repositorio, no en su máquina. Eso cambia qué configuraciones lo alcanzan:

805 805 

806* **Configuraciones compartidas de proyecto** (`.claude/settings.json`): se leen en una sesión con un repositorio, porque el archivo es parte del clon y la sesión comienza dentro de él. Confirme una configuración allí para aplicarla en esas sesiones. Una sesión con varios repositorios comienza por encima de los clones, por lo que de cada `.claude/settings.json` del repositorio solo carga los plugins y mercados que el archivo declara, no reglas de permisos, hooks, `env` u otras claves; consulte [Lo que se transfiere de su configuración](/docs/es/cloud-environments#what-carries-over-from-your-setup).806* **Configuraciones compartidas de proyecto** (`.claude/settings.json`): se leen en una sesión con un repositorio, porque el archivo es parte del clon y la sesión comienza dentro de él. Confirme una configuración allí para aplicarla en esas sesiones. Una sesión con varios repositorios comienza por encima de los clones y lee solo las claves `enabledPlugins` y `extraKnownMarketplaces` de cada `.claude/settings.json` del repositorio, no reglas de permisos, hooks, `env` u otras claves. Los mercados y plugins que esas dos claves declaran aún [no se cargan en una sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup).

807* **Configuraciones de usuario y proyecto local** (`~/.claude/settings.json` y `.claude/settings.local.json`): no se leen. Ambas permanecen en su máquina, y el archivo local no está en el clon.807* **Configuraciones de usuario y proyecto local** (`~/.claude/settings.json` y `.claude/settings.local.json`): no se leen. Ambas permanecen en su máquina, y el archivo local no está en el clon.

808* **Configuraciones administradas**: solo [configuraciones administradas por servidor](/docs/es/server-managed-settings) alcanzan una sesión en la nube; un archivo `managed-settings.json` o perfil MDM en su dispositivo no. Un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuraciones administradas en su imagen de ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice cuándo se aplica ese archivo.808* **Configuraciones administradas**: solo [configuraciones administradas por servidor](/docs/es/server-managed-settings) alcanzan una sesión en la nube; un archivo `managed-settings.json` o perfil MDM en su dispositivo no. Un [entorno autohospedado](/docs/es/self-hosted-environments) también lee el archivo de configuraciones administradas en su imagen de ejecutor. [Cómo Claude Code combina fuentes administradas](/docs/es/managed-settings#how-claude-code-combines-managed-sources) dice cuándo se aplica ese archivo.

809* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración de claude.ai en lugar de cambiar un valor. Para cambiar una configuración para una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el `.claude/settings.json` de ese repositorio.809* **`/config`**: en su navegador en claude.ai/code, abre la sección Claude Code de su configuración de claude.ai en lugar de cambiar un valor. Para cambiar una configuración para una sesión en la nube, establezca una [variable de entorno](/docs/es/cloud-environments#set-environment-variables) en el entorno, o en una sesión con un repositorio, confirme la clave en el `.claude/settings.json` de ese repositorio.

Details

29 ```json ~/.claude/settings.json theme={null}29 ```json ~/.claude/settings.json theme={null}

30 {30 {

31 "model": "claude-sonnet-5",31 "model": "claude-sonnet-5",

32 "effortLevel": "xhigh",32 "modelSettings": {

33 "claude-sonnet-5": { "effortLevel": "xhigh" }

34 },

33 "editorMode": "vim",35 "editorMode": "vim",

34 "theme": "light-daltonized",36 "theme": "light-daltonized",

35 "statusLine": {37 "statusLine": {


58 {60 {

59 // Inicie cada sesión en Sonnet 561 // Inicie cada sesión en Sonnet 5

60 "model": "claude-sonnet-5",62 "model": "claude-sonnet-5",

61 // Razone más profundamente que el nivel alto predeterminado en modelos sin un nivel guardado; /effort guarda un nivel por modelo, y --effort establece uno para una sola sesión63 // Ejecute Sonnet 5 por encima de su nivel alto predeterminado; /effort guarda un nivel por modelo, y --effort establece uno para una sola sesión

62 "effortLevel": "xhigh",64 "modelSettings": {

65 "claude-sonnet-5": { "effortLevel": "xhigh" }

66 },

63 // Atajos de teclado Vim en el símbolo del sistema67 // Atajos de teclado Vim en el símbolo del sistema

64 "editorMode": "vim",68 "editorMode": "vim",

65 // El tema claro amigable para daltónicos69 // El tema claro amigable para daltónicos

Details

685| [`hooks`](#hooks) | Ejecute sus propios comandos como [hooks](/docs/es/hooks) en puntos del ciclo de vida de Claude Code | Hooks y automatización | Cualquier archivo |685| [`hooks`](#hooks) | Ejecute sus propios comandos como [hooks](/docs/es/hooks) en puntos del ciclo de vida de Claude Code | Hooks y automatización | Cualquier archivo |

686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite qué variables de entorno pueden poner los [hooks HTTP](/docs/es/hooks) en encabezados | Hooks y automatización | Cualquier archivo |686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Limite qué variables de entorno pueden poner los [hooks HTTP](/docs/es/hooks) en encabezados | Hooks y automatización | Cualquier archivo |

687| [`includeCoAuthoredBy`](#includecoauthoredby) | Obsoleto; use `attribution` para ocultar o cambiar la atribución de commit y PR | Git y atribución | Cualquier archivo |687| [`includeCoAuthoredBy`](#includecoauthoredby) | Obsoleto; use `attribution` para ocultar o cambiar la atribución de commit y PR | Git y atribución | Cualquier archivo |

688| [`includeGitInstructions`](#includegitinstructions) | Elimine las instrucciones de commit y PR integradas del [indicador del sistema](/docs/es/sub-agents#what-loads-at-startup) | Git y atribución | Cualquier archivo |688| [`includeGitInstructions`](#includegitinstructions) | Elimine las instrucciones de commit y PR integradas del contexto de Claude | Git y atribución | Cualquier archivo |

689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Obtenga una [notificación push](/docs/es/remote-control#mobile-push-notifications) cuando Claude esté esperando por usted | Remoto, escritorio y notificaciones | Cualquier archivo |689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Obtenga una [notificación push](/docs/es/remote-control#mobile-push-notifications) cuando Claude esté esperando por usted | Remoto, escritorio y notificaciones | Cualquier archivo |

690| [`isolatePeerMachines`](#isolatepeermachines) | Pregúntele antes de que Claude [envíe un mensaje a una de sus sesiones en otra máquina](/docs/es/cross-session-messaging#require-approval-for-cross-machine-messages) | Agentes, sesiones y worktrees | Cualquier archivo |690| [`isolatePeerMachines`](#isolatepeermachines) | Pregúntele antes de que Claude [envíe un mensaje a una de sus sesiones en otra máquina](/docs/es/cross-session-messaging#require-approval-for-cross-machine-messages) | Agentes, sesiones y worktrees | Cualquier archivo |

691| [`keybindingFlavor`](#keybindingflavor) | Obsoleto y sin efecto; los atajos de edición de palabras siempre [siguen convenciones readline](/docs/es/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interfaz y terminal | Cualquier archivo |691| [`keybindingFlavor`](#keybindingflavor) | Obsoleto y sin efecto; los atajos de edición de palabras siempre [siguen convenciones readline](/docs/es/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interfaz y terminal | Cualquier archivo |


797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Deje de cargar los [plugins habilitados en su cuenta de claude.ai](/docs/es/plugins-reference#synced-plugins) y deje de descargar nuevos | Plugins y skills | Usuario, local o administrado |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Deje de cargar los [plugins habilitados en su cuenta de claude.ai](/docs/es/plugins-reference#synced-plugins) y deje de descargar nuevos | Plugins y skills | Usuario, local o administrado |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Deje de cargar los [skills habilitados en su cuenta de claude.ai](/docs/es/skills#how-synced-skills-behave) y deje de descargar nuevos | Plugins y skills | Usuario, local o administrado |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Deje de cargar los [skills habilitados en su cuenta de claude.ai](/docs/es/skills#how-synced-skills-behave) y deje de descargar nuevos | Plugins y skills | Usuario, local o administrado |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desactive el resaltado de sintaxis en diffs y bloques de código | Interfaz y terminal | Cualquier archivo |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Desactive el resaltado de sintaxis en diffs y bloques de código | Interfaz y terminal | Cualquier archivo |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Establezca cuánta [salida de tarea de fondo](/docs/es/tools-reference#background-commands) recibe Claude en línea | Memoria y contexto | Cualquier archivo |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Removido en v2.1.277, junto con la herramienta `TaskOutput` que dimensionaba | Memoria y contexto | Cualquier archivo |

801| [`teammateDefaultModel`](#teammatedefaultmodel) | Eliminado en v2.1.234; vea [Especificar compañeros de equipo y modelos](/docs/es/agent-teams#specify-teammates-and-models) para cómo Claude Code elige el modelo de un compañero de equipo | Configuración global | Configuración global |801| [`teammateDefaultModel`](#teammatedefaultmodel) | Eliminado en v2.1.234; vea [Especificar compañeros de equipo y modelos](/docs/es/agent-teams#specify-teammates-and-models) para cómo Claude Code elige el modelo de un compañero de equipo | Configuración global | Configuración global |

802| [`teammateMode`](#teammatemode) | Elija cómo [se muestran los compañeros de equipo del equipo de agentes](/docs/es/agent-teams#choose-a-display-mode) | Agentes, sesiones y worktrees | Cualquier archivo |802| [`teammateMode`](#teammatemode) | Elija cómo [se muestran los compañeros de equipo del equipo de agentes](/docs/es/agent-teams#choose-a-display-mode) | Agentes, sesiones y worktrees | Cualquier archivo |

803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculte la barra de progreso del terminal en terminales que la admitan | Interfaz y terminal | Cualquier archivo |803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Oculte la barra de progreso del terminal en terminales que la admitan | Interfaz y terminal | Cualquier archivo |


840Si su cuenta requiere el [consentimiento de créditos de uso](/docs/es/advisor#fable-advisor-and-usage-credits), acéptelo primero ejecutando `/model fable`. Hasta que lo haga, elegir Fable en `/advisor` no guarda nada y Claude Code le indica que ejecute `/model fable` primero.840Si su cuenta requiere el [consentimiento de créditos de uso](/docs/es/advisor#fable-advisor-and-usage-credits), acéptelo primero ejecutando `/model fable`. Hasta que lo haga, elegir Fable en `/advisor` no guarda nada y Claude Code le indica que ejecute `/model fable` primero.

841 841 

842* **Alcance**: [`Cualquier archivo`](#scopes)842* **Alcance**: [`Cualquier archivo`](#scopes)

843* **Tipo**: cadena, uno de los alias `"fable"`, `"opus"` u `"sonnet"`, que se resuelven a la versión predeterminada actual de Claude Code de esa familia de modelos, o un ID de modelo completo como `"claude-opus-5"`843* **Tipo**: cadena, uno de los alias `"fable"`, `"opus"` u `"sonnet"`, que se resuelven a la versión predeterminada actual de Claude Code de esa familia de modelos, o un ID de modelo completo como `"claude-opus-5-5"`

844* **Predeterminado**: sin establecer, por lo que el advisor está desactivado844* **Predeterminado**: sin establecer, por lo que el advisor está desactivado

845* **Anulaciones por sesión**: `--advisor` tiene precedencia sobre esta clave para una sesión. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/es/env-vars) desactiva el advisor, y esta clave no puede reactivarlo845* **Anulaciones por sesión**: `--advisor` tiene precedencia sobre esta clave para una sesión. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/es/env-vars) desactiva el advisor, y esta clave no puede reactivarlo

846 846 


858 858 

859Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.859Desactive el [pensamiento extendido](/docs/es/model-config#extended-thinking) para cada sesión estableciendo esto en `false`. El pensamiento está activado de forma predeterminada, por lo que `true` no cambia nada. La mayoría de las personas establecen esto a través de `/config` en lugar de editar el archivo.

860 860 

861En modelos que siempre piensan, como los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](/docs/es/third-party-integrations) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.861En modelos que siempre piensan, como Opus 5.5 y los modelos Fable, `false` no tiene efecto. En [proveedores de terceros](/docs/es/third-party-integrations) Claude Code omite el parámetro `thinking` en lugar de desactivar el pensamiento, por lo que los modelos de razonamiento adaptativo pueden seguir pensando. Con el pensamiento desactivado en la API de Anthropic, Claude Code envía esfuerzo `high` en lugar de un nivel superior a modelos que sabe que [no aceptan esa combinación](/docs/es/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.

862 862 

863* **Alcance**: [`Cualquier archivo`](#scopes)863* **Alcance**: [`Cualquier archivo`](#scopes)

864* **Tipo**: Booleano864* **Tipo**: Booleano


903 903 

904Dentro del mismo archivo de configuración, Claude Code utiliza el nivel guardado de un modelo en lugar de esta clave. [`modelSettings`](#modelsettings) indica la precedencia entre archivos.904Dentro del mismo archivo de configuración, Claude Code utiliza el nivel guardado de un modelo en lugar de esta clave. [`modelSettings`](#modelsettings) indica la precedencia entre archivos.

905 905 

906En una sesión conectada a un trabajador remoto, `/effort` se aplica solo a esa sesión. En una ejecución `-p` o en el Agent SDK también se aplica solo a esa sesión, [a menos que haya una retención en el esfuerzo predeterminado del modelo](/docs/es/model-config#non-interactive-effort). [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enumera las selecciones interactivas que también se aplican solo a esa sesión. El mensaje que imprime `/effort` indica qué sucedió.906En una sesión conectada a un trabajador remoto, en una ejecución `-p` y en el Agent SDK, `/effort` se aplica solo a esa sesión. [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enumera las selecciones interactivas que también se aplican solo a esa sesión. El mensaje que imprime `/effort` indica qué sucedió.

907 907 

908* **Alcance**: [`Cualquier archivo`](#scopes)908* **Alcance**: [`Cualquier archivo`](#scopes)

909* **Tipo**: cadena, uno de:909* **Tipo**: cadena, uno de:


920}920}

921```921```

922 922 

923En Opus 4.7, Opus 4.8 y Fable 5, Claude Code mantiene el esfuerzo predeterminado de ese modelo, establecido por la organización o integrado; [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) indica qué formas de establecer un nivel terminan la retención y cuáles la mantienen en su lugar. Una vez que termina la retención, Claude Code resuelve el esfuerzo por la precedencia indicada en [`modelSettings`](#modelsettings).923En su archivo de configuración de usuario, `~/.claude/settings.json`, esta clave es la forma anterior que `/effort` escribía antes de guardar niveles por modelo, y sigue aplicándose donde se aplicaba antes, en Opus 5, Fable 5.1 y modelos anteriores. Opus 5.5 y modelos lanzados después de él la ignoran y comienzan en su propio predeterminado hasta que guarde un nivel para ellos, que `/effort` escribe bajo [`modelSettings`](#modelsettings). En configuraciones de proyecto, local y administrada, y con `--settings`, esta clave se aplica a cada modelo.

924 924 

925<h3 id="enforceavailablemodels">925<h3 id="enforceavailablemodels">

926 `enforceAvailableModels`926 `enforceAvailableModels`


974 `fastMode`974 `fastMode`

975</h3>975</h3>

976 976 

977Active el [modo rápido](/docs/es/fast-mode) para sesiones donde está disponible, para trabajo interactivo como iteración rápida o depuración en vivo donde desea velocidad a un costo más alto por token. Normalmente no edita esta clave manualmente: ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y ejecutarlo nuevamente para desactivar el modo rápido elimina la clave. El modo rápido se ejecuta solo en Opus 5 y Opus 4.8: activarlo desde otro modelo lo cambia a Opus, y cambiar a un modelo no compatible lo desactiva. Consulte [Cambiar modelos mientras el modo rápido está activado](/docs/es/fast-mode#switch-models-while-fast-mode-is-on).977Active el [modo rápido](/docs/es/fast-mode) para sesiones donde está disponible, para trabajo interactivo como iteración rápida o depuración en vivo donde desea velocidad a un costo más alto por token. Normalmente no edita esta clave manualmente: ejecutar `/fast` escribe `fastMode: true` en `~/.claude/settings.json`, y ejecutarlo nuevamente para desactivar el modo rápido elimina la clave. El modo rápido se ejecuta solo en Opus 5.5, Opus 5 y Opus 4.8: activarlo desde otro modelo lo cambia a Opus, y cambiar a un modelo no compatible lo desactiva. Consulte [Cambiar modelos mientras el modo rápido está activado](/docs/es/fast-mode#switch-models-while-fast-mode-is-on).

978 978 

979* **Alcance**: [`Cualquier archivo`](#scopes)979* **Alcance**: [`Cualquier archivo`](#scopes)

980* **Tipo**: Booleano980* **Tipo**: Booleano


993 `fastModePerSessionOptIn`993 `fastModePerSessionOptIn`

994</h3>994</h3>

995 995 

996Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, por lo que el modo rápido está activado al inicio de cada sesión posterior. Establezca esta clave en `true` para detener eso: un `fastMode: true` guardado ya no activa el modo rápido al inicio de la sesión, y cada persona debe ejecutar `/fast` en cada sesión que lo desee. Claude Code deja la clave `fastMode` en su archivo, por lo que desactivar esta clave restaura el comportamiento anterior. Los propietarios en planes Team o Enterprise pueden implementarlo en toda la organización a través de [configuraciones administradas por el servidor](/docs/es/server-managed-settings).996Normalmente, ejecutar `/fast` guarda [`fastMode`](#fastmode) en la configuración de usuario de una persona, por lo que el modo rápido está activado al inicio de cada sesión posterior. Establezca esta clave en `true` para detener eso: un `fastMode: true` guardado ya no activa el modo rápido al inicio de la sesión, y cada persona debe ejecutar `/fast` en cada sesión que lo desee. Claude Code deja la clave `fastMode` en su archivo, por lo que desactivar esta clave restaura el comportamiento anterior.

997 

998Los propietarios en planes Team o Enterprise pueden implementarlo en toda la organización a través de [configuraciones administradas por el servidor](/docs/es/server-managed-settings). Cuando las configuraciones administradas establecen la clave, `/fast on` se rechaza fuera de sesiones de terminal interactivas e informa que su organización ha desactivado el modo rápido. Eso cubre [modo no interactivo](/docs/es/headless), la [extensión VS Code](/docs/es/vs-code) y [sesiones en la nube](/docs/es/claude-code-on-the-web).

997 999 

998* **Alcance**: [`Cualquier archivo`](#scopes)1000* **Alcance**: [`Cualquier archivo`](#scopes)

999* **Tipo**: Booleano1001* **Tipo**: Booleano


1208 `modelSettings`1210 `modelSettings`

1209</h3>1211</h3>

1210 1212 

1211Guarde un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para cada modelo que utilice. En una sesión interactiva en su máquina, cuando guarda `low`, `medium`, `high` o `xhigh` como su predeterminado con `/effort` o el control deslizante de esfuerzo del selector `/model`, Claude Code escribe ese nivel aquí bajo el modelo que está utilizando, por lo que rara vez edita esta clave usted mismo. La entrada [`effortLevel`](#effortlevel) enumera las sesiones donde `/effort` se aplica solo a esa sesión. Requiere Claude Code v2.1.251 o posterior.1213Guarde un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para cada modelo que utilice. Requiere Claude Code v2.1.251 o posterior.

1214 

1215En una sesión interactiva en su máquina, cuando guarda `low`, `medium`, `high` o `xhigh` como su predeterminado con `/effort` o el control deslizante de esfuerzo del selector `/model`, Claude Code escribe ese nivel aquí bajo el modelo que está utilizando, por lo que rara vez edita esta clave usted mismo. Cuando elige uno de esos niveles en el [selector de modelos de la extensión VS Code](/docs/es/vs-code#use-the-prompt-box), Claude Code lo guarda aquí de la misma manera. La entrada [`effortLevel`](#effortlevel) enumera las sesiones donde `/effort` se aplica solo a esa sesión.

1212 1216 

1213Edite la clave manualmente para cambiar o eliminar un nivel que guardó.1217Edite la clave manualmente para cambiar o eliminar un nivel que guardó.

1214 1218 

1215Un `effortLevel` de un modelo aquí tiene precedencia sobre el [`effortLevel`](#effortlevel) de nivel superior en el mismo archivo de configuración. Entre archivos, Claude Code resuelve cada modelo por separado: el [archivo de configuración](/docs/es/settings#settings-precedence) de mayor precedencia que establece un `effortLevel` para ese modelo o el `effortLevel` de nivel superior decide, por lo que un `effortLevel` en configuraciones administradas supera un nivel que guardó en configuraciones de usuario. [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enumera qué más puede anular un nivel guardado, como `--effort` al iniciar.1219Un `effortLevel` de un modelo aquí tiene precedencia sobre el [`effortLevel`](#effortlevel) de nivel superior en el mismo archivo de configuración. Entre archivos, Claude Code resuelve cada modelo por separado: el [archivo de configuración](/docs/es/settings#settings-precedence) de mayor precedencia que establece un `effortLevel` para ese modelo o el `effortLevel` de nivel superior que [se aplica a ese modelo](#effortlevel) decide, por lo que un `effortLevel` en configuraciones administradas supera un nivel que guardó en configuraciones de usuario. [Ajustar el nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) enumera qué más puede anular un nivel guardado, como `--effort` al iniciar.

1216 1220 

1217Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agregue un campo [`maxEffortLevel`](#maxeffortlevel) a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.1221Para limitar el esfuerzo de un modelo en lugar de establecer su nivel, agregue un campo [`maxEffortLevel`](#maxeffortlevel) a la entrada de ese modelo. El campo requiere Claude Code v2.1.267 o posterior.

1218 1222 


1220* **Tipo**: objeto que asigna un nombre de modelo a un objeto con un campo `effortLevel`, uno de `"low"`, `"medium"`, `"high"` u `"xhigh"`, un campo [`maxEffortLevel`](#maxeffortlevel) o ambos1224* **Tipo**: objeto que asigna un nombre de modelo a un objeto con un campo `effortLevel`, uno de `"low"`, `"medium"`, `"high"` u `"xhigh"`, un campo [`maxEffortLevel`](#maxeffortlevel) o ambos

1221* **Predeterminado**: sin establecer1225* **Predeterminado**: sin establecer

1222 1226 

1223Claude Code escribe cada entrada bajo el nombre canónico del modelo, como `claude-opus-5`, y coincide con el alias de ese modelo, con sufijo de fecha, `[1m]` e IDs específicos del proveedor reconocidos a la misma entrada.1227Claude Code escribe cada entrada bajo el nombre canónico del modelo, como `claude-opus-5-5`, y coincide con el alias de ese modelo, con sufijo de fecha, `[1m]` e IDs específicos del proveedor reconocidos a la misma entrada.

1224 1228 

1225Este ejemplo mantiene Opus 5 en `medium` mientras otros modelos utilizan sus propios niveles guardados o predeterminados:1229Este ejemplo mantiene Opus 5.5 en `high` mientras otros modelos utilizan sus propios niveles guardados o predeterminados:

1226 1230 

1227```json settings.json theme={null}1231```json settings.json theme={null}

1228{1232{

1229 "modelSettings": {1233 "modelSettings": {

1230 "claude-opus-5": {1234 "claude-opus-5-5": {

1231 "effortLevel": "medium"1235 "effortLevel": "high"

1232 }1236 }

1233 }1237 }

1234}1238}


1839 `sandbox.excludedCommands`1843 `sandbox.excludedCommands`

1840</h3>1844</h3>

1841 1845 

1842Nombre los comandos que Claude Code siempre ejecuta fuera del sandbox, como herramientas que no funcionan bajo él. Cada entrada utiliza la misma sintaxis que el contenido de una [regla de permiso](/docs/es/permissions#permission-rule-syntax) `Bash(...)`: un comando exacto, un prefijo como `docker *` o un patrón comodín. Cuando cualquier parte de un comando compuesto coincide con una entrada, Claude Code ejecuta todo el comando sin sandbox.1846Nombre los comandos que Claude Code ejecuta fuera del sandbox, como herramientas que no funcionan bajo él. Cada entrada utiliza la misma sintaxis que el contenido de una [regla de permiso](/docs/es/permissions#permission-rule-syntax) `Bash(...)`: un comando exacto, un prefijo como `docker *` o un patrón comodín.

1847 

1848Sus entradas sacan una llamada Bash del sandbox solo cuando cubren cada comando en ella, y algunas formas de llamada permanecen en sandbox incluso entonces. Una entrada `docker *` sola no saca `npm ci && docker build .` del sandbox.

1843 1849 

1844* **Scope**: [`Any file`](#scopes)1850* **Scope**: [`Any file`](#scopes)

1845* **Type**: array de patrones de comando1851* **Type**: array de patrones de comando


1853}1859}

1854```1860```

1855 1861 

1862Claude Code mantiene una llamada Bash en sandbox cuando tiene una de estas formas, entre otras:

1863 

1864* Un comando que comienza con `sudo`, `eval` o `xargs`

1865* Un `cd`, `pushd` o `popd`, dondequiera que aparezca en la llamada

1866* Una sustitución de comando, un subshell o un bloque de flujo de control como `if` o `for`

1867* Una redirección, como `docker build . > build.log`, que no sea una que solo duplique un descriptor de archivo, como `2>&1` hace

1868* Un nombre de comando que proviene de una variable

1869 

1870Por ejemplo, `cd build && docker compose up` permanece en sandbox bajo una entrada `docker *`, y agregar una entrada `cd` no cambia eso.

1871 

1856Los comandos excluidos aún pasan por el flujo de permiso regular. La exclusión es una conveniencia, no un límite de seguridad: prefiera [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) cuando una herramienta solo necesita escribir en algún lugar específico. Claude Code fusiona entradas en todos los ámbitos de configuración que carga la sesión, y no hay un bloqueo solo administrado para esta lista, así que mantenga una lista administrada estrecha.1872Los comandos excluidos aún pasan por el flujo de permiso regular. La exclusión es una conveniencia, no un límite de seguridad: prefiera [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) cuando una herramienta solo necesita escribir en algún lugar específico. Claude Code fusiona entradas en todos los ámbitos de configuración que carga la sesión, y no hay un bloqueo solo administrado para esta lista, así que mantenga una lista administrada estrecha.

1857 1873 

1858<h3 id="sandbox-allowunsandboxedcommands">1874<h3 id="sandbox-allowunsandboxedcommands">


1905}1921}

1906```1922```

1907 1923 

1908Claude Code aplica estas listas en el límite del sandbox del SO, por lo que se aplican a cada subproceso que inicia un comando en sandbox, como `kubectl`, `terraform` o `npm`, no solo a las herramientas de archivo de Claude. Claude Code agrega sus [reglas de permiso](/docs/es/sandboxing#permission-rules) a las mismas listas: reglas `Edit` allow y deny a `allowWrite` y `denyWrite`, reglas `Read` deny a `denyRead` y reglas `WebFetch(domain:...)` allow y deny a las listas de dominio [`network`](#sandbox-network).1924Claude Code aplica estas listas en el límite del sandbox del SO, por lo que se aplican a cada subproceso que inicia un comando en sandbox, como `kubectl`, `terraform` o `npm`. Claude Code agrega sus [reglas de permiso](/docs/es/sandboxing#permission-rules) a las mismas listas: reglas `Edit` allow y deny a `allowWrite` y `denyWrite`, reglas `Read` deny a `denyRead` y reglas `WebFetch(domain:...)` allow y deny a las listas de dominio [`network`](#sandbox-network).

1909 1925 

1910A menos que se establezca un bloqueo solo administrado, Claude Code fusiona cada lista en los archivos de configuración que carga la sesión. [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) limita `allowRead` a entradas de configuración administrada, y [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) hace lo mismo para dominios permitidos.1926A menos que se establezca un bloqueo solo administrado, Claude Code fusiona cada lista en los archivos de configuración que carga la sesión. [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) limita `allowRead` a entradas de configuración administrada, y [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) hace lo mismo para dominios permitidos.

1911 1927 


3066 `taskOutputMaxChars`3082 `taskOutputMaxChars`

3067</h3>3083</h3>

3068 3084 

3069Establezca cuántos caracteres de la salida de una [tarea en segundo plano](/docs/es/tools-reference#background-commands) recibe Claude en línea cuando Claude lee la tarea con la herramienta `TaskOutput`. Cuando la salida de una tarea terminada es más larga, Claude recibe los caracteres más recientes. Aumente el límite cuando sus tareas en segundo plano regularmente producen más salida que la predeterminada. Requiere Claude Code v2.1.261 o posterior.3085<Warning>

3070 3086 Eliminado en v2.1.277, junto con la herramienta `TaskOutput` que dimensionaba. Establecer esta clave no tiene efecto en las versiones actuales. Claude lee un [archivo de salida](/docs/es/tools-reference#background-commands) de tarea en segundo plano con `Read` en su lugar.

3071* **Scope**: [`Any file`](#scopes)3087</Warning>

3072* **Type**: número de caracteres, un entero positivo. Claude Code limita el valor al rango `4000` a `128000`

3073* **Default**: sin establecer, por lo que Claude recibe hasta 32.000 caracteres en línea

3074 

3075```json settings.json theme={null}

3076{

3077 "taskOutputMaxChars": 100000

3078}

3079```

3080 3088 

3081Cuando establece esta clave, Claude Code ignora la variable de entorno [`TASK_MAX_OUTPUT_LENGTH`](/docs/es/env-vars).3089Hasta v2.1.276, establecía esta clave al número de caracteres de la [salida de una tarea en segundo plano](/docs/es/tools-reference#background-commands) que Claude recibía en línea cuando leía la tarea con la herramienta `TaskOutput`.

3082 3090 

3083<h2 id="interface-and-terminal">3091<h2 id="interface-and-terminal">

3084 Interfaz y terminal3092 Interfaz y terminal


3994 4002 

3995Para ocultar toda la atribución, establezca [`commit`](#attribution-commit) y [`pr`](#attribution-pr) en cadenas vacías y [`sessionUrl`](#attribution-sessionurl) en `false`. Una vez que establezca `commit` o `pr`, Claude Code ignora la configuración deprecada `includeCoAuthoredBy` y utiliza su texto predeterminado para cualquiera de los dos que haya dejado sin establecer.4003Para ocultar toda la atribución, establezca [`commit`](#attribution-commit) y [`pr`](#attribution-pr) en cadenas vacías y [`sessionUrl`](#attribution-sessionurl) en `false`. Una vez que establezca `commit` o `pr`, Claude Code ignora la configuración deprecada `includeCoAuthoredBy` y utiliza su texto predeterminado para cualquiera de los dos que haya dejado sin establecer.

3996 4004 

4005Claude Code le indica a Claude que sus propias instrucciones sobre atribución, como una regla de CLAUDE.md o [memory](/docs/es/memory), tienen prioridad sobre estas líneas de commit y PR, a menos que la línea esté establecida en [managed settings](/docs/es/managed-settings).

4006 

3997<h3 id="includecoauthoredby">4007<h3 id="includecoauthoredby">

3998 `includeCoAuthoredBy`4008 `includeCoAuthoredBy`

3999</h3>4009</h3>


4022 `includeGitInstructions`4032 `includeGitInstructions`

4023</h3>4033</h3>

4024 4034 

4025Al inicio de la sesión, Claude Code añade dos elementos relacionados con git al prompt de Claude: sus instrucciones integradas sobre cómo escribir commits y solicitudes de extracción, en la descripción de la herramienta Bash, y una instantánea del estado de git de su repositorio en el prompt del sistema, lo que significa la rama actual, la rama principal, la salida de `git status` y los commits recientes. Establezca esta clave en `false` para dejar ambas fuera, por ejemplo cuando utiliza sus propias skills de flujo de trabajo de git.4035Claude Code proporciona a Claude dos elementos relacionados con git: sus instrucciones integradas sobre cómo escribir commits y solicitudes de extracción, en la descripción de la herramienta Bash, y una instantánea del estado de git de su repositorio. La instantánea contiene la rama actual, la rama principal, la salida de `git status` y los commits recientes. Claude Code la lee cuando comienza una conversación.

4036 

4037Establezca esta clave en `false` para dejar ambas fuera, por ejemplo cuando utiliza sus propias skills de flujo de trabajo de git.

4026 4038 

4027* **Scope**: [`Any file`](#scopes)4039* **Scope**: [`Any file`](#scopes)

4028* **Type**: Boolean4040* **Type**: Boolean


4627| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` requerido; `ref` es una rama o etiqueta; `path` es un subdirectorio |4639| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` requerido; `ref` es una rama o etiqueta; `path` es un subdirectorio |

4628| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` requerido; `ref` y `path` como para `github` |4640| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` requerido; `ref` y `path` como para `github` |

4629| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` requerido; `headers` agrega encabezados HTTP para acceso autenticado |4641| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` requerido; `headers` agrega encabezados HTTP para acceso autenticado |

4630| `npm` | `{ "source": "npm", "package": "@acme-corp/claude-plugins" }` | `package` requerido, el paquete npm que contiene `marketplace.json` |

4631| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` requerido, la ruta absoluta a un archivo `marketplace.json` |4642| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` requerido, la ruta absoluta a un archivo `marketplace.json` |

4632| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` requerido, la ruta absoluta a un directorio que contiene `.claude-plugin/marketplace.json` |4643| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` requerido, la ruta absoluta a un directorio que contiene `.claude-plugin/marketplace.json` |

4633| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` requerido, una regex coincidida contra el host del mercado |4644| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` requerido, una regex coincidida contra el host del mercado |


5905}5916}

5906```5917```

5907 5918 

5908Establezca el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/es/env-vars). Consulte [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) para los requisitos del script y dónde Claude Code informa un auxiliar que falla.5919Establezca el intervalo de actualización con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/es/env-vars). Consulte [Encabezados dinámicos](/docs/es/monitoring-usage#dynamic-headers) para los requisitos del script y qué sucede cuando el auxiliar falla.

5909 5920 

5910<h2 id="updates-and-versioning">5921<h2 id="updates-and-versioning">

5911 Actualizaciones y versiones5922 Actualizaciones y versiones


5940Evite que las actualizaciones automáticas en segundo plano y `claude update` instalen cualquier versión inferior a esta, de modo que cambiar al canal `"stable"` no lo degrada desde una compilación `"latest"` más reciente. Claude Code escribe esta clave para usted cuando elige permanecer en su versión actual mientras cambia de canal en `/config`, y la borra cuando vuelve a cambiar a `"latest"`.5951Evite que las actualizaciones automáticas en segundo plano y `claude update` instalen cualquier versión inferior a esta, de modo que cambiar al canal `"stable"` no lo degrada desde una compilación `"latest"` más reciente. Claude Code escribe esta clave para usted cuando elige permanecer en su versión actual mientras cambia de canal en `/config`, y la borra cuando vuelve a cambiar a `"latest"`.

5941 5952 

5942* **Alcance**: [`Any file`](#scopes). Establézcalo en configuración administrada para fijar un mínimo en toda la organización que la configuración de usuario y proyecto no pueda reducir.5953* **Alcance**: [`Any file`](#scopes). Establézcalo en configuración administrada para fijar un mínimo en toda la organización que la configuración de usuario y proyecto no pueda reducir.

5943* **Tipo**: cadena, un número de versión como `"2.1.100"`5954* **Tipo**: cadena, un número de versión como `"2.1.100"`; un valor que no sea una versión válida se ignora

5944* **Predeterminado**: sin establecer, por lo que las actualizaciones pueden instalar cualquier versión que el canal ofrezca5955* **Predeterminado**: sin establecer, por lo que las actualizaciones pueden instalar cualquier versión que el canal ofrezca

5945 5956 

5946Este ejemplo sigue el canal stable y se niega a instalar cualquier versión inferior a 2.1.100:5957Este ejemplo sigue el canal stable y se niega a instalar cualquier versión inferior a 2.1.100:

skills.md +10 −6

Details

145 145 

146Claude Code carga skills de proyecto desde `.claude/skills/` en el directorio donde lo inicias y en cada directorio padre hasta la raíz del repositorio, por lo que iniciar en `packages/frontend/` aún recoge skills definidas en la raíz. Cuando [mueves la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code agrega las skills de proyecto del nuevo directorio.146Claude Code carga skills de proyecto desde `.claude/skills/` en el directorio donde lo inicias y en cada directorio padre hasta la raíz del repositorio, por lo que iniciar en `packages/frontend/` aún recoge skills definidas en la raíz. Cuando [mueves la sesión con `/cd`](/docs/es/permissions#move-the-session-to-another-directory) en v2.1.246 o posterior, Claude Code agrega las skills de proyecto del nuevo directorio.

147 147 

148En una sesión que se ejecuta en un [git worktree](/docs/es/worktrees) vinculado, Claude Code busca directorios padre solo hasta la raíz del worktree. En Claude Code v2.1.277 o posterior, cuando el checkout del worktree no tiene un directorio `.claude/skills` en su raíz, Claude Code carga las skills de proyecto del checkout principal en su lugar. Consulta [Qué comparten los worktrees con el checkout principal](/docs/es/worktrees#what-worktrees-share-with-the-main-checkout).

149 

148Las skills en un directorio `.claude/skills/` debajo de donde iniciaste no se cargan al inicio. Se cargan la primera vez que Claude lee o edita un archivo en ese subdirectorio y permanecen disponibles para el resto de la sesión. Hasta entonces no aparecen en el menú `/` y no puedes invocarlas por nombre. Para cargarlas antes, ejecuta `/add-dir` con la ruta del subdirectorio, lo que requiere Claude Code v2.1.257 o posterior.150Las skills en un directorio `.claude/skills/` debajo de donde iniciaste no se cargan al inicio. Se cargan la primera vez que Claude lee o edita un archivo en ese subdirectorio y permanecen disponibles para el resto de la sesión. Hasta entonces no aparecen en el menú `/` y no puedes invocarlas por nombre. Para cargarlas antes, ejecuta `/add-dir` con la ruta del subdirectorio, lo que requiere Claude Code v2.1.257 o posterior.

149 151 

150Cuando una skill anidada comparte un nombre con otra skill, ambas permanecen disponibles. Con una skill `deploy` en la raíz del repositorio y otra en `apps/web/.claude/skills/`:152Cuando una skill anidada comparte un nombre con otra skill, ambas permanecen disponibles. Con una skill `deploy` en la raíz del repositorio y otra en `apps/web/.claude/skills/`:


186Si una skill existe solo en `~/.claude/skills/` en tu máquina, Claude Code reporta que la skill no fue encontrada cuando una [rutina](/docs/es/routines) la invoca, porque cada ejecución de rutina comienza como una sesión en la nube nueva. Para hacer que una skill personal esté disponible en estas sesiones:188Si una skill existe solo en `~/.claude/skills/` en tu máquina, Claude Code reporta que la skill no fue encontrada cuando una [rutina](/docs/es/routines) la invoca, porque cada ejecución de rutina comienza como una sesión en la nube nueva. Para hacer que una skill personal esté disponible en estas sesiones:

187 189 

188* Para sesiones de Cowork y en la nube, habilita la skill para tu cuenta de claude.ai.190* Para sesiones de Cowork y en la nube, habilita la skill para tu cuenta de claude.ai.

189* Para sesiones en la nube, puedes en su lugar confirmar la skill en el `.claude/skills/` del repositorio, o enviarla en un plugin declarado en el `.claude/settings.json` del repositorio. Los plugins declarados en el repositorio [se instalan al inicio de la sesión](/docs/es/cloud-environments#what-carries-over-from-your-setup); los plugins habilitados solo en tu configuración de usuario no se transfieren.191* Para sesiones en la nube, puedes en su lugar confirmar la skill en el `.claude/skills/` del repositorio. Los plugins declarados en el `.claude/settings.json` del repositorio [se instalan al inicio de la sesión](/docs/es/cloud-environments#what-carries-over-from-your-setup); los plugins habilitados solo en tu configuración de usuario no se transfieren.

190 192 

191Las [tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) se ejecutan localmente en tu máquina, por lo que cargan `~/.claude/skills/`.193Las [tareas programadas de escritorio](/docs/es/desktop-scheduled-tasks) se ejecutan localmente en tu máquina, por lo que cargan `~/.claude/skills/`.

192 194 


219 221 

220Las skills que una sesión anterior sincronizó permanecen en el disco. Claude Code las carga en sesiones posteriores iniciadas en la misma cuenta, incluso cuando no puede alcanzar claude.ai.222Las skills que una sesión anterior sincronizó permanecen en el disco. Claude Code las carga en sesiones posteriores iniciadas en la misma cuenta, incluso cuando no puede alcanzar claude.ai.

221 223 

224Claude Code descarga skills sincronizadas y nunca las carga. Si tú o Claude editan un archivo bajo `~/.claude/skills/synced/`, el cambio no se guarda en tu cuenta de claude.ai, y una sincronización posterior puede sobrescribirlo o eliminarlo. Para cambiar una skill sincronizada, actualízala en claude.ai; la próxima sincronización descarga la nueva versión.

225 

222Para ver qué skills sincronizaron, ejecuta `/skills`. El menú las enumera bajo `claude.ai sync`.226Para ver qué skills sincronizaron, ejecuta `/skills`. El menú las enumera bajo `claude.ai sync`.

223 227 

224Algunas de las skills de Anthropic, como `pdf` y `xlsx`, siempre se sincronizan. Para el resto, activa o desactiva una skill en tu configuración de skills en claude.ai para cambiar si se sincroniza.228Algunas de las skills de Anthropic, como `pdf` y `xlsx`, siempre se sincronizan. Para el resto, activa o desactiva una skill en tu configuración de skills en claude.ai para cambiar si se sincroniza.


335 Referencia de frontmatter339 Referencia de frontmatter

336</h3>340</h3>

337 341 

338Más allá del contenido markdown, puedes configurar el comportamiento del skill usando campos de frontmatter YAML entre marcadores `---` en la parte superior de tu archivo `SKILL.md`:342Configura un skill con YAML [frontmatter](/docs/es/glossary#frontmatter) entre marcadores `---` en la parte superior de `SKILL.md`, y escribe las instrucciones del skill como Markdown después del cierre `---`. Los nombres de campo usan palabras en minúsculas separadas por guiones, excepto `when_to_use`. Un [archivo de comando](#where-skills-live) en `.claude/commands/` acepta los mismos campos excepto `name` y `paths`. Este ejemplo establece cuatro campos:

339 343 

340```yaml theme={null}344```yaml theme={null}

341---345---


348Your skill instructions here...352Your skill instructions here...

349```353```

350 354 

351Todos los campos son opcionales. Solo se recomienda `description` para que Claude sepa cuándo usar el skill.355Todos los campos son opcionales. Solo se recomienda `description` para que Claude sepa cuándo usar el skill. Un nombre de campo debe coincidir exactamente con la tabla, guiones incluidos: Claude Code ignora un campo que no reconoce sin reportar un error.

352 356 

353Claude Code lee el frontmatter solo cuando la apertura `---` es la primera línea del archivo. De lo contrario, trata todo el archivo, incluidos los marcadores `---`, como contenido de skill.357Claude Code lee el frontmatter solo cuando la apertura `---` es la primera línea del archivo. De lo contrario, trata todo el archivo, incluidos los marcadores `---`, como contenido de skill. Si el YAML entre los marcadores no se analiza, el skill aún se carga sin campos establecidos; consulta [Skill no se activa](#skill-not-triggering) para encontrar y corregir el error.

354 358 

355Los campos booleanos aceptan `yes`, `no`, `on`, `off`, `1` y `0` en cualquier caso de letra, además de `true` y `false`. Antes de v2.1.218, Claude Code reconocía solo `true` y `false`.359Los campos booleanos aceptan `yes`, `no`, `on`, `off`, `1` y `0` en cualquier caso de letra, además de `true` y `false`. Antes de v2.1.218, Claude Code reconocía solo `true` y `false`.

356 360 


363| `arguments` | No | Argumentos posicionales nombrados para [`$name` substitution](#available-string-substitutions) en el contenido del skill. Acepta una cadena separada por espacios o una lista YAML. Los nombres se asignan a posiciones de argumentos en orden. |367| `arguments` | No | Argumentos posicionales nombrados para [`$name` substitution](#available-string-substitutions) en el contenido del skill. Acepta una cadena separada por espacios o una lista YAML. Los nombres se asignan a posiciones de argumentos en orden. |

364| `disable-model-invocation` | No | Establece en `true` para evitar que Claude cargue automáticamente este skill. Úsalo para flujos de trabajo que deseas activar manualmente con `/name`. También evita que el skill sea [precargado en subagentes](/docs/es/sub-agents#preload-skills-into-subagents). A partir de v2.1.196, también evita que el skill se ejecute cuando una [tarea programada](/docs/es/scheduled-tasks) se activa con el skill como su prompt. Por defecto: `false`. |368| `disable-model-invocation` | No | Establece en `true` para evitar que Claude cargue automáticamente este skill. Úsalo para flujos de trabajo que deseas activar manualmente con `/name`. También evita que el skill sea [precargado en subagentes](/docs/es/sub-agents#preload-skills-into-subagents). A partir de v2.1.196, también evita que el skill se ejecute cuando una [tarea programada](/docs/es/scheduled-tasks) se activa con el skill como su prompt. Por defecto: `false`. |

365| `user-invocable` | No | Establece en `false` cuando solo Claude debe invocar el skill: Claude Code lo oculta del menú `/` y no lo ejecuta cuando escribes `/name`. Úsalo para conocimiento de fondo que los usuarios no deben invocar directamente. Por defecto: `true`. |369| `user-invocable` | No | Establece en `false` cuando solo Claude debe invocar el skill: Claude Code lo oculta del menú `/` y no lo ejecuta cuando escribes `/name`. Úsalo para conocimiento de fondo que los usuarios no deben invocar directamente. Por defecto: `true`. |

366| `allowed-tools` | No | Herramientas que Claude puede usar sin pedir permiso durante el turno que invoca este skill. El permiso se borra cuando envías tu siguiente mensaje. Acepta una cadena separada por espacios o comas, o una lista YAML. Consulta [Pre-aprobar herramientas para un skill](#pre-approve-tools-for-a-skill). |370| `allowed-tools` | No | Herramientas que Claude puede usar sin pedir permiso durante el turno que invoca este skill. La concesión se borra cuando envías tu siguiente mensaje. Acepta una cadena separada por espacios o comas, o una lista YAML. Consulta [Pre-aprobar herramientas para un skill](#pre-approve-tools-for-a-skill). |

367| `disallowed-tools` | No | Herramientas eliminadas del grupo disponible de Claude mientras este skill está activo. Úsalo para skills autónomos que nunca deben llamar a ciertas herramientas, como `AskUserQuestion` para un bucle de fondo. Acepta una cadena separada por espacios o comas, o una lista YAML. La restricción se borra cuando envías tu siguiente mensaje. Como las reglas de denegación, el campo no puede eliminar [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) mientras cualquier otra herramienta permanezca. |371| `disallowed-tools` | No | Herramientas eliminadas del grupo disponible de Claude mientras este skill está activo. Úsalo para skills autónomos que nunca deben llamar a ciertas herramientas, como `AskUserQuestion` para un bucle de fondo. Acepta una cadena separada por espacios o comas, o una lista YAML. La restricción se borra cuando envías tu siguiente mensaje. Como las reglas de denegación, el campo no puede eliminar [`EndConversation`](/docs/es/tools-reference#endconversation-tool-behavior) mientras cualquier otra herramienta permanezca. |

368| `model` | No | Modelo a usar cuando este skill está activo. La anulación se aplica por el resto del turno actual y no se guarda en la configuración; el modelo de sesión se reanuda en tu siguiente prompt. Acepta los mismos valores que [`/model`](/docs/es/model-config), o `inherit` para mantener el modelo activo. Un valor excluido por la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de tu organización no se usa y la sesión mantiene su modelo actual. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), y en [modo plan mientras el clasificador revisa comandos](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), un modelo que el modo automático no admite tampoco se usa y la sesión mantiene su modelo actual. Con `context: fork`, el valor establece el [modelo del subagente bifurcado](#run-skills-in-a-subagent) en su lugar, y un valor excluido sigue las [mismas reglas que una anulación de modelo de subagente](/docs/es/model-config#restrict-model-selection). |372| `model` | No | Modelo a usar cuando este skill está activo. La anulación se aplica por el resto del turno actual y no se guarda en la configuración; el modelo de sesión se reanuda en tu siguiente prompt. Acepta los mismos valores que [`/model`](/docs/es/model-config), o `inherit` para mantener el modelo activo. Un valor excluido por la lista de permitidos [`availableModels`](/docs/es/model-config#restrict-model-selection) de tu organización no se usa y la sesión mantiene su modelo actual. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), y en [modo plan mientras el clasificador revisa comandos](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), un modelo que el modo automático no admite tampoco se usa y la sesión mantiene su modelo actual. Con `context: fork`, el valor establece el [modelo del subagente bifurcado](#run-skills-in-a-subagent) en su lugar, y un valor excluido sigue las [mismas reglas que una anulación de modelo de subagente](/docs/es/model-config#restrict-model-selection). |

369| `effort` | No | [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) cuando este skill está activo. Anula el nivel de esfuerzo de la sesión. Por defecto: hereda de la sesión. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo. |373| `effort` | No | [Nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) cuando este skill está activo. Anula el nivel de esfuerzo de la sesión. Por defecto: hereda de la sesión. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo. |


790Cuando se ejecuta esta skill:794Cuando se ejecuta esta skill:

791 795 

7921. Se crea un nuevo contexto aislado7961. Se crea un nuevo contexto aislado

7932. El subagente recibe el contenido de la skill como su prompt ("Research \$ARGUMENTS thoroughly...")7972. El subagente recibe el contenido de la skill como su prompt (las instrucciones "Research \$ARGUMENTS thoroughly")

7943. El campo `agent` determina el entorno de ejecución (modelo, herramientas y permisos)7983. El campo `agent` determina el entorno de ejecución (modelo, herramientas y permisos)

7954. El subagente resume sus resultados y los devuelve a su conversación principal cuando termina7994. El subagente resume sus resultados y los devuelve a su conversación principal cuando termina

796 800 

statusline.md +2 −2

Details

192| `workspace.git_worktree` | Nombre de git worktree cuando el directorio actual está dentro de un worktree vinculado creado con `git worktree add`. Ausente en el árbol de trabajo principal. Poblado para cualquier git worktree, a diferencia de `worktree.*`, que está presente solo mientras la sesión está en una [sesión de worktree](/docs/es/worktrees) |192| `workspace.git_worktree` | Nombre de git worktree cuando el directorio actual está dentro de un worktree vinculado creado con `git worktree add`. Ausente en el árbol de trabajo principal. Poblado para cualquier git worktree, a diferencia de `worktree.*`, que está presente solo mientras la sesión está en una [sesión de worktree](/docs/es/worktrees) |

193| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identidad del repositorio analizada desde el remoto `origin`, por ejemplo, `"github.com"`, `"anthropics"`, `"claude-code"`. Ausente fuera de un repositorio git o cuando no hay un remoto `origin` configurado. Para un proyecto de gitlab.com anidado en subgrupos, `owner` es la ruta de espacio de nombres completa con barras, como `"group/subgroup"`. Antes de v2.1.260, `workspace.repo` estaba ausente para estos proyectos |193| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identidad del repositorio analizada desde el remoto `origin`, por ejemplo, `"github.com"`, `"anthropics"`, `"claude-code"`. Ausente fuera de un repositorio git o cuando no hay un remoto `origin` configurado. Para un proyecto de gitlab.com anidado en subgrupos, `owner` es la ruta de espacio de nombres completa con barras, como `"group/subgroup"`. Antes de v2.1.260, `workspace.repo` estaba ausente para estos proyectos |

194| `cost.total_cost_usd` | Costo total estimado de la sesión en USD, calculado del lado del cliente al precio de lista a menos que una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing) esté en vigor. Puede diferir de tu factura real. Se reinicia a \$0 cuando `/clear` inicia una nueva sesión. Antes de v2.1.211, el total se mantenía después de `/clear` |194| `cost.total_cost_usd` | Costo total estimado de la sesión en USD, calculado del lado del cliente al precio de lista a menos que una tabla [`modelPricing`](/docs/es/settings-reference#modelpricing) esté en vigor. Puede diferir de tu factura real. Se reinicia a \$0 cuando `/clear` inicia una nueva sesión. Antes de v2.1.211, el total se mantenía después de `/clear` |

195| `cost.total_duration_ms` | Tiempo total transcurrido desde que comenzó la sesión, en milisegundos |195| `cost.total_duration_ms` | Tiempo total transcurrido desde que comenzó la sesión, en milisegundos. Se acumula entre reanudaciones y no incluye el tiempo mientras la sesión no está en ejecución |

196| `cost.total_api_duration_ms` | Tiempo total dedicado a esperar respuestas de API en milisegundos |196| `cost.total_api_duration_ms` | Tiempo total dedicado a esperar respuestas de API en milisegundos |

197| `cost.total_lines_added`, `cost.total_lines_removed` | Líneas de código cambiadas |197| `cost.total_lines_added`, `cost.total_lines_removed` | Líneas de código cambiadas |

198| `context_window.total_input_tokens`, `context_window.total_output_tokens` | Conteos de tokens actualmente en la ventana de contexto, de la respuesta de API más reciente. La entrada incluye lecturas y escrituras de caché |198| `context_window.total_input_tokens`, `context_window.total_output_tokens` | Conteos de tokens actualmente en la ventana de contexto, de la respuesta de API más reciente. La entrada incluye lecturas y escrituras de caché |


236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

237 "transcript_path": "/path/to/transcript.jsonl",237 "transcript_path": "/path/to/transcript.jsonl",

238 "model": {238 "model": {

239 "id": "claude-opus-5",239 "id": "claude-opus-5-5",

240 "display_name": "Opus"240 "display_name": "Opus"

241 },241 },

242 "workspace": {242 "workspace": {

sub-agents.md +49 −35

Details

32 32 

33Claude Code incluye subagentes integrados que Claude utiliza automáticamente cuando es apropiado. Cada uno hereda los permisos de la conversación principal; la mayoría se ejecuta con un conjunto de herramientas restringido.33Claude Code incluye subagentes integrados que Claude utiliza automáticamente cuando es apropiado. Cada uno hereda los permisos de la conversación principal; la mayoría se ejecuta con un conjunto de herramientas restringido.

34 34 

35Explore y Plan omiten sus archivos CLAUDE.md y el estado de git de la sesión principal para mantener la investigación rápida y económica. Todos los demás subagentes integrados y [subagentes personalizados](#configure-subagents) cargan ambos, a menos que su definición establezca el campo [`omitClaudeMd`](#supported-frontmatter-fields) para omitir los archivos CLAUDE.md del usuario, proyecto y local. Para el desglose completo de lo que llega a un subagente, consulte [qué se carga al iniciar](#what-loads-at-startup).35Explore y Plan omiten sus archivos CLAUDE.md y la instantánea del estado de git para mantener la investigación rápida y económica. Todos los demás subagentes integrados y [subagentes personalizados](#configure-subagents) cargan ambos, a menos que su definición establezca el campo [`omitClaudeMd`](#supported-frontmatter-fields) para omitir los archivos CLAUDE.md del usuario, proyecto y local. Para obtener el desglose completo de lo que llega a un subagente, consulte [qué se carga al iniciar](#what-loads-at-startup).

36 36 

37<Tabs>37<Tabs>

38 <Tab title="Explore">38 <Tab title="Explore">

39 Un agente rápido y de solo lectura optimizado para buscar y analizar bases de código.39 Un agente rápido y de solo lectura optimizado para buscar y analizar bases de código.

40 40 

41 * **Modelo**: hereda de la conversación principal, limitado a Opus en la API de Claude, por lo que Explore nunca se ejecuta en un modelo más costoso que el que ya eligió para la sesión, a menos que establezca `CLAUDE_CODE_SUBAGENT_MODEL` y [lo fuerce en cada subagente](#run-every-subagent-on-one-model)41 * **Modelo**: hereda de la conversación principal, limitado a Opus en la API de Claude, por lo que Explore nunca se ejecuta en un modelo más costoso que el que ya eligió para la sesión, a menos que establezca `CLAUDE_CODE_SUBAGENT_MODEL` y [lo fuerce en todos los subagentes](#run-every-subagent-on-one-model)

42 * **Herramientas**: herramientas de solo lectura; Write y Edit están denegados42 * **Herramientas**: herramientas de solo lectura; Write y Edit están denegadas

43 * **Propósito**: descubrimiento de archivos, búsqueda de código, exploración de base de código43 * **Propósito**: descubrimiento de archivos, búsqueda de código, exploración de base de código

44 44 

45 A partir de v2.1.198, Explore hereda el modelo de la conversación principal en lugar de ejecutarse siempre en Haiku. En la API de Claude, el modelo heredado está limitado a Opus: una conversación principal en un nivel superior ejecuta Explore en Opus, y una conversación principal en Sonnet o Haiku ejecuta Explore en ese mismo modelo. En cualquier otro proveedor, como [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o Claude Platform en AWS](/docs/es/third-party-integrations), Explore hereda el modelo de la conversación principal directamente.45 A partir de v2.1.198, Explore hereda el modelo de la conversación principal en lugar de ejecutarse siempre en Haiku. En la API de Claude, el modelo heredado se limita a Opus: una conversación principal en un nivel superior ejecuta Explore en Opus, y una conversación principal en Sonnet o Haiku ejecuta Explore en ese mismo modelo. En cualquier otro proveedor, como [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, o Claude Platform en AWS](/docs/es/third-party-integrations), Explore hereda el modelo de la conversación principal directamente.

46 46 

47 Un [subagente de usuario o proyecto](#choose-the-subagent-scope) llamado `Explore` anula el integrado y mantiene su propio campo `model`, así que defina uno con `model: haiku` para mantener la exploración en un modelo de menor costo.47 Un subagente de [usuario o proyecto](#choose-the-subagent-scope) llamado `Explore` anula el integrado y mantiene su propio campo `model`, así que defina uno con `model: haiku` para mantener la exploración en un modelo de menor costo.

48 48 

49 Claude delega en Explore cuando necesita buscar o entender una base de código sin hacer cambios. Esto mantiene los resultados de exploración fuera del contexto de su conversación principal.49 Claude delega en Explore cuando necesita buscar o entender una base de código sin hacer cambios. Esto mantiene los resultados de exploración fuera del contexto de su conversación principal.

50 50 


52 </Tab>52 </Tab>

53 53 

54 <Tab title="Plan">54 <Tab title="Plan">

55 Un agente de investigación utilizado durante [plan mode](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) para recopilar contexto antes de presentar un plan.55 Un agente de investigación utilizado durante el [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) para recopilar contexto antes de presentar un plan.

56 56 

57 * **Modelo**: hereda de la conversación principal, a menos que establezca `CLAUDE_CODE_SUBAGENT_MODEL` y [lo fuerce en cada subagente](#run-every-subagent-on-one-model)57 * **Modelo**: hereda de la conversación principal, a menos que establezca `CLAUDE_CODE_SUBAGENT_MODEL` y [lo fuerce en todos los subagentes](#run-every-subagent-on-one-model)

58 * **Herramientas**: herramientas de solo lectura; Write y Edit están denegados58 * **Herramientas**: herramientas de solo lectura; Write y Edit están denegadas

59 * **Propósito**: investigación de base de código para planificación59 * **Propósito**: investigación de base de código para planificación

60 60 

61 Cuando está en plan mode y Claude necesita entender su base de código, delega la investigación al subagente Plan para que la salida de exploración permanezca en una ventana de contexto separada mientras la conversación principal sigue siendo de solo lectura.61 Cuando está en modo plan y Claude necesita entender su base de código, delega la investigación al subagente Plan para que la salida de exploración permanezca en una ventana de contexto separada mientras la conversación principal permanece en solo lectura.

62 </Tab>62 </Tab>

63 63 

64 <Tab title="General-purpose">64 <Tab title="General-purpose">

65 Un agente capaz para tareas complejas de múltiples pasos que requieren tanto exploración como acción.65 Un agente capaz para tareas complejas y de múltiples pasos que requieren tanto exploración como acción.

66 66 

67 * **Modelo**: el modelo [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model) si lo establece y nada asigna un modelo de otra manera, de lo contrario el modelo de la conversación principal; [Elegir un modelo](#choose-a-model) indica el orden completo, y [Ejecutar cada subagente en un modelo](#run-every-subagent-on-one-model) muestra cómo hacer que la variable anule esas fuentes67 * **Modelo**: el modelo [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model) si establece uno y nada asigna un modelo de otra manera, de lo contrario el modelo de la conversación principal; [Choose a model](#choose-a-model) establece el orden completo, y [Run every subagent on one model](#run-every-subagent-on-one-model) muestra cómo hacer que la variable anule esas fuentes

68 * **Herramientas**: todas las herramientas [disponibles para subagentes](#available-tools)68 * **Herramientas**: todas las herramientas [disponibles para subagentes](#available-tools)

69 * **Propósito**: investigación compleja, operaciones de múltiples pasos, modificaciones de código69 * **Propósito**: investigación compleja, operaciones de múltiples pasos, modificaciones de código

70 70 

71 Claude delega en general-purpose cuando la tarea requiere tanto exploración como modificación, razonamiento complejo para interpretar resultados, o múltiples pasos dependientes.71 Claude delega a general-purpose cuando la tarea requiere tanto exploración como modificación, razonamiento complejo para interpretar resultados, o múltiples pasos dependientes.

72 </Tab>72 </Tab>

73 73 

74 <Tab title="Other">74 <Tab title="Other">

75 Claude Code incluye agentes auxiliares adicionales para tareas específicas. Estos se invocan típicamente automáticamente, por lo que no necesita usarlos directamente.75 Claude Code incluye agentes auxiliares adicionales para tareas específicas. Estos se invocan típicamente automáticamente, por lo que no necesita usarlos directamente.

76 76 

77 | Agente | Modelo | Cuándo Claude lo usa |77 | Agente | Modelo | Cuándo Claude lo utiliza |

78 | :---------------- | :---------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |78 | :---------------- | :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

79 | claude | Ninguno propio; sigue el [orden de modelo](#choose-a-model) cuando Claude lo genera como un subagente | Cuando una tarea no se ajusta a un agente más especializado. Un comodín con todas las herramientas [disponibles para subagentes](#available-tools). También el agente predeterminado para una [sesión en segundo plano](/docs/es/agent-view) despachada; [qué modo de permisos inicia](/docs/es/agent-view#permission-mode-model-and-effort) depende de cómo se inició la sesión |79 | claude | Ninguno propio; sigue el [orden de modelo](#choose-a-model) cuando Claude lo genera como subagente | Cuando una tarea no se ajusta a un agente más especializado. Un comodín con todas las herramientas [disponibles para subagentes](#available-tools). También el agente predeterminado para una [sesión de fondo](/docs/es/agent-view) despachada; [qué modo de permiso inicia](/docs/es/agent-view#permission-mode-model-and-effort) depende de cómo se inició la sesión |

80 | statusline-setup | Sonnet | Cuando ejecuta `/statusline` para configurar su línea de estado |80 | statusline-setup | Sonnet | Cuando ejecuta `/statusline` para configurar su línea de estado |

81 | claude-code-guide | Haiku | Cuando hace preguntas sobre características de Claude Code |81 | claude-code-guide | Haiku | Cuando hace preguntas sobre características de Claude Code |

82 </Tab>82 </Tab>

83</Tabs>83</Tabs>

84 84 

85Los subagentes integrados se registran por defecto en sesiones interactivas. Para restringirlos:85Los subagentes integrados se registran de forma predeterminada en sesiones interactivas. Para restringirlos:

86 86 

87* Para bloquear un tipo integrado específico, agréguelo a `permissions.deny` como se muestra en [Deshabilitar subagentes específicos](#disable-specific-subagents).87* Para bloquear un tipo integrado específico, agréguelo a `permissions.deny` como se muestra en [Disable specific subagents](#disable-specific-subagents).

88* Para evitar que Claude delegue a cualquier subagente, deniegue la herramienta `Agent` en sí con [`permissions.deny`](/docs/es/permissions#tool-specific-permission-rules).88* Para evitar que Claude delegue en ningún subagente, niegue la herramienta `Agent` misma con [`permissions.deny`](/docs/es/permissions#tool-specific-permission-rules).

89* Para eliminar solo los subagentes integrados `Explore` y `Plan`, establezca [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/docs/es/env-vars). Claude lee y explora archivos directamente en lugar de delegarlos. Requiere Claude Code v2.1.198 o posterior.89* Para eliminar solo los subagentes integrados `Explore` y `Plan`, establezca [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/docs/es/env-vars). Claude lee y explora archivos directamente en lugar de delegar en ellos. Requiere Claude Code v2.1.198 o posterior.

90* En [modo no interactivo](/docs/es/headless) y el [Agent SDK](/docs/es/agent-sdk/overview), establezca [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/es/env-vars) para eliminar todos los tipos integrados y proporcionar solo los suyos.90* En [modo no interactivo](/docs/es/headless) y el [Agent SDK](/docs/es/agent-sdk/overview), establezca [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/es/env-vars) para eliminar todos los tipos integrados y proporcionar solo los suyos.

91 91 

92Una llamada a la herramienta Agent que omite `subagent_type` falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) cuando la sesión no tiene un subagente `general-purpose` al que recurrir.92Una llamada a la herramienta Agent que omite `subagent_type` falla con [`subagent_type is required`](/docs/es/errors#subagent-type-is-required) cuando la sesión no tiene ningún subagente `general-purpose` en el que recurrir.

93 93 

94Más allá de estos subagentes integrados, puede crear los suyos propios con mensajes personalizados, restricciones de herramientas, modos de permisos, hooks y skills. Las siguientes secciones muestran cómo comenzar y personalizar subagentes.94Más allá de estos subagentes integrados, puede crear los suyos propios con indicaciones personalizadas, restricciones de herramientas, modos de permiso, hooks y skills. Las siguientes secciones muestran cómo comenzar y personalizar subagentes.

95 95 

96<h2 id="quickstart-create-your-first-subagent">96<h2 id="quickstart-create-your-first-subagent">

97 Inicio rápido: crear su primer subagente97 Inicio rápido: crear su primer subagente


230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233La bandera `--agents` acepta JSON con un campo `prompt` más estos campos de [frontmatter](#supported-frontmatter-fields): `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, e `isolation`. Use `prompt` para el mensaje del sistema, equivalente al cuerpo markdown en subagentes basados en archivos.233La bandera `--agents` acepta JSON con un campo `prompt` más estos campos de [frontmatter](#supported-frontmatter-fields): `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, e `isolation`. Use `prompt` para el mensaje del sistema, equivalente al cuerpo markdown en subagentes basados en archivos. `color` y `experimental` no se aceptan aquí y se ignoran en lugar de rechazarse.

234 234 

235Cada clave de nivel superior en el JSON es el nombre del agente. No comience un nombre con `-`.235Cada clave de nivel superior en el JSON es el nombre del agente. No comience un nombre con `-`.

236 236 


295 295 

296Cuando la conversación principal en sí se ejecuta aislada en un worktree, Claude Code aplica las mismas verificaciones a la sesión y a cada subagente que genera, incluyendo subagentes sin `isolation: worktree`; consulte [Cómo Claude Code aplica el aislamiento](/docs/es/worktrees#how-claude-code-enforces-isolation).296Cuando la conversación principal en sí se ejecuta aislada en un worktree, Claude Code aplica las mismas verificaciones a la sesión y a cada subagente que genera, incluyendo subagentes sin `isolation: worktree`; consulte [Cómo Claude Code aplica el aislamiento](/docs/es/worktrees#how-claude-code-enforces-isolation).

297 297 

298<h4 id="supported-frontmatter-fields">298<h3 id="supported-frontmatter-fields">

299 Campos de frontmatter soportados299 Referencia de frontmatter

300</h4>300</h3>

301 

302Configure un subagente con [frontmatter](/docs/es/glossary#frontmatter) YAML entre marcadores `---` en la parte superior de su archivo, y escriba su mensaje del sistema como Markdown después del `---` de cierre. Solo `name` y `description` son requeridos.

301 303 

302Los siguientes campos se pueden usar en el frontmatter YAML. Solo `name` y `description` son requeridos.304Los nombres de campo de varias palabras usan camelCase, como `maxTurns` y `disallowedTools`, y deben coincidir exactamente con la tabla: Claude Code ignora un campo que no reconoce sin reportar un error. Para averiguar por qué un archivo de subagente no se cargó, consulte [Archivos de subagente que Claude Code omite](#subagent-files-claude-code-skips).

303 305 

304| Campo | Requerido | Descripción |306| Campo | Requerido | Descripción |

305| :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |307| :---------------- | :-------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

306| `name` | Sí | Identificador único usando letras minúsculas y guiones. [Hooks](/docs/es/hooks#subagentstart) reciben este valor como `agent_type`. El nombre del archivo no tiene que coincidir. Los nombres no pueden contener `:`, que está reservado para [identificadores con alcance de plugin](/docs/es/plugins) como `my-plugin:reviewer`. Claude Code no carga un archivo cuyo nombre contiene uno y registra un error en el registro de depuración. Antes de v2.1.218, tales nombres fueron aceptados |308| `name` | Sí | Identificador único, como `code-reviewer` o `reviewer-v2`. [Hooks](/docs/es/hooks#subagentstart) reciben este valor como `agent_type`. El nombre del archivo no tiene que coincidir. Los nombres no pueden contener `:`, que está reservado para [identificadores con alcance de plugin](/docs/es/plugins) como `my-plugin:reviewer`. Claude Code no carga un archivo cuyo nombre contiene uno y registra un error en el registro de depuración. Antes de v2.1.218, tales nombres fueron aceptados |

307| `description` | Sí | Cuándo Claude debe delegar en este subagente |309| `description` | Sí | Cuándo Claude debe delegar en este subagente |

308| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar. Hereda todas las herramientas disponibles para subagentes si se omite. Si ninguna entrada en la lista se resuelve a una herramienta, el subagente generalmente [falla al lanzarse](/docs/es/errors#agent-would-be-spawned-with-zero-tools) con un error nombrando las entradas. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |310| `tools` | No | [Herramientas](#available-tools) que el subagente puede usar, como una cadena separada por comas como `Read, Grep, Bash` o una lista YAML. Hereda todas las herramientas disponibles para subagentes si se omite. Si ninguna entrada en la lista se resuelve a una herramienta, el subagente generalmente [falla al lanzarse](/docs/es/errors#agent-would-be-spawned-with-zero-tools) con un error nombrando las entradas. Para precargar Skills en el contexto, use el campo `skills` en lugar de listar `Skill` aquí |

309| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada. Una entrada con un especificador, como `Bash(git push *)`, aún [elimina la herramienta completa](#available-tools) |311| `disallowedTools` | No | Herramientas a denegar, eliminadas de la lista heredada o especificada. Mismo formato que `tools`. Una entrada con un especificador, como `Bash(git push *)`, aún [elimina la herramienta completa](#available-tools) |

310| `model` | No | [Modelo](#choose-a-model) a usar: `sonnet`, `opus`, `haiku`, `fable`, un ID de modelo completo como `claude-opus-5`, o `inherit`. Cuando lo omite, Claude Code elige el modelo en el [orden de modelo de subagente](#choose-a-model) |312| `model` | No | [Modelo](#choose-a-model) a usar: `sonnet`, `opus`, `haiku`, `fable`, un ID de modelo completo como `claude-opus-5-5`, o `inherit`. Cuando lo omite, Claude Code elige el modelo en el [orden de modelo de subagente](#choose-a-model) |

311| `permissionMode` | No | [Modo de permiso](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, o `manual` como alias para `default`. El alias `manual` requiere Claude Code v2.1.200 o posterior. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |313| `permissionMode` | No | [Modo de permiso](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, o `manual` como alias para `default`. El alias `manual` requiere Claude Code v2.1.200 o posterior. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

312| `maxTurns` | No | Número máximo de turnos de agente antes de que el subagente se detenga. Cuando el subagente alcanza el límite, Claude Code devuelve su salida marcada como parcial, y Claude puede [reanudarlo](#resume-subagents) para continuar. La marca parcial requiere Claude Code v2.1.246 o posterior |314| `maxTurns` | No | Número máximo de turnos de agente antes de que el subagente se detenga. Cuando el subagente alcanza el límite, Claude Code devuelve su salida marcada como parcial, y Claude puede [reanudarlo](#resume-subagents) para continuar. La marca parcial requiere Claude Code v2.1.246 o posterior |

313| `skills` | No | [Skills](/docs/es/skills) a precargar en el contexto del subagente al inicio. El contenido completo de la skill se inyecta, no solo la descripción. Los subagentes aún pueden invocar skills de proyecto, usuario y plugin no listadas a través de la herramienta Skill |315| `skills` | No | [Skills](/docs/es/skills) a precargar en el contexto del subagente al inicio. El contenido completo de la skill se inyecta, no solo la descripción. Los subagentes aún pueden invocar skills de proyecto, usuario y plugin no listadas a través de la herramienta Skill |


319| `effort` | No | Nivel de esfuerzo cuando este subagente está activo. Anula el nivel de esfuerzo de la sesión. Por defecto: hereda de la sesión. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo |321| `effort` | No | Nivel de esfuerzo cuando este subagente está activo. Anula el nivel de esfuerzo de la sesión. Por defecto: hereda de la sesión. Opciones: `low`, `medium`, `high`, `xhigh`, `max`; los niveles disponibles dependen del modelo |

320| `isolation` | No | Establecer en `worktree` para ejecutar el subagente en un [git worktree](/docs/es/worktrees) temporal, dándole una copia aislada del repositorio ramificada por defecto desde su [rama predeterminada](/docs/es/worktrees#choose-the-base-branch) en lugar del `HEAD` de la sesión principal. El worktree se limpia automáticamente si el subagente no realiza cambios |322| `isolation` | No | Establecer en `worktree` para ejecutar el subagente en un [git worktree](/docs/es/worktrees) temporal, dándole una copia aislada del repositorio ramificada por defecto desde su [rama predeterminada](/docs/es/worktrees#choose-the-base-branch) en lugar del `HEAD` de la sesión principal. El worktree se limpia automáticamente si el subagente no realiza cambios |

321| `color` | No | Color de visualización para el subagente en la lista de tareas y transcripción. Acepta `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan` |323| `color` | No | Color de visualización para el subagente en la lista de tareas y transcripción. Acepta `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan` |

322| `initialPrompt` | No | Se envía automáticamente como el primer turno de usuario cuando este agente se ejecuta como el agente de sesión principal (a través de `--agent` o la configuración `agent`). Se procesan [comandos](/docs/es/commands) y [skills](/docs/es/skills). Se antepone a cualquier mensaje proporcionado por el usuario |324| `initialPrompt` | No | Se envía automáticamente como el primer turno de usuario cuando este agente se ejecuta como el agente de sesión principal (a través de `--agent` o la configuración `agent`). Se procesan [comandos](/docs/es/commands) y [skills](/docs/es/skills). Se antepone a cualquier mensaje proporcionado por el usuario. Se ignora para [subagentes de plugin](#choose-the-subagent-scope) |

323| `experimental` | No | Mapa de opciones experimentales. Establezca su clave `cacheTtl` en `5m` o `1h` para elegir la [duración de vida del caché de prompt](/docs/es/prompt-caching#choose-the-ttl-yourself) para las solicitudes de este subagente, en el lugar del frontmatter en la [precedencia de duración de vida del caché](/docs/es/prompt-caching#choose-the-ttl-yourself). Claude Code ignora cualquier otro valor, ignora `1h` mientras su suscripción de Claude está usando créditos de uso, y lee el campo solo desde archivos de subagente. Requiere Claude Code v2.1.248 o posterior |325| `experimental` | No | Mapa de opciones experimentales. Establezca su clave `cacheTtl` en `5m` o `1h` para elegir la [duración de vida del caché de prompt](/docs/es/prompt-caching#choose-the-ttl-yourself) para las solicitudes de este subagente, en el lugar del frontmatter en la [precedencia de duración de vida del caché](/docs/es/prompt-caching#choose-the-ttl-yourself). Claude Code ignora cualquier otro valor, ignora `1h` mientras su suscripción de Claude está usando créditos de uso, y lee el campo solo desde archivos de subagente. Requiere Claude Code v2.1.248 o posterior |

324 326 

325Escriba `cacheTtl` dentro del mapa `experimental`, no en el nivel superior del frontmatter.327Escriba `cacheTtl` dentro del mapa `experimental`, no en el nivel superior del frontmatter.


362El campo `model` controla qué modelo usa el subagente:364El campo `model` controla qué modelo usa el subagente:

363 365 

364* **Alias de modelo**: use uno de los alias disponibles: `sonnet`, `opus`, `haiku`, o `fable`366* **Alias de modelo**: use uno de los alias disponibles: `sonnet`, `opus`, `haiku`, o `fable`

365* **ID de modelo completo**: use un ID de modelo completo como `claude-opus-5` o `claude-sonnet-5`. Acepta los mismos valores que la bandera `--model`367* **ID de modelo completo**: use un ID de modelo completo como `claude-opus-5-5` o `claude-sonnet-5`. Acepta los mismos valores que la bandera `--model`

366* **inherit**: use el mismo modelo que la conversación principal368* **inherit**: use el mismo modelo que la conversación principal

367 369 

368Cuando Claude invoca un subagente, también puede pasar un parámetro `model` para esa invocación específica. Claude Code resuelve el modelo del subagente en este orden:370Cuando Claude invoca un subagente, también puede pasar un parámetro `model` para esa invocación específica. Claude Code resuelve el modelo del subagente en este orden:


3723. La variable de entorno [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/es/model-config#environment-variables), cuando la establece en un alias de modelo o ID de modelo3743. La variable de entorno [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/es/model-config#environment-variables), cuando la establece en un alias de modelo o ID de modelo

3734. El modelo de la conversación principal3754. El modelo de la conversación principal

374 376 

377En dos casos, un alias de familia como `opus` en el parámetro por invocación o el frontmatter se resuelve al modelo de la conversación principal en lugar de la [versión a la que apunta el alias](/docs/es/model-config#model-aliases):

378 

379* **El modelo de la conversación principal pertenece a esa familia**: el subagente se ejecuta en el modelo exacto de la conversación principal, incluyendo cualquier sufijo `[1m]`, por lo que obtiene la misma ventana de [contexto extendido](/docs/es/model-config#extended-context) que la conversación principal.

380* **Claude Code no puede determinar la familia del modelo de la conversación principal, en [un proveedor distinto de la API de Anthropic](/docs/es/third-party-integrations)**: esto puede suceder con un [ARN de perfil de inferencia de aplicación](/docs/es/amazon-bedrock#iam-configuration) en Amazon Bedrock que Claude Code no ha resuelto a un modelo de respaldo. Este caso cubre solo el alias `opus`, y no se aplica cuando establece [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/es/model-config#environment-variables), ya que `opus` entonces se resuelve al modelo que establece.

381 

382Un alias en `CLAUDE_CODE_SUBAGENT_MODEL` siempre se resuelve a la versión a la que apunta el alias, incluso cuando nombra la familia de la conversación principal.

383 

375Establecer `CLAUDE_CODE_SUBAGENT_MODEL` por sí solo no cambia el modelo en el que se ejecutan los subagentes integrados Explore y Plan. Para cambiarlo, consulte [Ejecutar cada subagente en un modelo](#run-every-subagent-on-one-model).384Establecer `CLAUDE_CODE_SUBAGENT_MODEL` por sí solo no cambia el modelo en el que se ejecutan los subagentes integrados Explore y Plan. Para cambiarlo, consulte [Ejecutar cada subagente en un modelo](#run-every-subagent-on-one-model).

376 385 

377Antes de v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` venía primero en este orden y anulaba tanto el parámetro por invocación como el frontmatter, incluyendo `model: inherit`.386Antes de v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` venía primero en este orden y anulaba tanto el parámetro por invocación como el frontmatter, incluyendo `model: inherit`.


438* `EnterPlanMode`447* `EnterPlanMode`

439* `ExitPlanMode`, a menos que el [`permissionMode`](#permission-modes) del subagente sea `plan`448* `ExitPlanMode`, a menos que el [`permissionMode`](#permission-modes) del subagente sea `plan`

440* `ScheduleWakeup`449* `ScheduleWakeup`

441* `TaskOutput`

442* `WaitForMcpServers`450* `WaitForMcpServers`

443* `Workflow`451* `Workflow`

444 452 

445El segundo filtro se aplica a subagentes que se ejecutan en segundo plano. Aparte de `Agent` y `ExitPlanMode`, que siguen las condiciones del primer filtro dondequiera que se ejecute el subagente, un subagente en segundo plano mantiene todas las herramientas MCP pero solo estas herramientas integradas: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, y `Artifact`, más [`SubagentHandback`](/docs/es/tools-reference) para un subagente que reporta a través de él. Claude Code elimina todas las otras herramientas integradas de un subagente en segundo plano, ya sean heredadas o listadas en el campo `tools`, por lo que la misma definición puede resolver a diferentes herramientas en primer plano y en segundo plano. La eliminación no reporta error a menos que deje la lista `tools` [resolviendo a nada](/docs/es/errors#agent-would-be-spawned-with-zero-tools).453El segundo filtro se aplica a subagentes que se ejecutan en segundo plano. Aparte de `Agent` y `ExitPlanMode`, que siguen las condiciones del primer filtro dondequiera que se ejecute el subagente, un subagente en segundo plano mantiene todas las herramientas MCP pero solo estas herramientas integradas: `Read`, `Grep`, `Glob`, `LSP`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, y `Artifact`, más [`SubagentHandback`](/docs/es/tools-reference) para un subagente que reporta a través de él. Claude Code elimina todas las otras herramientas integradas de un subagente en segundo plano, ya sean heredadas o listadas en el campo `tools`, por lo que la misma definición puede resolver a diferentes herramientas en primer plano y en segundo plano. La eliminación no reporta error a menos que deje la lista `tools` [resolviendo a nada](/docs/es/errors#agent-would-be-spawned-with-zero-tools).

454 

455Antes de v2.1.280, los subagentes en segundo plano no podían usar `LSP`.

446 456 

447[`ListAgents`](/docs/es/cross-session-messaging) sigue estos filtros como cualquier herramienta integrada: un subagente en primer plano la hereda en sesiones donde la mensajería entre sesiones está habilitada, y un subagente en segundo plano no la mantiene.457[`ListAgents`](/docs/es/cross-session-messaging) sigue estos filtros como cualquier herramienta integrada: un subagente en primer plano la hereda en sesiones donde la mensajería entre sesiones está habilitada, y un subagente en segundo plano no la mantiene.

448 458 


989 999 

990El escaneo no juzga si el contenido es malicioso, y no cambia lo que una instrucción en un informe puede hacer: una llamada de herramienta que el informe lleva a Claude a hacer aún pasa por los [controles de permiso](/docs/es/permissions) y [sandboxing](/docs/es/sandboxing) de la sesión. No es un sustituto para [restringir lo que un subagente puede alcanzar](#control-subagent-capabilities).1000El escaneo no juzga si el contenido es malicioso, y no cambia lo que una instrucción en un informe puede hacer: una llamada de herramienta que el informe lleva a Claude a hacer aún pasa por los [controles de permiso](/docs/es/permissions) y [sandboxing](/docs/es/sandboxing) de la sesión. No es un sustituto para [restringir lo que un subagente puede alcanzar](#control-subagent-capabilities).

991 1001 

1002Un informe que regresa a Claude como el resultado del subagente también llega bajo un encabezado que lo marca como salida de subagente. El encabezado establece que las instrucciones o afirmaciones de aprobación dentro del informe son las palabras del subagente y no llevan autoridad de tu parte.

1003 

1004Un [informe de subagente en fondo](#run-subagents-in-foreground-or-background) llega dentro de una notificación de finalización, que se marca como un evento automatizado en lugar de un mensaje de tu parte.

1005 

992<Note>1006<Note>

993 El escaneo de salida de subagentes requiere Claude Code v2.1.210 o posterior.1007 El escaneo de salida de subagentes requiere Claude Code v2.1.210 o posterior.

994</Note>1008</Note>


1078 1092 

1079Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). Para mantener un subagente sin generar mientras el anidamiento está activado, como un revisor que debe permanecer de solo lectura, omite `Agent` de su lista [`tools`](#available-tools) o añádelo a `disallowedTools`.1093Un subagente anidado se configura de la misma manera que uno de nivel superior y se resuelve desde los mismos [alcances](#choose-the-subagent-scope). Para mantener un subagente sin generar mientras el anidamiento está activado, como un revisor que debe permanecer de solo lectura, omite `Agent` de su lista [`tools`](#available-tools) o añádelo a `disallowedTools`.

1080 1094 

1081Claude Code muestra subagentes anidados como un árbol en el panel de subagentes debajo de la entrada de solicitud y marca cada fila que aún tiene descendientes en el panel con un conteo `(+N)` de ellos. Abre una fila para ver los hermanos y hijos directos de ese subagente con una ruta de vuelta a `main`.1095En el terminal, Claude Code muestra subagentes anidados como un árbol en el panel de subagentes debajo de la entrada de solicitud y marca cada fila que aún tiene descendientes en el panel con un conteo `(+N)` de ellos. Abre una fila para ver los hermanos y hijos directos de ese subagente con una ruta de vuelta a `main`.

1082 1096 

1083<Note>1097<Note>

1084 Las versiones anteriores usaban diferentes valores predeterminados:1098 Las versiones anteriores usaban diferentes valores predeterminados:

Details

343 Pegar contenido grande343 Pegar contenido grande

344</h2>344</h2>

345 345 

346Cuando pega más de 800 caracteres o más de tres líneas en el prompt, Claude Code contrae la entrada a un marcador de posición como `[Pasted text #1 +120 lines]` para que la caja de entrada siga siendo utilizable. En una ventana de terminal más corta que 12 filas, el límite de líneas disminuye, por lo que Claude Code contrae un pegado de tres líneas a 11 filas y cualquier pegado de varias líneas a 10 filas o menos. Claude Code sigue enviando el contenido completo cuando envía.346Cuando pega más de 800 caracteres o más de tres líneas en el prompt, Claude Code contrae la entrada a un marcador de posición como `[Pasted text #1 +120 lines]` para que la caja de entrada siga siendo utilizable, y sigue enviando el contenido completo cuando envía. Para entradas muy grandes como archivos completos o registros largos, escriba el contenido en un archivo y pida a Claude que lo lea en lugar de pegarlo. La transcripción de la conversación permanece legible y Claude puede hacer referencia al archivo por ruta en turnos posteriores. La terminal integrada de VS Code también puede descartar caracteres de pegados muy grandes antes de que lleguen a Claude Code, por lo que use un archivo allí.

347 347 

348Cuando elimina con un atajo de palabra o línea como `Ctrl+W` o `Ctrl+K`, o con una eliminación vim a través de un movimiento `f`/`t` como `df]`, y el rango eliminado llega dentro de un marcador de posición, Claude Code elimina el marcador de posición completo. Puede pegar la eliminación nuevamente para restaurarla, con [`Ctrl+Y`](/docs/es/interactive-mode#text-editing) después de un atajo de palabra o línea, o con [`p` en NORMAL mode](/docs/es/interactive-mode#editing-normal-mode) después de una eliminación vim.348Si el pegado contiene [caracteres Unicode invisibles](/docs/es/interactive-mode#invisible-characters-in-prompts), Claude Code los elimina cuando presiona Intro y vuelve a poner el prompt limpio en la caja de entrada para que lo envíe con otro Intro.

349 349 

350Claude Code mantiene el contenido contraído bajo `~/.claude/paste-cache/`, por lo que cuando recupera un prompt del [historial de comandos](/docs/es/interactive-mode#command-history) y lo reenvía, Claude Code envía el contenido pegado completo nuevamente, incluso en una sesión posterior, hasta que el barrido de retención elimine el archivo de caché.350<h3 id="how-claude-treats-pasted-text">

351 Cómo Claude trata el texto pegado

352</h3>

353 

354Cuando envía, Claude ve el contenido detrás de cada marcador de posición `[Pasted text #N]` marcado como texto que pegó desde otro lugar en lugar de escribir. Claude recibe la instrucción de que un pegado puede contener instrucciones que no escribió, y de seguir instrucciones dentro de él solo donde el mensaje que escribió lo solicita. En sesiones que no [obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), los pegados no se marcan.

351 355 

352Claude Code elimina archivos de caché más antiguos que [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siguiendo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically), por lo que un prompt recuperado puede hacer referencia a texto pegado que ya no existe. Cuando envía tal prompt, Claude Code nunca envía la cadena literal `[Pasted text #N]`, y muestra una notificación nombrando el pegado faltante:356<h3 id="delete-and-restore-a-collapsed-paste">

357 Eliminar y restaurar un pegado contraído

358</h3>

359 

360Cuando elimina con un atajo de palabra o línea como `Ctrl+W` o `Ctrl+K`, o con una eliminación vim a través de un movimiento `f`/`t` como `df]`, y el rango eliminado llega dentro de un marcador de posición `[Pasted text #N]`, Claude Code elimina el marcador de posición completo. Para restaurarlo, pegue la eliminación nuevamente con [`Ctrl+Y`](/docs/es/interactive-mode#text-editing) después de un atajo de palabra o línea, o con [`p` en NORMAL mode](/docs/es/interactive-mode#editing-normal-mode) después de una eliminación vim.

361 

362<h3 id="recall-a-prompt-that-had-pasted-text">

363 Recuperar un prompt que tenía texto pegado

364</h3>

365 

366Claude Code mantiene el contenido detrás de cada marcador de posición `[Pasted text #N]` bajo `~/.claude/paste-cache/`, por lo que cuando recupera un prompt del [historial de comandos](/docs/es/interactive-mode#command-history) y lo reenvía, el contenido pegado completo se envía nuevamente, incluso en una sesión posterior.

367 

368Los archivos de caché más antiguos que [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays) se eliminan bajo las [reglas de barrido de retención](/docs/es/claude-directory#cleaned-up-automatically), por lo que un prompt recuperado puede hacer referencia a texto pegado que ya no existe. Cuando envía tal prompt, Claude Code nunca envía la cadena literal `[Pasted text #N]`, y muestra una notificación nombrando el pegado faltante:

353 369 

354* En un prompt simple con texto restante, Claude Code elimina el marcador de posición y envía el texto restante.370* En un prompt simple con texto restante, Claude Code elimina el marcador de posición y envía el texto restante.

355* En un comando de [shell mode](/docs/es/interactive-mode#shell-mode-with-prefix) o un comando `/`, donde la eliminación cambiaría lo que se ejecuta, y en cualquier prompt donde la eliminación deja vacío, Claude Code cancela el envío y mantiene el texto original en la entrada, con el marcador de posición aún en él. Elimine el marcador de posición o edite el comando, luego reenvíe.371* En un comando de [shell mode](/docs/es/interactive-mode#shell-mode-with-prefix) o un comando `/`, donde la eliminación cambiaría lo que se ejecuta, y en cualquier prompt donde la eliminación deja vacío, Claude Code cancela el envío y mantiene el texto original en la entrada, con el marcador de posición aún en él. Elimine el marcador de posición o edite el comando, luego reenvíe.

356 372 

357La terminal integrada de VS Code puede descartar caracteres de pegados muy grandes antes de que lleguen a Claude Code, por lo que prefiera flujos de trabajo basados en archivos allí. Para entradas muy grandes como archivos completos o registros largos, escriba el contenido en un archivo y pida a Claude que lo lea en lugar de pegarlo. Esto mantiene la transcripción de la conversación legible y permite que Claude haga referencia al archivo por ruta en turnos posteriores.

358 

359<h2 id="edit-prompts-with-vim-keybindings">373<h2 id="edit-prompts-with-vim-keybindings">

360 Editar prompts con atajos de teclado Vim374 Editar prompts con atajos de teclado Vim

361</h2>375</h2>

Details

86 86 

87Para la mayoría de las organizaciones, Claude for Teams o Claude for Enterprise proporciona la mejor experiencia. Los miembros del equipo obtienen acceso tanto a Claude Code como a Claude en la web con una única suscripción, facturación centralizada y sin necesidad de configuración de infraestructura.87Para la mayoría de las organizaciones, Claude for Teams o Claude for Enterprise proporciona la mejor experiencia. Los miembros del equipo obtienen acceso tanto a Claude Code como a Claude en la web con una única suscripción, facturación centralizada y sin necesidad de configuración de infraestructura.

88 88 

89**Claude for Teams** es de autoservicio e incluye características de colaboración, herramientas de administración y gestión de facturación. Mejor para equipos más pequeños que necesitan comenzar rápidamente.89**Claude for Teams** es de autoservicio e incluye características de colaboración, herramientas de administración, SSO, gestión de facturación y [configuración administrada por servidor](/docs/es/server-managed-settings) para la configuración de Claude Code en toda la organización. Mejor para equipos más pequeños que necesitan comenzar rápidamente.

90 90 

91**Claude for Enterprise** añade SSO y captura de dominio, permisos basados en roles, acceso a API de cumplimiento y configuración de políticas administradas para implementar configuraciones de Claude Code en toda la organización. Mejor para organizaciones más grandes con requisitos de seguridad y cumplimiento.91**Claude for Enterprise** añade captura de dominio, permisos basados en roles y acceso a API de cumplimiento. Mejor para organizaciones más grandes con requisitos de seguridad y cumplimiento.

92 92 

93Obtenga más información sobre [planes de equipo](https://support.claude.com/es/articles/9266767-what-is-the-team-plan) y [planes empresariales](https://support.claude.com/es/articles/9797531-what-is-the-enterprise-plan).93Obtenga más información sobre [planes de equipo](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) y [planes empresariales](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).

94 94 

95Las opciones de implementación comparadas a continuación cubren dónde se ejecuta la inferencia del modelo. Para ejecutar sesiones de [Claude Code en la web](/docs/es/claude-code-on-the-web) en computación que su organización opera, consulte [entornos autohospedados](/docs/es/self-hosted-environments).95Las opciones de implementación comparadas a continuación cubren dónde se ejecuta la inferencia del modelo. Para ejecutar [sesiones en la nube](/docs/es/claude-code-on-the-web) de Claude Code en computación que su organización opera, consulte [entornos autohospedados](/docs/es/self-hosted-environments).

96 96 

97Si su organización tiene requisitos de infraestructura específicos, compare las opciones a continuación:97Si su organización tiene requisitos de infraestructura específicos, compare las opciones a continuación:

98 98 


152 152 

153 <tr>153 <tr>

154 <td>Autenticación</td>154 <td>Autenticación</td>

155 <td>Claude.ai SSO o correo electrónico</td>155 <td>SSO de claude.ai o correo electrónico</td>

156 <td>Clave API o [inicio de sesión en Console sin una](/docs/es/authentication#sign-in-without-an-api-key)</td>156 <td>Clave API o [inicio de sesión en Console sin una](/docs/es/authentication#sign-in-without-an-api-key)</td>

157 <td>Clave API o credenciales de AWS</td>157 <td>Clave API o credenciales de AWS</td>

158 <td>Clave API o credenciales de AWS</td>158 <td>Clave API o credenciales de AWS</td>

Details

24| `Raw mode is not supported` durante la instalación | [Vuelva a ejecutar el instalador](#raw-mode-is-not-supported-during-install) |24| `Raw mode is not supported` durante la instalación | [Vuelva a ejecutar el instalador](#raw-mode-is-not-supported-during-install) |

25| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |25| `TLS connect error` o `SSL/TLS secure channel` | [Actualice los certificados CA](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |26| `Failed to fetch version` o no puede alcanzar el servidor de descarga | [Verifique la configuración de red y proxy](#check-network-connectivity) |

27| `irm is not recognized` o `&& is not valid` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |27| `irm is not recognized` o `The token '&&' is not a valid statement separator` | [Use el comando correcto para su shell](#wrong-install-command-on-windows) |

28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualice Homebrew](#homebrew-cask-unavailable-or-outdated) |28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Actualice Homebrew](#homebrew-cask-unavailable-or-outdated) |

29| `'bash' is not recognized as the name of a cmdlet` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |29| `'bash' is not recognized as the name of a cmdlet` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |

30| `A parameter cannot be found that matches parameter name 'fsSL'` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |30| `A parameter cannot be found that matches parameter name 'fsSL'` | [Use el comando del instalador de Windows](#wrong-install-command-on-windows) |

Details

413. Considere añadir directorios de compilación grandes a su archivo `.gitignore`413. Considere añadir directorios de compilación grandes a su archivo `.gitignore`

424. Reinicie con [`claude --safe-mode`](/docs/es/cli-reference#cli-flags) para verificar si un plugin, servidor MCP, o hook es la fuente. Desactiva todas las personalizaciones para la sesión; si el uso disminuye, consulte [Depurar su configuración](/docs/es/debug-your-config#test-against-a-clean-configuration) para encontrar cuál es424. Reinicie con [`claude --safe-mode`](/docs/es/cli-reference#cli-flags) para verificar si un plugin, servidor MCP, o hook es la fuente. Desactiva todas las personalizaciones para la sesión; si el uso disminuye, consulte [Depurar su configuración](/docs/es/debug-your-config#test-against-a-clean-configuration) para encontrar cuál es

43 43 

44Si la memoria de sesión supera 2.5GB, aparece una advertencia crítica de uso de memoria. Para liberar la memoria, reinicie Claude Code y ejecute [`claude --continue`](/docs/es/cli-reference#cli-flags) para reanudar la conversación en un proceso nuevo.

45 

46Fuera de [renderizado a pantalla completa](/docs/es/fullscreen), ejecutar `/compact` también libera memoria. La advertencia desaparece una vez que el uso de memoria cae por debajo de 2.5GB.

47 

44Si el uso de memoria se mantiene alto después de estos pasos, ejecute `/heapdump` para escribir dos archivos a `~/Desktop`: una instantánea de montón de JavaScript denominada `<session-id>.heapsnapshot` y un desglose de memoria denominado `<session-id>-diagnostics.json`. Claude Code [oculta el comando del menú de comandos](/docs/es/commands#how-the-command-menu-matches-what-you-type); escriba el comando completo. En Linux sin una carpeta Desktop, los archivos se escriben en su directorio de inicio.48Si el uso de memoria se mantiene alto después de estos pasos, ejecute `/heapdump` para escribir dos archivos a `~/Desktop`: una instantánea de montón de JavaScript denominada `<session-id>.heapsnapshot` y un desglose de memoria denominado `<session-id>-diagnostics.json`. Claude Code [oculta el comando del menú de comandos](/docs/es/commands#how-the-command-menu-matches-what-you-type); escriba el comando completo. En Linux sin una carpeta Desktop, los archivos se escriben en su directorio de inicio.

45 49 

46<Warning>50<Warning>


98 102 

99En [renderizado a pantalla completa](/docs/es/fullscreen), Claude Code desplaza la conversación en sí en lugar de dejarlo a su terminal. Si cada muesca de rueda mueve menos líneas de las que desea, ejecute `/scroll-speed` para aumentar el número de líneas por muesca y guárdelo, o establezca la variable de entorno `CLAUDE_CODE_SCROLL_SPEED`, excepto en la terminal del IDE JetBrains, donde Claude Code aplica su propio manejo de desplazamiento y ninguno de los dos tiene efecto. Consulte [Desplazamiento de rueda del ratón](/docs/es/fullscreen#mouse-wheel-scrolling) para los valores que cada uno acepta.103En [renderizado a pantalla completa](/docs/es/fullscreen), Claude Code desplaza la conversación en sí en lugar de dejarlo a su terminal. Si cada muesca de rueda mueve menos líneas de las que desea, ejecute `/scroll-speed` para aumentar el número de líneas por muesca y guárdelo, o establezca la variable de entorno `CLAUDE_CODE_SCROLL_SPEED`, excepto en la terminal del IDE JetBrains, donde Claude Code aplica su propio manejo de desplazamiento y ninguno de los dos tiene efecto. Consulte [Desplazamiento de rueda del ratón](/docs/es/fullscreen#mouse-wheel-scrolling) para los valores que cada uno acepta.

100 104 

101Para moverse más rápido sin cambiar la velocidad, presione `PgUp` y `PgDn` para desplazarse media pantalla a la vez. Para devolver el desplazamiento a su terminal nativo en su lugar, ejecute `/tui default` para cambiar al renderizador clásico.105Para moverse más rápido sin cambiar la velocidad, presione `PgUp` y `PgDn` para desplazarse media pantalla a la vez. Para usar el desplazamiento nativo de su terminal en su lugar, ejecute `/tui default` para cambiar al renderizador clásico.

102 106 

103<h3 id="clipboard-commands-such-as-pbcopy-fail-inside-the-sandbox">107<h3 id="clipboard-commands-such-as-pbcopy-fail-inside-the-sandbox">

104 Los comandos del portapapeles como `pbcopy` fallan dentro del sandbox108 Los comandos del portapapeles como `pbcopy` fallan dentro del sandbox


108 112 

109Para poner la salida de Claude en su portapapeles, pida a Claude que imprima el contenido en su respuesta, luego ejecute [`/copy`](/docs/es/commands). `/copy` escribe en el portapapeles desde el proceso de Claude Code en sí en lugar de desde un comando en sandbox, por lo que el sandboxing no lo bloquea. Puede copiar un único bloque de código en lugar de toda la respuesta, y también escribe lo que copió en un archivo e imprime la ruta, lo que le da una alternativa cuando la escritura del portapapeles no alcanza su terminal, por ejemplo sobre SSH.113Para poner la salida de Claude en su portapapeles, pida a Claude que imprima el contenido en su respuesta, luego ejecute [`/copy`](/docs/es/commands). `/copy` escribe en el portapapeles desde el proceso de Claude Code en sí en lugar de desde un comando en sandbox, por lo que el sandboxing no lo bloquea. Puede copiar un único bloque de código en lugar de toda la respuesta, y también escribe lo que copió en un archivo e imprime la ruta, lo que le da una alternativa cuando la escritura del portapapeles no alcanza su terminal, por ejemplo sobre SSH.

110 114 

111Para permitir que un comando canalizado alcance el portapapeles directamente en su lugar, añada `pbcopy *`, `wl-copy *`, o `xclip *` a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) para que el comando se ejecute fuera del sandbox.115Cuando Claude canaliza texto a una de estas herramientas, añadir `pbcopy *`, `wl-copy *`, o `xclip *` a [`excludedCommands`](/docs/es/settings-reference#sandbox-excludedcommands) no saca esa llamada del sandbox por sí sola.

112 116 

113<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">117<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">

114 Texto copiado no llega a su portapapeles local sobre SSH118 Texto copiado no llega a su portapapeles local sobre SSH

ultrareview.md +10 −3

Details

50 50 

51La rama base no necesita existir en su clon local; Claude Code la obtiene de `origin`. Si el nombre tiene un error tipográfico, Claude Code sugiere el nombre de rama más cercano en el error.51La rama base no necesita existir en su clon local; Claude Code la obtiene de `origin`. Si el nombre tiene un error tipográfico, Claude Code sugiere el nombre de rama más cercano en el error.

52 52 

53Un ID de confirmación o etiqueta también funciona como la base, y la revisión cubre los cambios en su rama desde esa confirmación.

54 

53<h3 id="review-a-pull-request">55<h3 id="review-a-pull-request">

54 Revisa una solicitud de extracción56 Revisa una solicitud de extracción

55</h3>57</h3>


114Ultrareview verifica la diferencia antes de que se ejecute cualquier trabajo de revisión y le dice cuándo no puede revisarla tal como está:116Ultrareview verifica la diferencia antes de que se ejecute cualquier trabajo de revisión y le dice cuándo no puede revisarla tal como está:

115 117 

116* **Diferencia demasiado grande**: una revisión de rama puede incluir hasta 500 archivos cambiados y 8,000 líneas cambiadas de forma predeterminada. Los valores exactos pueden cambiar, y el [rechazo](/docs/es/errors#diff-is-too-large-for-ultrareview) nombra los que están en vigor, el tamaño de su diferencia y los archivos con la mayoría de líneas cambiadas. Claude Code rechaza una solicitud de extracción demasiado grande de la misma manera, nombrando sus recuentos de archivos y líneas pero no el desglose por archivo118* **Diferencia demasiado grande**: una revisión de rama puede incluir hasta 500 archivos cambiados y 8,000 líneas cambiadas de forma predeterminada. Los valores exactos pueden cambiar, y el [rechazo](/docs/es/errors#diff-is-too-large-for-ultrareview) nombra los que están en vigor, el tamaño de su diferencia y los archivos con la mayoría de líneas cambiadas. Claude Code rechaza una solicitud de extracción demasiado grande de la misma manera, nombrando sus recuentos de archivos y líneas pero no el desglose por archivo

117* **Nada que revisar**: cuando la diferencia contra la base está vacía, Claude Code lo dice y sugiere preparar o confirmar ediciones locales, o pasar una base diferente119* **Nada que revisar**: cuando la diferencia contra la base está vacía, ultrareview rechaza y nombra la rama o confirmación con la que comparó y el caso en el que se encuentra, como estar en la rama base en sí sin nada sin confirmar, o una rama cuyos compromisos ya son parte de la base. También sugiere la forma de salir para ese caso, como cambiar a la rama con su trabajo, preparar o confirmar ediciones locales, o pasar una base diferente

118* **Sin base de fusión**: cuando su rama no comparte historial con la rama base, Claude Code vuelve a revisar cada archivo rastreado en el repositorio en su lugar; la alternativa requiere un clon completo y aplica los mismos límites de tamaño. En un checkout sin ramas u otras referencias, como un HEAD desconectado creado al verificar `FETCH_HEAD` después de obtener una URL, Claude Code [rechaza la revisión](/docs/es/errors#your-checkout-has-no-branches) y sugiere crear una rama primero120* **Primera confirmación**: la primera confirmación de un repositorio no tiene nada anterior con lo que comparar, por lo que ultrareview revisa cada archivo en ella después de confirmar en el diálogo de lanzamiento. Si tiene archivos sin rastrear, rechaza en su lugar y le dice que `git add` los que desea revisar. Se aplican los mismos límites de tamaño.

121 

122 Una primera confirmación se revisa completamente solo después de esa confirmación, por lo que el subcomando `claude ultrareview` y `claude -p` la rechazan y lo señalan a una sesión interactiva en su lugar. Requiere Claude Code v2.1.277 o posterior

123* **Sin base de fusión**: cuando su rama no comparte historial con la rama base, o el repositorio no tiene rama base con la que comparar, ultrareview revisa cada archivo rastreado en el repositorio en su lugar. La alternativa requiere un clon completo y aplica los mismos límites de tamaño. Se lanza solo cuando confirma en el diálogo de lanzamiento o ejecuta el subcomando `claude ultrareview` usted mismo. En `claude -p` y en cualquier otro lugar donde ninguno suceda, ultrareview rechaza, dice que la revisión cubriría cada archivo, y lo señala a una sesión interactiva.

124 

125 En un checkout sin ramas u otras referencias, como un HEAD desconectado creado al verificar `FETCH_HEAD` después de obtener una URL, Claude Code [rechaza la revisión](/docs/es/errors#your-checkout-has-no-branches) y sugiere crear una rama primero

119 126 

120<h2 id="pricing-and-free-runs">127<h2 id="pricing-and-free-runs">

121 Precios y ejecuciones gratuitas128 Precios y ejecuciones gratuitas


166 173 

167Sin argumentos, el subcomando revisa la diferencia entre su rama actual y la rama predeterminada, con el mismo [respaldo de repositorio completo](#diff-limits-and-fallbacks) que `/code-review ultra` cuando no existe una base de fusión. Pase un número de PR para revisar una solicitud de extracción, o una rama base para revisar contra ella; el [manejo de rama base](#review-against-a-different-base) coincide con el comando interactivo.174Sin argumentos, el subcomando revisa la diferencia entre su rama actual y la rama predeterminada, con el mismo [respaldo de repositorio completo](#diff-limits-and-fallbacks) que `/code-review ultra` cuando no existe una base de fusión. Pase un número de PR para revisar una solicitud de extracción, o una rama base para revisar contra ella; el [manejo de rama base](#review-against-a-different-base) coincide con el comando interactivo.

168 175 

169Usted da su consentimiento al respaldo de repositorio completo y al aviso de facturación y términos cuando ejecuta el subcomando, por lo que la ejecución comienza sin esperar entrada.176Usted da su consentimiento al respaldo de repositorio completo y al aviso de facturación y términos cuando ejecuta el subcomando, por lo que la ejecución comienza sin esperar entrada. Ejecutarlo usted mismo es lo que cuenta como consentimiento. Cuando Claude ejecuta el subcomando por usted, por ejemplo a través de la herramienta Bash, Claude Code rechaza la revisión de repositorio completo.

170 177 

171En Claude Code v2.1.218 o posterior, también puede iniciar la revisión en la nube ejecutando `/code-review ultra` en una sesión no interactiva, por ejemplo `claude -p '/code-review ultra'`. Claude Code lanza la revisión e imprime un enlace de seguimiento sin esperar los hallazgos, a diferencia de `claude ultrareview`, que se bloquea hasta que llegan. Cuando la revisión facturaría créditos de uso, Claude Code se detiene antes de lanzar y le señala `claude ultrareview`, porque la confirmación de facturación necesita una sesión interactiva. Antes de v2.1.218, `/code-review ultra` en una sesión no interactiva ejecutaba una revisión local.178En Claude Code v2.1.218 o posterior, también puede iniciar la revisión en la nube ejecutando `/code-review ultra` en una sesión no interactiva, por ejemplo `claude -p '/code-review ultra'`. Claude Code lanza la revisión e imprime un enlace de seguimiento sin esperar los hallazgos, a diferencia de `claude ultrareview`, que se bloquea hasta que llegan. Cuando la revisión facturaría créditos de uso, Claude Code se detiene antes de lanzar y le señala `claude ultrareview`, porque la confirmación de facturación necesita una sesión interactiva. Antes de v2.1.218, `/code-review ultra` en una sesión no interactiva ejecutaba una revisión local.

172 179 

vs-code.md +79 −14

Details

90 * En modo Manual, cuando Claude quiere editar un archivo, muestra una comparación lado a lado del original y los cambios propuestos, luego solicita permiso. Puede aceptar, rechazar o decirle a Claude qué hacer en su lugar. Si edita el contenido propuesto directamente en la vista de diferencias antes de aceptar, Claude es informado de que lo modificó para que no asuma que el archivo coincide con su propuesta original.90 * En modo Manual, cuando Claude quiere editar un archivo, muestra una comparación lado a lado del original y los cambios propuestos, luego solicita permiso. Puede aceptar, rechazar o decirle a Claude qué hacer en su lugar. Si edita el contenido propuesto directamente en la vista de diferencias antes de aceptar, Claude es informado de que lo modificó para que no asuma que el archivo coincide con su propuesta original.

91 91 

92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code mostrando una diferencia de los cambios propuestos por Claude con un mensaje de permiso preguntando si realizar la edición" width="3292" height="1876" data-path="images/vs-code-edits.png" />92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code mostrando una diferencia de los cambios propuestos por Claude con un mensaje de permiso preguntando si realizar la edición" width="3292" height="1876" data-path="images/vs-code-edits.png" />

93 

94 Para revisar una edición propuesta un cambio a la vez, use los botones **Accept this change** y **Reject this change** bajo cada cambio en la diferencia. Rechazar un cambio lo revierte en el contenido propuesto; aceptarlo lo marca como revisado. Aceptar o rechazar el archivo completo aún finaliza la revisión. Una diferencia con más de 100 cambios se abre sin los botones por cambio, así que revísela como un archivo completo. La revisión por cambio requiere Claude Code v2.1.275 o posterior.

95 

96 Las mismas acciones están disponibles en el cursor desde el menú contextual del editor y desde la Paleta de comandos como **Claude Code: Accept Change at Cursor** y **Claude Code: Reject Change at Cursor**.

93 </Step>97 </Step>

94</Steps>98</Steps>

95 99 


110 * **Manual**: Claude solicita permiso antes de ediciones de archivos y la mayoría de comandos de shell.114 * **Manual**: Claude solicita permiso antes de ediciones de archivos y la mayoría de comandos de shell.

111 * **Plan**: Claude describe lo que hará y espera aprobación antes de hacer cambios. VS Code abre automáticamente el plan como un documento Markdown completo donde puede agregar comentarios en línea para dar retroalimentación antes de que Claude comience.115 * **Plan**: Claude describe lo que hará y espera aprobación antes de hacer cambios. VS Code abre automáticamente el plan como un documento Markdown completo donde puede agregar comentarios en línea para dar retroalimentación antes de que Claude comience.

112 * **Edit automatically**: Claude realiza ediciones sin preguntar.116 * **Edit automatically**: Claude realiza ediciones sin preguntar.

113* **Model**: seleccione **Switch model…** desde el menú de comandos para cambiar el modelo durante la sesión. También puede hacer clic en el nombre del modelo en la parte inferior del cuadro de solicitud para abrir el mismo selector. Cuando el modelo actual admite [niveles de esfuerzo](/docs/es/model-config#adjust-effort-level), el selector también muestra una fila **Effort** y el botón del nombre del modelo muestra el nivel seleccionado. El botón del nombre del modelo y la fila **Effort** requieren Claude Code v2.1.257 o posterior.117* **Model**: seleccione **Switch model…** desde el menú de comandos para cambiar el modelo durante la sesión. También puede hacer clic en el nombre del modelo en la parte inferior del cuadro de solicitud para abrir el mismo selector.

114* **Command menu**: haga clic en `/` o escriba `/` para abrir el menú de comandos. Las opciones incluyen adjuntar archivos, cambiar modelos y alternar el pensamiento extendido. La sección Customize proporciona acceso a servidores MCP, comandos, estilos de salida, hooks, memoria, permisos y plugins. Los elementos con un icono de terminal se abren en la terminal integrada.118 

119 Cuando el modelo actual admite [niveles de esfuerzo](/docs/es/model-config#adjust-effort-level), el selector también muestra una fila **Effort** y el botón del nombre del modelo muestra el nivel seleccionado. Cuando elige un nivel distinto de `max`, Claude Code lo guarda para el modelo actual como su predeterminado, bajo [`modelSettings`](/docs/es/settings-reference#modelsettings) en su configuración de usuario; `max` se aplica solo a la sesión actual. El botón del nombre del modelo y la fila **Effort** requieren Claude Code v2.1.257 o posterior.

120* **Command menu**: haga clic en `/` o escriba `/` para abrir el menú de comandos. Las opciones incluyen adjuntar archivos, cambiar modelos y alternar el pensamiento extendido.

121 

122 La sección Customize proporciona acceso a servidores MCP, comandos, estilos de salida, hooks, memoria, instrucciones, permisos y plugins. Los elementos con un icono de terminal se abren en la terminal integrada.

123 

115 * Para examinar comandos como `/usage` o [`/remote-control`](/docs/es/remote-control), seleccione **Slash commands** en la sección Customize. Un diálogo los enumera con un cuadro de filtro. Elija uno para ejecutarlo. Escribir `/` en el cuadro de solicitud aún sugiere comandos en línea. Requiere Claude Code v2.1.257 o posterior.124 * Para examinar comandos como `/usage` o [`/remote-control`](/docs/es/remote-control), seleccione **Slash commands** en la sección Customize. Un diálogo los enumera con un cuadro de filtro. Elija uno para ejecutarlo. Escribir `/` en el cuadro de solicitud aún sugiere comandos en línea. Requiere Claude Code v2.1.257 o posterior.

116 * Seleccione **Output styles** en la sección Customize para elegir un [estilo de salida](/docs/es/output-styles), incluidos sus estilos personalizados. Requiere Claude Code v2.1.257 o posterior.125 * Seleccione **Output styles** en la sección Customize para elegir un [estilo de salida](/docs/es/output-styles), incluidos sus estilos personalizados. Requiere Claude Code v2.1.257 o posterior.

117 126 

118 Para crear un estilo personalizado en su lugar, seleccione **Build a custom style** desde el menú **Output styles**. Claude Code escribe el [archivo de estilo](/docs/es/output-styles#create-a-custom-output-style) para usted a nivel de proyecto o usuario. Requiere Claude Code v2.1.261 o posterior.127 Para crear un estilo personalizado en su lugar, seleccione **Build a custom style** desde el menú **Output styles**. Claude Code escribe el [archivo de estilo](/docs/es/output-styles#create-a-custom-output-style) para usted a nivel de proyecto o usuario. Requiere Claude Code v2.1.261 o posterior.

119 * Seleccione **Hooks** en la sección Customize para ver los [hooks](/docs/es/hooks) cargados en la sesión, agrupados por evento. Puede agregar, editar o eliminar hooks guardados en sus archivos de configuración de usuario, proyecto y local. Los hooks de otras fuentes, como configuración administrada o plugins, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.128 * Seleccione **Hooks** en la sección Customize para ver los [hooks](/docs/es/hooks) cargados en la sesión, agrupados por evento. Puede agregar, editar o eliminar hooks guardados en sus archivos de configuración de usuario, proyecto y local. Los hooks de otras fuentes, como configuración administrada o plugins, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.

120 * Seleccione **Permissions** en la sección Customize para ver las [reglas de permiso](/docs/es/permissions) de la sesión, agrupadas en Allow, Ask y Deny. Puede agregar reglas a su configuración de usuario, proyecto o local y eliminar reglas guardadas allí. Las reglas de otras fuentes, como configuración administrada o aprobaciones realizadas solo para esta sesión, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.129 * Seleccione **Permissions** en la sección Customize para ver las [reglas de permiso](/docs/es/permissions) de la sesión, agrupadas en Allow, Ask y Deny. Puede agregar reglas a su configuración de usuario, proyecto o local y eliminar reglas guardadas allí. Las reglas de otras fuentes, como configuración administrada o aprobaciones realizadas solo para esta sesión, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.

130 * Seleccione **Memory** en la sección Customize para activar o desactivar la [memoria automática](/docs/es/memory#auto-memory). Mientras esté activada, también puede examinar las memorias que Claude ha guardado y revelar las carpetas que las almacenan en su administrador de archivos. Requiere Claude Code v2.1.274 o posterior.

131 

132 Haga clic en una memoria guardada para leerla en el diálogo, donde puede editar el texto, eliminar la memoria o abrir su archivo en el editor. Ver, editar y eliminar una memoria en el diálogo requieren Claude Code v2.1.275 o posterior.

133 * Seleccione **Instructions** en la sección Customize para editar los [archivos CLAUDE.md](/docs/es/memory#claude-md-files) que Claude lee. Elija un archivo para abrirlo en el editor. Si el archivo aún no existe, Claude Code lo crea primero. Requiere Claude Code v2.1.274 o posterior.

121 * La sección Settings incluye **Enable Remote Control for all sessions**, que establece [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) para controlar si [las nuevas sesiones interactivas se conectan a Remote Control automáticamente](/docs/es/remote-control#enable-remote-control-for-all-sessions). Requiere Claude Code v2.1.203 o posterior.134 * La sección Settings incluye **Enable Remote Control for all sessions**, que establece [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) para controlar si [las nuevas sesiones interactivas se conectan a Remote Control automáticamente](/docs/es/remote-control#enable-remote-control-for-all-sessions). Requiere Claude Code v2.1.203 o posterior.

122 135 

123 Cuando activa o desactiva el conmutador en una ventana de VS Code, el cambio se aplica a las sesiones ya abiertas en esa ventana de VS Code, no solo a las sesiones que inicia después. Si lo desactiva, las sesiones abiertas se desconectan. Con Claude Code v2.1.261 o posterior, el cambio también llega a las sesiones abiertas en sus otras ventanas de VS Code.136 Cuando activa o desactiva el conmutador en una ventana de VS Code, el cambio se aplica a las sesiones ya abiertas en esa ventana de VS Code, no solo a las sesiones que inicia después. Si lo desactiva, las sesiones abiertas se desconectan. Con Claude Code v2.1.261 o posterior, el cambio también llega a las sesiones abiertas en sus otras ventanas de VS Code.

124 * La sección Settings también incluye **Focus view**, que oculta llamadas de herramientas, resultados de herramientas y pensamiento detrás de filas expandibles, dejando sus solicitudes y las respuestas de Claude. Actívelo allí, con `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux), o desde la Paleta de comandos con **Claude Code: Toggle Focus view**. El cambio se aplica a todas las sesiones abiertas y persiste entre sesiones. Requiere Claude Code v2.1.221 o posterior.137 * La sección Settings también incluye **Focus view**, que oculta llamadas de herramientas, resultados de herramientas y pensamiento detrás de filas expandibles, dejando sus solicitudes y las respuestas de Claude. Actívelo allí, con `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux), o desde la Paleta de comandos con **Claude Code: Toggle Focus view**. El cambio se aplica a todas las sesiones abiertas y persiste entre sesiones. Requiere Claude Code v2.1.221 o posterior.

125 138 

126 La lista de tareas más reciente de Claude permanece visible, al igual que el texto de una pregunta pendiente de Claude; esto requiere Claude Code v2.1.225 o posterior. Mientras Claude ejecuta [subagentes](/docs/es/sub-agents), filas de progreso en vivo con su actividad más reciente aparecen bajo el grupo de llamadas de herramientas que las inició. Esto requiere Claude Code v2.1.269 o posterior.139 La lista de tareas más reciente de Claude permanece visible, al igual que el texto de una pregunta pendiente de Claude; esto requiere Claude Code v2.1.225 o posterior. Mientras Claude ejecuta [subagentes](/docs/es/sub-agents), filas de progreso en vivo con su actividad más reciente aparecen bajo el grupo de llamadas de herramientas que las inició. Esto requiere Claude Code v2.1.269 o posterior.

140 * Para cerrar sesión en su cuenta de Anthropic, seleccione **Sign out** en la sección Settings, o escriba `/logout`. En un [proveedor de terceros](#use-third-party-providers), el menú no ofrece ninguno de los dos. Requiere Claude Code v2.1.277 o posterior.

127 * Para reportar un error, haga clic en **Report a problem** en la parte inferior del menú, o escriba `/bug` o `/feedback` con una descripción opcional que rellene previamente el informe. Cuando envía el informe y está conectado a Anthropic en una conexión de primera parte, Claude Code lo envía a Anthropic. En un proveedor de terceros, o sin credenciales de Anthropic, el diálogo aún se abre, pero enviar muestra un error y no envía nada: a diferencia de `/bug` de la CLI, la extensión no escribe un archivo local. Requiere Claude Code v2.1.229 o posterior.141 * Para reportar un error, haga clic en **Report a problem** en la parte inferior del menú, o escriba `/bug` o `/feedback` con una descripción opcional que rellene previamente el informe. Cuando envía el informe y está conectado a Anthropic en una conexión de primera parte, Claude Code lo envía a Anthropic. En un proveedor de terceros, o sin credenciales de Anthropic, el diálogo aún se abre, pero enviar muestra un error y no envía nada: a diferencia de `/bug` de la CLI, la extensión no escribe un archivo local. Requiere Claude Code v2.1.229 o posterior.

128 142 

129 Si la política de su organización desactiva la retroalimentación del producto, **Report a problem** no aparece en el menú, y `/bug` y `/feedback` muestran un aviso `Feedback is turned off by your organization's policy or this environment's settings.` en lugar de abrir el informe.143 Si la política de su organización desactiva la retroalimentación del producto, **Report a problem** no aparece en el menú, y `/bug` y `/feedback` muestran un aviso `Feedback is turned off by your organization's policy or this environment's settings.` en lugar de abrir el informe.

130* **Side questions**: escriba `/btw` seguido de una pregunta para preguntar sobre su sesión [sin agregar a la conversación](/docs/es/interactive-mode#side-questions-with-%2Fbtw). La respuesta se abre en un panel junto al chat, donde puede hacer preguntas de seguimiento. El hilo sobrevive a las recargas de ventana. Claude Code mantiene los 20 intercambios más nuevos y expira los hilos almacenados en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que Claude Code pueda [determinar de forma segura el período de retención](/docs/es/claude-directory#cleaned-up-automatically). Para borrar un hilo, haga clic en el icono de papelera en el panel. Requiere Claude Code v2.1.227 o posterior.144* **Side questions**: escriba `/btw` seguido de una pregunta para preguntar sobre su sesión [sin agregar a la conversación](/docs/es/interactive-mode#side-questions-with-%2Fbtw). La respuesta se abre en un panel junto al chat, donde puede hacer preguntas de seguimiento. El hilo sobrevive a las recargas de ventana. Claude Code mantiene los 20 intercambios más nuevos y expira los hilos almacenados en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que Claude Code pueda [determinar de forma segura el período de retención](/docs/es/claude-directory#cleaned-up-automatically). Para borrar un hilo, haga clic en el icono de papelera en el panel. Requiere Claude Code v2.1.227 o posterior.

145* **Copy a response**: pase el cursor sobre una respuesta y haga clic en **Copy response** para copiarla al portapapeles, o escriba `/copy` para copiar la respuesta más reciente. `/copy 2` copia la segunda más reciente. Requiere Claude Code v2.1.277 o posterior.

131* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.146* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.

132* **Prompt cache clock**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de solicitud](/docs/es/prompt-caching) de la conversación antes de que expire. Cuenta regresiva desde la [vida útil](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no restablecen el reloj, por lo que aún puede mostrar minutos restantes después de cambiar modelos.147* **Prompt cache clock**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de solicitud](/docs/es/prompt-caching) de la conversación antes de que expire. Cuenta regresiva desde la [vida útil](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no restablecen el reloj, por lo que aún puede mostrar minutos restantes después de cambiar modelos.

133 * Hasta que se agote la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.148 * Hasta que se agote la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.


136* **Agent map**: cuando la conversación incluye [subagentes](/docs/es/sub-agents), un recuento de agentes como **2 agents** aparece en la parte inferior del cuadro de solicitud. Su punto muestra si algún subagente está trabajando o esperando su permiso.151* **Agent map**: cuando la conversación incluye [subagentes](/docs/es/sub-agents), un recuento de agentes como **2 agents** aparece en la parte inferior del cuadro de solicitud. Su punto muestra si algún subagente está trabajando o esperando su permiso.

137 152 

138 Haga clic en el recuento de agentes para abrir el mapa de agentes, que dibuja los subagentes de la conversación como un árbol bajo el agente principal, cada uno con su estado, tiempo transcurrido y recuento de tokens. Haga clic en un subagente para ver su solicitud y llamadas de herramientas, abrir su transcripción de solo lectura, o detenerlo mientras se ejecuta. Requiere Claude Code v2.1.269 o posterior.153 Haga clic en el recuento de agentes para abrir el mapa de agentes, que dibuja los subagentes de la conversación como un árbol bajo el agente principal, cada uno con su estado, tiempo transcurrido y recuento de tokens. Haga clic en un subagente para ver su solicitud y llamadas de herramientas, abrir su transcripción de solo lectura, o detenerlo mientras se ejecuta. Requiere Claude Code v2.1.269 o posterior.

154 

155 El mapa también enumera las otras [tareas en segundo plano](/docs/es/tools-reference#background-commands) de la sesión, como comandos de shell en segundo plano y [monitores](/docs/es/tools-reference#monitor-tool), debajo de los agentes. Haga clic en una fila para abrir la tarjeta de la tarea y detenerla allí.

156 

157 Para abrir el mapa cuando no se muestra un recuento de agentes, como cuando Claude ha iniciado un shell en segundo plano pero sin subagentes, escriba `/tasks` en el cuadro de solicitud. Las tareas en segundo plano en el mapa y el `/tasks` escrito requieren Claude Code v2.1.277 o posterior.

139* **Extended thinking**: permite que Claude dedique más tiempo a razonar problemas complejos. Actívelo a través del menú de comandos (`/`). El razonamiento de Claude aparece en la conversación como bloques contraídos: haga clic en un bloque para leerlo, o presione `Ctrl+O` para expandir o contraer cada bloque de pensamiento en la sesión. Consulte [Extended thinking](/docs/es/model-config#extended-thinking) para obtener detalles.158* **Extended thinking**: permite que Claude dedique más tiempo a razonar problemas complejos. Actívelo a través del menú de comandos (`/`). El razonamiento de Claude aparece en la conversación como bloques contraídos: haga clic en un bloque para leerlo, o presione `Ctrl+O` para expandir o contraer cada bloque de pensamiento en la sesión. Consulte [Extended thinking](/docs/es/model-config#extended-thinking) para obtener detalles.

140* **Multi-line input**: presione `Shift+Enter` para agregar una nueva línea sin enviar. Esto también funciona en la entrada de texto libre "Other" de los diálogos de preguntas.159* **Multi-line input**: presione `Shift+Enter` para agregar una nueva línea sin enviar. Esto también funciona en la entrada de texto libre "Other" de los diálogos de preguntas.

141 160 


154 173 

155Cuando selecciona texto en el editor, Claude puede ver su código resaltado automáticamente. El pie de página del cuadro de solicitud muestra cuántas líneas están seleccionadas. Presione `Option+K` (Mac) / `Alt+K` (Windows/Linux) para insertar una mención con @ con la ruta del archivo y números de línea (por ejemplo, `@app.ts#5-10`). Haga clic en la **X** en el indicador de selección para eliminarlo para que Claude no reciba la selección. El indicador reaparece cuando selecciona otro texto.174Cuando selecciona texto en el editor, Claude puede ver su código resaltado automáticamente. El pie de página del cuadro de solicitud muestra cuántas líneas están seleccionadas. Presione `Option+K` (Mac) / `Alt+K` (Windows/Linux) para insertar una mención con @ con la ruta del archivo y números de línea (por ejemplo, `@app.ts#5-10`). Haga clic en la **X** en el indicador de selección para eliminarlo para que Claude no reciba la selección. El indicador reaparece cuando selecciona otro texto.

156 175 

176La extensión retiene el texto seleccionado de algunos archivos. Cuando el archivo está dentro de su espacio de trabajo y coincide con su configuración `files.exclude` o `search.exclude`, Claude recibe como máximo la ruta del archivo y no el texto que seleccionó. Lo mismo se aplica a un archivo que git ignora, siempre que la configuración `search.useIgnoreFiles` de VS Code y la configuración [`respectGitIgnore`](#extension-settings) de la extensión estén ambas activadas, que es el predeterminado. Este filtro cubre solo el panel de chat: cuando Claude Code se ejecuta en la terminal integrada, la CLI envía su texto seleccionado sea cual sea el archivo, así que agregue una [regla de denegación `Read`](#the-built-in-ide-mcp-server) para evitar que Claude vea el contenido de un archivo allí.

177 

157Claude también ve qué archivo tiene abierto en el editor, incluso cuando nada está seleccionado, y el cuadro de solicitud muestra su nombre. Para agregar solo su texto seleccionado, desactive la [configuración Attach Open File](vscode://settings/claudeCode.attachOpenFile). La configuración requiere Claude Code v2.1.271 o posterior.178Claude también ve qué archivo tiene abierto en el editor, incluso cuando nada está seleccionado, y el cuadro de solicitud muestra su nombre. Para agregar solo su texto seleccionado, desactive la [configuración Attach Open File](vscode://settings/claudeCode.attachOpenFile). La configuración requiere Claude Code v2.1.271 o posterior.

158 179 

159Para adjuntar una imagen, péguela desde su portapapeles en el cuadro de solicitud. También puede mantener presionado `Shift` mientras arrastra archivos al cuadro de solicitud para agregarlos como adjuntos. Haga clic en la X en cualquier adjunto para eliminarlo del contexto.180También puede adjuntar imágenes y archivos a su mensaje:

181 

182* Para adjuntar una imagen, péguela desde su portapapeles en el cuadro de solicitud.

183* Para adjuntar archivos, mantenga presionado `Shift` mientras arrastra archivos al cuadro de solicitud.

184* Para eliminar un adjunto del contexto, haga clic en la X en él.

160 185 

161<h3 id="resume-past-conversations">186<h3 id="resume-past-conversations">

162 Reanudar conversaciones pasadas187 Reanudar conversaciones pasadas


171 196 

172De forma predeterminada, una sesión sin actividad durante 14 días se mueve a **Archived sessions** automáticamente, a menos que esté abierta, no leída o en un [grupo](#organize-sessions-into-groups). El archivado automático requiere Claude Code v2.1.265 o posterior. Para cambiar el período o desactivarlo, abra la [configuración Archive Inactive Sessions](vscode://settings/claudeCode.archiveInactiveSessions) y seleccione un número de días o **Never**.197De forma predeterminada, una sesión sin actividad durante 14 días se mueve a **Archived sessions** automáticamente, a menos que esté abierta, no leída o en un [grupo](#organize-sessions-into-groups). El archivado automático requiere Claude Code v2.1.265 o posterior. Para cambiar el período o desactivarlo, abra la [configuración Archive Inactive Sessions](vscode://settings/claudeCode.archiveInactiveSessions) y seleccione un número de días o **Never**.

173 198 

174Para restaurar una sesión archivada, expanda **Archived sessions** y haga clic en **Unarchive session**. Antes de v2.1.257, la acción era **Delete session**, que ocultaba una sesión sin forma de restaurarla. Las sesiones que eliminó aparecen bajo **Archived sessions** después de actualizar.199Para restaurar una sesión archivada, expanda **Archived sessions** y haga clic en **Unarchive session**. Para restaurar todas las sesiones archivadas a la vez, pase el cursor sobre el encabezado **Archived sessions** en la lista de sesiones en la Barra de actividades y haga clic en su icono de desarchivado, lo que requiere Claude Code v2.1.277 o posterior. Antes de v2.1.257, la acción era **Delete session**, que ocultaba una sesión sin forma de restaurarla. Las sesiones que eliminó aparecen bajo **Archived sessions** después de actualizar.

175 200 

176Cuando la conversación que reanuda terminó en modo plan, Claude Code restaura el modo plan. Requiere Claude Code v2.1.246 o posterior. Claude Code no lo restaura en dos casos:201Cuando la conversación que reanuda terminó en modo plan, Claude Code restaura el modo plan. Requiere Claude Code v2.1.246 o posterior. Claude Code no lo restaura en dos casos:

177 202 


206 Verificar cuenta y uso231 Verificar cuenta y uso

207</h3>232</h3>

208 233 

209Ejecute `/usage` para abrir el diálogo Account & usage. El diálogo requiere un inicio de sesión en claude.ai, por lo que no se ofrece en un [proveedor de terceros](#use-third-party-providers). Muestra su cuenta conectada, su plan y barras de uso para los límites de su plan, como la sesión actual y la semana. Cada barra muestra cuánto tiempo falta para que se restablezca su límite.234Ejecute `/usage` para abrir el diálogo Account & usage. Muestra su cuenta conectada, y el uso que reporta difiere según el inicio de sesión:

210 235 

211El diálogo también desglosa qué está contribuyendo a los límites de su plan. Marca comportamientos que representan el 10% o más del uso reciente, como fallos de caché, contexto largo, sesiones pesadas en subagentes o altamente paralelas, cada una con un consejo para reducirlo. Las tablas de atribución muestran cuánto uso provino de cada skill, subagente, plugin y servidor MCP.236* **claude.ai plan**: barras de uso para los límites de su plan, como la sesión actual y la semana. Cada barra muestra cuánto tiempo falta para que se restablezca su límite.

212 237 

213Use el conmutador Day y Week para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir de sesiones locales en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye. Para obtener más información sobre cómo rastrear y reducir el uso, consulte [Track your costs](/docs/es/costs#track-your-costs).238 El diálogo también desglosa qué está contribuyendo a los límites de su plan. Marca comportamientos que representan el 10% o más del uso reciente, como fallos de caché, contexto largo, sesiones pesadas en subagentes o altamente paralelas, cada una con un consejo para reducirlo. Las tablas de atribución muestran cuánto uso provino de cada skill, subagente, plugin y servidor MCP.

239 

240 Use el conmutador Day y Week para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir de sesiones locales en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye.

241* **Other sign-ins**: cuando los límites de plan no se aplican a su inicio de sesión, como en un [proveedor de terceros](#use-third-party-providers) o con una clave API, la sección Usage muestra el costo de la sesión y el uso de tokens en su lugar. El `/usage` de la CLI muestra los mismos totales en su [bloque Session](/docs/es/costs#track-your-costs). La lista de sesiones en la Barra de actividades también muestra los totales de la sesión activa bajo su encabezado **Account & usage**. Requiere Claude Code v2.1.277 o posterior.

242 

243Para obtener más información sobre cómo rastrear y reducir el uso, consulte [Track your costs](/docs/es/costs#track-your-costs).

214 244 

215<h2 id="customize-your-workflow">245<h2 id="customize-your-workflow">

216 Personaliza tu flujo de trabajo246 Personaliza tu flujo de trabajo


228* **Barra lateral principal**: la barra lateral izquierda con iconos para Explorer, Search, etc.258* **Barra lateral principal**: la barra lateral izquierda con iconos para Explorer, Search, etc.

229* **Área del editor**: abre Claude como una pestaña junto a tus archivos. Útil para tareas secundarias.259* **Área del editor**: abre Claude como una pestaña junto a tus archivos. Útil para tareas secundarias.

230 260 

261Cuando Claude abre una pestaña en un nuevo grupo de editor, la extensión bloquea ese grupo, por lo que los archivos que abres mientras la pestaña de Claude está enfocada van a otro grupo en lugar de junto a ella.

262 

263Para evitar que la extensión bloquee grupos, desactiva la [configuración Lock Editor Groups](vscode://settings/claudeCode.lockEditorGroups). Los grupos que ya están bloqueados permanecen bloqueados hasta que los desbloquees. La configuración requiere Claude Code v2.1.274 o posterior.

264 

231<Tip>265<Tip>

232 Usa la barra lateral para tu sesión principal de Claude y abre pestañas adicionales para tareas secundarias. Claude recuerda tu ubicación preferida. El icono de la lista de sesiones de la Activity Bar es independiente del panel de Claude: la lista de sesiones siempre es visible en la Activity Bar, mientras que el icono del panel de Claude solo aparece allí cuando el panel está acoplado a la barra lateral izquierda.266 Usa la barra lateral para tu sesión principal de Claude y abre pestañas adicionales para tareas secundarias. Claude recuerda tu ubicación preferida. El icono de la lista de sesiones de la Activity Bar es independiente del panel de Claude: la lista de sesiones siempre es visible en la Activity Bar, mientras que el icono del panel de Claude solo aparece allí cuando el panel está acoplado a la barra lateral izquierda.

233</Tip>267</Tip>


237* **Pestaña del editor**: la conversación vuelve con su pestaña.271* **Pestaña del editor**: la conversación vuelve con su pestaña.

238* **Barra lateral**: la conversación vuelve si enviaste un mensaje o Claude respondió en ella en los últimos 10 minutos. Si no vuelve, reanuda la conversación desde [Historial de sesiones](#resume-past-conversations).272* **Barra lateral**: la conversación vuelve si enviaste un mensaje o Claude respondió en ella en los últimos 10 minutos. Si no vuelve, reanuda la conversación desde [Historial de sesiones](#resume-past-conversations).

239 273 

274Si la recarga interrumpió a Claude a mitad de un paso, Claude continúa ese paso cuando la conversación vuelve, y un aviso en el chat marca la continuación. Requiere Claude Code v2.1.274 o posterior. Si el paso fue interrumpido hace más de una hora o la sesión está abierta en otro lugar, la conversación vuelve inactiva en su lugar.

275 

276Para desactivar la continuación, abre la [configuración Continue After Reload](vscode://settings/claudeCode.continueAfterReload) y desactívala.

277 

240<h3 id="run-multiple-conversations">278<h3 id="run-multiple-conversations">

241 Ejecuta múltiples conversaciones279 Ejecuta múltiples conversaciones

242</h3>280</h3>


304La URL toma dos parámetros de consulta:342La URL toma dos parámetros de consulta:

305 343 

306| Parámetro | Descripción |344| Parámetro | Descripción |

307| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |345| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

308| `plugin` | El nombre del plugin tal como lo enumera su marketplace. Requerido. |346| `plugin` | El nombre del plugin tal como lo enumera su marketplace. Requerido. |

309| `marketplace` | De dónde proviene el plugin, en cualquier forma que la [pestaña Marketplaces](#manage-marketplaces) acepte, como un `owner/repo` de GitHub o una URL de git. Codifíquelo en URL si contiene caracteres como `&`. Por defecto es `anthropics/claude-plugins-official` cuando se omite. |347| `marketplace` | De dónde proviene el plugin: un `owner/repo` de GitHub, una URL `https://`, o una URL de git SSH como `git@github.com:owner/repo.git`. Por defecto es `anthropics/claude-plugins-official` cuando se omite. |

348 

349Algunos valores que la [pestaña Marketplaces](#manage-marketplaces) acepta no funcionan en un enlace, como una ruta local o una dirección `http://`. Para esos, VS Code muestra un mensaje de error y el diálogo no se abre.

310 350 

311Dos casos terminan en un mensaje en el diálogo en lugar de la opción de alcance:351Dos casos terminan en un mensaje en el diálogo en lugar de la opción de alcance:

312 352 


364</Note>404</Note>

365 405 

366| Comando | Atajo de teclado | Descripción |406| Comando | Atajo de teclado | Descripción |

367| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |407| -------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

368| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Alternar el enfoque entre el editor y Claude |408| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Alternar el enfoque entre el editor y Claude |

409| Focus last message | - | Mover el enfoque del teclado al mensaje más reciente en la conversación, o a un aviso de permiso pendiente, para que pueda leer desde allí con el teclado o un lector de pantalla. No disponible en [modo terminal](#switch-to-terminal-mode). Requiere Claude Code v2.1.268 o posterior |

369| Open in Side Bar | - | Abrir Claude en la barra lateral |410| Open in Side Bar | - | Abrir Claude en la barra lateral |

370| Open in Terminal | - | Abrir Claude en modo terminal |411| Open in Terminal | - | Abrir Claude en modo terminal |

371| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Abrir una nueva conversación como una pestaña del editor |412| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Abrir una nueva conversación como una pestaña del editor |


373| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Iniciar una nueva conversación. Requiere que Claude esté enfocado y `enableNewConversationShortcut` establecido en `true` |414| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Iniciar una nueva conversación. Requiere que Claude esté enfocado y `enableNewConversationShortcut` establecido en `true` |

374| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Reabrir la pestaña de sesión de Claude cerrada más recientemente. Se remite a la reapertura normal de editor cerrado de VS Code cuando la última pestaña cerrada no era una sesión de Claude. Deshabilitar con `enableReopenClosedSessionShortcut` |415| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Reabrir la pestaña de sesión de Claude cerrada más recientemente. Se remite a la reapertura normal de editor cerrado de VS Code cuando la última pestaña cerrada no era una sesión de Claude. Deshabilitar con `enableReopenClosedSessionShortcut` |

375| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Insertar una referencia al archivo actual y la selección (requiere que el editor esté enfocado) |416| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Insertar una referencia al archivo actual y la selección (requiere que el editor esté enfocado) |

417| Accept Change at Cursor | - | Aceptar el cambio en el cursor mientras [revisa una edición propuesta](#get-started) un cambio a la vez. Requiere Claude Code v2.1.275 o posterior |

418| Reject Change at Cursor | - | Revertir el cambio en el cursor mientras revisa una edición propuesta un cambio a la vez. Requiere Claude Code v2.1.275 o posterior |

376| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | Ocultar o mostrar la actividad de herramientas en la conversación. Funciona mientras un panel de Claude o la barra lateral sea visible. Requiere Claude Code v2.1.221 o posterior |419| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | Ocultar o mostrar la actividad de herramientas en la conversación. Funciona mientras un panel de Claude o la barra lateral sea visible. Requiere Claude Code v2.1.221 o posterior |

377| Rename Session Tab | - | Cambiar el nombre de la sesión en la pestaña activa de Claude. Requiere Claude Code v2.1.257 o posterior |420| Rename Session Tab | - | Cambiar el nombre de la sesión en la pestaña activa de Claude. Requiere Claude Code v2.1.257 o posterior |

378| Add Session Tab to Group | - | Agregar la sesión en la pestaña activa de Claude a un [grupo de sesiones](#organize-sessions-into-groups) que elija o cree. Requiere Claude Code v2.1.257 o posterior |421| Add Session Tab to Group | - | Agregar la sesión en la pestaña activa de Claude a un [grupo de sesiones](#organize-sessions-into-groups) que elija o cree. Requiere Claude Code v2.1.257 o posterior |


457| `useTerminal` | `false` | Inicie Claude en modo terminal en lugar de panel gráfico |500| `useTerminal` | `false` | Inicie Claude en modo terminal en lugar de panel gráfico |

458| `initialPermissionMode` | - | Controla los mensajes de aprobación para nuevas conversaciones: `default`, `plan`, `acceptEdits` o `bypassPermissions`. `manual` es un alias para `default` y selecciona el modo etiquetado como **Manual** en el indicador de modo. Cuando lo deja sin establecer, la extensión elige el modo de permisos inicial como se describe en [Switch permission modes](/docs/es/permission-modes#switch-permission-modes). |501| `initialPermissionMode` | - | Controla los mensajes de aprobación para nuevas conversaciones: `default`, `plan`, `acceptEdits` o `bypassPermissions`. `manual` es un alias para `default` y selecciona el modo etiquetado como **Manual** en el indicador de modo. Cuando lo deja sin establecer, la extensión elige el modo de permisos inicial como se describe en [Switch permission modes](/docs/es/permission-modes#switch-permission-modes). |

459| `preferredLocation` | `panel` | Dónde se abre Claude: `sidebar` (derecha) o `panel` (nueva pestaña) |502| `preferredLocation` | `panel` | Dónde se abre Claude: `sidebar` (derecha) o `panel` (nueva pestaña) |

503| `lockEditorGroups` | `true` | [Bloquear los grupos de editor que Claude inicia para sus pestañas](#choose-where-claude-lives), de modo que los archivos que abre mientras una pestaña de Claude está enfocada vayan a otro grupo. Cuando está desactivado, la extensión nunca bloquea un grupo de editor. Requiere Claude Code v2.1.274 o posterior |

460| `autosave` | `true` | Guardar automáticamente archivos antes de que Claude los lea o escriba |504| `autosave` | `true` | Guardar automáticamente archivos antes de que Claude los lea o escriba |

461| `attachOpenFile` | `true` | Agregue el archivo que está abierto en el editor a sus mensajes y muéstrelo en el cuadro de mensaje. Cuando está desactivado, solo se agrega el texto seleccionado. Requiere Claude Code v2.1.271 o posterior |505| `attachOpenFile` | `true` | Agregue el archivo que está abierto en el editor a sus mensajes y muéstrelo en el cuadro de mensaje. Cuando está desactivado, solo se agrega el texto seleccionado. Requiere Claude Code v2.1.271 o posterior |

462| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter en lugar de Enter para enviar mensajes |506| `useCtrlEnterToSend` | `false` | Usar Ctrl/Cmd+Enter en lugar de Enter para enviar mensajes |

507| `scrollToBottomOnSend` | `true` | Desplazarse a la conversación hacia el final cuando envía un mensaje. Cuando está desactivado, la conversación permanece donde la dejó. Requiere Claude Code v2.1.275 o posterior |

463| `enableNewConversationShortcut` | `false` | Habilitar Cmd/Ctrl+N para iniciar una nueva conversación |508| `enableNewConversationShortcut` | `false` | Habilitar Cmd/Ctrl+N para iniciar una nueva conversación |

464| `enableReopenClosedSessionShortcut` | `true` | Usar Cmd/Ctrl+Shift+T para reabrir la pestaña de sesión de Claude cerrada más recientemente. Cuando la última pestaña cerrada no era una sesión de Claude, el atajo ejecuta el comando normal de reapertura de editor cerrado de VS Code en su lugar. |509| `enableReopenClosedSessionShortcut` | `true` | Usar Cmd/Ctrl+Shift+T para reabrir la pestaña de sesión de Claude cerrada más recientemente. Cuando la última pestaña cerrada no era una sesión de Claude, el atajo ejecuta el comando normal de reapertura de editor cerrado de VS Code en su lugar. |

465| `archiveInactiveSessions` | `14` | [Archivar una sesión automáticamente](#resume-past-conversations) después de estos muchos días sin actividad: `1`, `2`, `7` o `14`. Establezca `0` para desactivarlo. Requiere Claude Code v2.1.265 o posterior |510| `archiveInactiveSessions` | `14` | [Archivar una sesión automáticamente](#resume-past-conversations) después de estos muchos días sin actividad: `1`, `2`, `7` o `14`. Establezca `0` para desactivarlo. Requiere Claude Code v2.1.265 o posterior |

511| `continueAfterReload` | `true` | Después de una recarga de ventana, Claude [continúa el paso que fue interrumpido](#choose-where-claude-lives) en la sesión restaurada. Requiere Claude Code v2.1.274 o posterior |

466| `hideOnboarding` | `false` | Ocultar la lista de verificación de incorporación (icono de gorro de graduación) |512| `hideOnboarding` | `false` | Ocultar la lista de verificación de incorporación (icono de gorro de graduación) |

467| `focusView` | `false` | Ocultar llamadas de herramientas, resultados de herramientas y pensamiento detrás de filas expandibles, dejando sus mensajes y las respuestas de Claude. La lista de tareas más reciente de Claude permanece visible; esto requiere Claude Code v2.1.225 o posterior. También puede alternar la vista de enfoque desde el menú de comandos. Requiere Claude Code v2.1.221 o posterior |513| `focusView` | `false` | Ocultar llamadas de herramientas, resultados de herramientas y pensamiento detrás de filas expandibles, dejando sus mensajes y las respuestas de Claude. La lista de tareas más reciente de Claude permanece visible; esto requiere Claude Code v2.1.225 o posterior. También puede alternar la vista de enfoque desde el menú de comandos. Requiere Claude Code v2.1.221 o posterior |

468| `respectGitIgnore` | `true` | Excluir patrones de .gitignore de búsquedas de archivos |514| `respectGitIgnore` | `true` | Excluir patrones de .gitignore de búsquedas de archivos y de [contexto de selección](#reference-files-and-folders) |

469| `usePythonEnvironment` | `true` | Activar el entorno de Python del espacio de trabajo al ejecutar Claude. Requiere la extensión de Python. |515| `usePythonEnvironment` | `true` | Activar el entorno de Python del espacio de trabajo al ejecutar Claude. Requiere la extensión de Python. |

470| `environmentVariables` | `[]` | Establecer variables de entorno para el proceso de Claude. Use los ajustes de Claude Code en su lugar para configuración compartida. |516| `environmentVariables` | `[]` | Establecer variables de entorno para el proceso de Claude. Use los ajustes de Claude Code en su lugar para configuración compartida. |

471| `disableLoginPrompt` | `false` | Omitir mensajes de autenticación (para configuraciones de proveedores de terceros) |517| `disableLoginPrompt` | `false` | Omitir mensajes de autenticación (para configuraciones de proveedores de terceros) |


487* **Cambios de estado**: la extensión anuncia cuando Claude comienza a trabajar, cuando Claude está listo para su entrada y cuando Claude Code comienza a compactar la conversación.533* **Cambios de estado**: la extensión anuncia cuando Claude comienza a trabajar, cuando Claude está listo para su entrada y cuando Claude Code comienza a compactar la conversación.

488* **Errores y solicitudes de modelo**: la extensión anuncia errores en la conversación y anuncia cuando aparece la [solicitud de consentimiento de créditos de uso](/docs/es/model-config#fable-and-usage-credits) o la [solicitud de solicitud marcada](/docs/es/model-config#ask-before-switching).534* **Errores y solicitudes de modelo**: la extensión anuncia errores en la conversación y anuncia cuando aparece la [solicitud de consentimiento de créditos de uso](/docs/es/model-config#fable-and-usage-credits) o la [solicitud de solicitud marcada](/docs/es/model-config#ask-before-switching).

489 535 

490Cada turno en la transcripción comienza con un encabezado visualmente oculto etiquetado con la solicitud que inició el turno, para que pueda saltar entre turnos con la navegación de encabezados de su lector de pantalla. También puede mover el foco a la transcripción misma con `Tab`, ya que la extensión la expone como una región etiquetada, y leerla a su propio ritmo. Mientras Claude trabaja, su lector de pantalla lee una etiqueta de texto en lugar de la animación del indicador de progreso.536Mientras Claude trabaja, su lector de pantalla lee una etiqueta de texto en lugar de la animación del indicador de progreso.

491 537 

492Cuando reabre una sesión o cambia a otra, la extensión no anuncia nada: el historial restaurado, las solicitudes de permiso pendientes y el estado en progreso permanecen en silencio hasta que suceda algo nuevo.538Cuando reabre una sesión o cambia a otra, la extensión no anuncia nada: el historial restaurado, las solicitudes de permiso pendientes y el estado en progreso permanecen en silencio hasta que suceda algo nuevo.

493 539 

540<h3 id="use-the-chat-panel-from-the-keyboard">

541 Usar el panel de chat desde el teclado

542</h3>

543 

544Cada turno en la transcripción comienza con un encabezado visualmente oculto etiquetado con la solicitud que inició el turno, para que pueda saltar entre turnos con la navegación de encabezados de su lector de pantalla.

545 

546Dentro de un turno, su lector de pantalla anuncia de quién es el mensaje en el que se encuentra mientras se mueve a través de él:

547 

548* **Sus mensajes**: "Usted"

549* **Mensajes de Claude**: "Claude"

550* **Pasos de herramientas**: "Claude" más el nombre de la herramienta, como "Claude, Bash"

551* **Bloques de pensamiento**: "Claude, pensando"

552 

553Debido a que la extensión expone la transcripción como una región etiquetada, también puede mover el foco a la transcripción misma con `Tab` y leerla a su propio ritmo. Para mover el foco al mensaje más reciente o a una solicitud de permiso en espera, ejecute **Claude Code: Focus last message** desde la [Paleta de comandos](#vs-code-commands-and-shortcuts).

554 

555Cuando una opción en una solicitud de permiso guarda una regla de permiso o acceso a directorio, su etiqueta termina nombrando dónde se guarda la aprobación, como "todos los proyectos" o "esta sesión". Con esa opción enfocada, presione la tecla de flecha `Izquierda` o `Derecha` para cambiar el destino, y la extensión anuncia cada destino cuando llega a él. También puede hacer clic en el destino en la etiqueta. Las teclas de flecha requieren Claude Code v2.1.268 o posterior.

556 

494<h2 id="vs-code-extension-vs-claude-code-cli">557<h2 id="vs-code-extension-vs-claude-code-cli">

495 Extensión de VS Code vs. Claude Code CLI558 Extensión de VS Code vs. Claude Code CLI

496</h2>559</h2>


543 Monitorear procesos en segundo plano606 Monitorear procesos en segundo plano

544</h3>607</h3>

545 608 

546La visibilidad de las tareas en segundo plano en la extensión es limitada en comparación con la CLI. Para una mejor visibilidad, haga que Claude genere el comando para que pueda ejecutarlo en la terminal integrada de VS Code.609Escriba `/tasks` en el cuadro de indicaciones para abrir el [mapa de agentes](#use-the-prompt-box), que enumera las tareas en segundo plano de la sesión, como un servidor de desarrollo que Claude dejó ejecutándose como un comando de shell en segundo plano. Haga clic en una tarea para abrir su tarjeta y detenerla allí. Requiere Claude Code v2.1.277 o posterior.

547 610 

548<h3 id="connect-to-external-tools-with-mcp">611<h3 id="connect-to-external-tools-with-mcp">

549 Conectar a herramientas externas con MCP612 Conectar a herramientas externas con MCP


610 </Step>673 </Step>

611</Steps>674</Steps>

612 675 

613En un proveedor de terceros, la extensión no ofrece características que requieren una cuenta de claude.ai, como el seguimiento de uso, [dictado de voz](/docs/es/voice-dictation) y la pestaña Web para [sesiones en la nube](#resume-cloud-sessions-from-claude-ai). Un inicio de sesión de claude.ai que queda de un `/login` anterior permanece sin usar: la extensión no lo envía con ninguna solicitud.676En un proveedor de terceros, la extensión no ofrece características que requieren una cuenta de claude.ai, como barras de uso del plan, [dictado de voz](/docs/es/voice-dictation) y la pestaña Web para [sesiones en la nube](#resume-cloud-sessions-from-claude-ai). Para ver qué muestra el diálogo Cuenta y uso en estos inicios de sesión, consulte [Verificar cuenta y uso](#check-account-and-usage).

677 

678Un inicio de sesión de claude.ai que queda de un `/login` anterior permanece sin usar: la extensión no lo envía con ninguna solicitud.

614 679 

615<h2 id="security-and-privacy">680<h2 id="security-and-privacy">

616 Seguridad y privacidad681 Seguridad y privacidad

workflows.md +4 −2

Details

231 231 

232Antes de v2.1.216, Claude Code seguía el enlace, lo que podría colocar el archivo fuera de la ubicación que eligió.232Antes de v2.1.216, Claude Code seguía el enlace, lo que podría colocar el archivo fuera de la ubicación que eligió.

233 233 

234En un monorepo con varios directorios `.claude/`, puede mantener workflows junto al paquete al que se aplican. A partir de v2.1.178, guardar en la ubicación del proyecto escribe en el directorio `.claude/workflows/` más cercano que ya existe entre su directorio de trabajo y la raíz del repositorio, o en la raíz del repositorio si aún no existe ninguno. Los workflows del proyecto también se cargan desde cada `.claude/workflows/` a lo largo de esa ruta, y cuando más de uno define el mismo nombre Claude Code ejecuta el más cercano al directorio de trabajo.234En un monorepo con varios directorios `.claude/`, puede mantener workflows junto al paquete al que se aplican. Guardar en la ubicación del proyecto escribe en el directorio `.claude/workflows/` más cercano que ya existe entre su directorio de trabajo y la raíz del repositorio, o en la raíz del repositorio si aún no existe ninguno. Los workflows del proyecto también se cargan desde cada `.claude/workflows/` a lo largo de esa ruta, y cuando más de uno define el mismo nombre Claude Code ejecuta el más cercano al directorio de trabajo.

235 235 

236Si un workflow de proyecto y un workflow personal comparten un nombre, se ejecuta el del proyecto.236Si un workflow de proyecto y un workflow personal comparten un nombre, se ejecuta el del proyecto.

237 237 


348 348 

349El cuerpo es JavaScript simple con `await` de nivel superior. `agent()` genera un subagente, `pipeline()` ejecuta uno por elemento en una lista, y `parallel()` ejecuta un conjunto de tareas de agente al mismo tiempo y espera a que todas se completen.349El cuerpo es JavaScript simple con `await` de nivel superior. `agent()` genera un subagente, `pipeline()` ejecuta uno por elemento en una lista, y `parallel()` ejecuta un conjunto de tareas de agente al mismo tiempo y espera a que todas se completen.

350 350 

351Una llamada a `agent()` se resuelve a `null` si la detiene a mitad de la ejecución o si alcanza un error de API irrecuperable. En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el clasificador puede bloquear una llamada a `agent()` antes de que comience el subagente. Una llamada bloqueada se resuelve a `null` y se muestra en la vista de progreso de la ejecución con el motivo. `pipeline()` mantiene cada `null` en la matriz de resultados, por lo que el ejemplo termina con `.filter(Boolean)` para descartar esas entradas.351Una llamada a `agent()` se resuelve a `null` si la detiene a mitad de la ejecución o si alcanza un error de API irrecuperable. `pipeline()` mantiene cada `null` en la matriz de resultados, por lo que el ejemplo termina con `.filter(Boolean)` para descartar esas entradas.

352 

353En [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), el prompt que su script pasa a `agent()` no cuenta como una solicitud suya cuando el clasificador revisa las acciones de ese subagente, porque Claude Code lo marca como texto que el script calculó.

352 354 

353Si pasa un `schema` en una llamada a `agent()`, ese subagente devuelve JSON que coincide con la forma en lugar de prosa. Claude Code verifica el schema antes de iniciar el subagente: cuando puede probar que el schema se contradice a sí mismo, la llamada falla con un error que nombra la contradicción, y el subagente nunca comienza. Una contradicción que puede probar es una clave `required` que `additionalProperties: false` descarta.355Si pasa un `schema` en una llamada a `agent()`, ese subagente devuelve JSON que coincide con la forma en lugar de prosa. Claude Code verifica el schema antes de iniciar el subagente: cuando puede probar que el schema se contradice a sí mismo, la llamada falla con un error que nombra la contradicción, y el subagente nunca comienza. Una contradicción que puede probar es una clave `required` que `additionalProperties: false` descarta.

354 356 

worktrees.md +10 −5

Details

59 Limpie worktrees59 Limpie worktrees

60</h2>60</h2>

61 61 

62Cuando sale de una sesión de worktree interactiva, Claude verifica el worktree para el trabajo que la eliminación eliminaría: archivos cambiados o sin seguimiento, y nuevos commits.62Cuando sale de una sesión de worktree interactiva, Claude verifica el worktree para el trabajo que la eliminación eliminaría: archivos cambiados o sin seguimiento, trabajo sin confirmar dentro de submódulos extraídos y nuevos commits.

63 63 

64* **El worktree está limpio**: para una sesión sin nombre, Claude elimina el worktree y su rama automáticamente. Una sesión [nombrada](/docs/es/sessions#name-your-sessions) le solicita primero para que pueda mantener el worktree para más tarde64* **El worktree está limpio**: para una sesión sin nombre, Claude elimina el worktree y su rama automáticamente. Una sesión [nombrada](/docs/es/sessions#name-your-sessions) le solicita primero para que pueda mantener el worktree para más tarde

65* **El worktree tiene trabajo en él**: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama para que pueda regresar más tarde. Eliminar borra el directorio del worktree y su rama, junto con todo el trabajo en ellos65* **El worktree tiene trabajo en él**: Claude le solicita que mantenga o elimine el worktree. Mantener preserva el directorio y la rama para que pueda regresar más tarde. Eliminar borra el directorio del worktree y su rama, junto con todo el trabajo en ellos

66* **El estado del worktree no se puede verificar**: cuando Claude Code no puede contar los cambios del worktree o no puede inspeccionar los checkouts de sus submódulos, le solicita en lugar de eliminar el worktree automáticamente. La solicitud nombra lo que no pudo verificar

66 67 

67Las ejecuciones no interactivas con `-p` no tienen solicitud de salida, por lo que Claude no limpia sus worktrees, y Claude Code deja el bloqueo que tomó en cada uno en la creación en su lugar hasta que una [limpieza de bloqueo obsoleto](#clean-up-subagent-and-background-session-worktrees) posterior lo libere. Para eliminar uno, ejecute `git worktree remove`; si git se niega porque el worktree está bloqueado, ejecute `git worktree unlock` en él primero.68Las ejecuciones no interactivas con `-p` no tienen solicitud de salida, por lo que Claude no limpia sus worktrees, y Claude Code deja el bloqueo que tomó en cada uno en la creación en su lugar hasta que una [limpieza de bloqueo obsoleto](#clean-up-subagent-and-background-session-worktrees) posterior lo libere. Para eliminar uno, ejecute `git worktree remove`; si git se niega porque el worktree está bloqueado, ejecute `git worktree unlock` en él primero.

68 69 


101* **Ediciones de archivos**: Claude Code bloquea un `Edit`, `Write`, o `NotebookEdit` que apunta a una ruta en el checkout principal.102* **Ediciones de archivos**: Claude Code bloquea un `Edit`, `Write`, o `NotebookEdit` que apunta a una ruta en el checkout principal.

102* **Directorio de trabajo del comando**: Claude Code bloquea un comando Bash, PowerShell, o Monitor cuyo directorio de trabajo se resuelve al checkout principal, o cuyo directorio de trabajo no puede verificar que permanece fuera de él.103* **Directorio de trabajo del comando**: Claude Code bloquea un comando Bash, PowerShell, o Monitor cuyo directorio de trabajo se resuelve al checkout principal, o cuyo directorio de trabajo no puede verificar que permanece fuera de él.

103* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.104* **Redirecciones de git**: Claude Code bloquea un comando Bash o Monitor que redirige git al checkout principal. La redirección puede venir a través de `git -C`, `--git-dir`, una variable `GIT_DIR` o `GIT_WORK_TREE`, o un `cd` al checkout principal antes de ejecutar git.

104* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree, por ejemplo cuando el nombre del comando se calcula en tiempo de ejecución o la sintaxis no se puede analizar. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.105* **Forma del comando**: Claude Code bloquea un comando Bash o Monitor cuando no puede verificar desde el texto del comando que cualquier git que ejecute el comando permanece dentro del worktree. Eso sucede, por ejemplo, cuando el nombre del comando se calcula en tiempo de ejecución, cuando la sintaxis no se puede analizar, o cuando una expansión como `${!name}` o `${ command; }` podría ejecutar un comando que el texto no especifica. Claude Code le dice a Claude cómo reescribir el comando rechazado, como dividirlo en comandos simples y separados. No puede desactivar esta verificación.

105 106 

106Las verificaciones se aplican al repositorio desde el que lanzó Claude Code. También cubren el checkout principal desde el que está vinculado un worktree vinculado. Para comandos PowerShell, Claude Code aplica solo la verificación del directorio de trabajo.107Las verificaciones se aplican al repositorio desde el que lanzó Claude Code. También cubren el checkout principal desde el que está vinculado un worktree vinculado. Para comandos PowerShell, Claude Code aplica solo la verificación del directorio de trabajo.

107 108 

108Claude ve cada rechazo como un error de herramienta que nombra el worktree y dice cómo proceder.109Claude ve cada rechazo como un error de herramienta que nombra el worktree y dice cómo proceder. Para un comando rechazado, consulte [qué significa el mensaje de rechazo y cómo borrarlo](/docs/es/errors#command-blocked-by-the-worktree-isolation-checks).

109 110 

110<h2 id="isolate-subagents-with-worktrees">111<h2 id="isolate-subagents-with-worktrees">

111 Aisle subagentes con worktrees112 Aisle subagentes con worktrees


139Cuando [envía al fondo](/docs/es/agent-view#send-the-session-to-the-background) una sesión `--worktree`, su worktree se convierte en un worktree de sesión en segundo plano que el barrido puede eliminar. El barrido deja un worktree en su lugar en estos casos:140Cuando [envía al fondo](/docs/es/agent-view#send-the-session-to-the-background) una sesión `--worktree`, su worktree se convierte en un worktree de sesión en segundo plano que el barrido puede eliminar. El barrido deja un worktree en su lugar en estos casos:

140 141 

141* El worktree aún contiene trabajo: archivos cambiados o sin seguimiento, o commits no enviados.142* El worktree aún contiene trabajo: archivos cambiados o sin seguimiento, o commits no enviados.

143* Un submódulo extraído en el worktree contiene archivos cambiados o sin seguimiento, o Claude Code no puede inspeccionar los submódulos del worktree. Esta verificación requiere Claude Code v2.1.274 o posterior.

142* Uno de los [cuatro casos que también bloquean la creación de worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created) se aplica: Claude Code no puede determinar qué controladores de filtro define la configuración del repositorio, o encuentra una configuración allí que no puede desactivar.144* Uno de los [cuatro casos que también bloquean la creación de worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created) se aplica: Claude Code no puede determinar qué controladores de filtro define la configuración del repositorio, o encuentra una configuración allí que no puede desactivar.

143* El worktree pertenece a una sesión `--worktree` que no ha enviado al fondo, sin importar su antigüedad.145* El worktree pertenece a una sesión `--worktree` que no ha enviado al fondo, sin importar su antigüedad.

144* Creó el worktree usted mismo con `git worktree add`, incluso si luego ejecutó una sesión `--worktree <name>` en él y envió esa sesión al fondo.146* Creó el worktree usted mismo con `git worktree add`, incluso si luego ejecutó una sesión `--worktree <name>` en él y envió esa sesión al fondo.


251 Qué comparten los worktrees con el checkout principal253 Qué comparten los worktrees con el checkout principal

252</h2>254</h2>

253 255 

254Un worktree obtiene sus propios archivos y rama, pero comparte el directorio `.git` del repositorio, plugins de ámbito de proyecto, y aprobaciones de permisos guardadas con el checkout principal:256Un worktree obtiene sus propios archivos y rama, pero comparte lo siguiente con el checkout principal:

255 257 

256* **El directorio `.git` del repositorio**: los comandos de git en un worktree escriben en el directorio `.git` compartido del repositorio principal, y el [sandboxing](/docs/es/sandboxing#filesystem-isolation) permite esas escrituras, por lo que comandos como `git commit` funcionan desde dentro de un worktree con el sandbox habilitado.258* **El directorio `.git` del repositorio**: los comandos de git en un worktree escriben en el directorio `.git` compartido del repositorio principal, y el [sandboxing](/docs/es/sandboxing#filesystem-isolation) permite esas escrituras, por lo que comandos como `git commit` funcionan desde dentro de un worktree con el sandbox habilitado.

257* **Plugins**: los plugins instalados en [ámbito de proyecto](/docs/es/plugins-reference#plugin-installation-scopes) desde el checkout principal también se cargan en worktrees del mismo repositorio, por lo que no necesita reinstalarlos por worktree. Requiere Claude Code v2.1.200 o posterior.259* **Plugins**: los plugins instalados en [ámbito de proyecto](/docs/es/plugins-reference#plugin-installation-scopes) desde el checkout principal también se cargan en worktrees del mismo repositorio, por lo que no necesita reinstalarlos por worktree. Requiere Claude Code v2.1.200 o posterior.

258* **Aprobaciones de permisos**: elegir "Sí, y no preguntar de nuevo" para un comando Bash en una sesión de worktree guarda la regla en el `.claude/settings.local.json` del checkout principal, por lo que se aplica en el checkout principal y en cada otro worktree del repositorio, y sobrevive a la eliminación del worktree. En Windows y en los otros casos donde Claude Code [no usa la raíz del repositorio](/docs/es/settings#where-claude-code-looks-for-each-file), la regla permanece con ese worktree. Antes de v2.1.211, una aprobación otorgada en un worktree se guardaba dentro de ese worktree, no se aplicaba en otro lugar, y se perdía cuando se eliminaba el worktree. Consulte [dónde se guardan las aprobaciones](/docs/es/permissions#permission-system).260* **Aprobaciones de permisos**: elegir "Sí, y no preguntar de nuevo" para un comando Bash en una sesión de worktree guarda la regla en el `.claude/settings.local.json` del checkout principal, por lo que se aplica en el checkout principal y en cada otro worktree del repositorio, y sobrevive a la eliminación del worktree. En Windows y en los otros casos donde Claude Code [no usa la raíz del repositorio](/docs/es/settings#where-claude-code-looks-for-each-file), la regla permanece con ese worktree. Antes de v2.1.211, una aprobación otorgada en un worktree se guardaba dentro de ese worktree, no se aplicaba en otro lugar, y se perdía cuando se eliminaba el worktree. Consulte [dónde se guardan las aprobaciones](/docs/es/permissions#permission-system).

261* **Skills, agentes y comandos sin seguimiento**: cuando el checkout del worktree no tiene un directorio `.claude/skills` en su raíz, por ejemplo porque su `.claude/skills` está en gitignore, Claude Code carga los [skills de proyecto](/docs/es/skills#where-skills-live) del checkout principal en la sesión del worktree. En un worktree con su propio directorio `.claude/skills`, solo se carga esa copia.

259 262 

260Los tres se aplican si crea el worktree con `--worktree`, con `git worktree add`, o a través de la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions).263 La misma lectura de paso cubre `.claude/agents` y `.claude/commands`. Para skills, la lectura de paso requiere Claude Code v2.1.277 o posterior.

264 

265Todos estos se aplican si crea el worktree con `--worktree`, con `git worktree add`, o a través de la [aplicación de escritorio](/docs/es/desktop#work-in-parallel-with-sessions).

261 266 

262<h2 id="manage-worktrees-manually">267<h2 id="manage-worktrees-manually">

263 Administre worktrees manualmente268 Administre worktrees manualmente